本帖最后由 freesoft00 于 2017-5-7 12:56 编辑
马上测试了一下。说一下测试结果。
例如
PDLL c:\windows\explorer.exe
这样的命令正确
如果我在win7 32位系统,分析64位系统使用的explorer.exe,把这个explorer.exe复制到pdll同目录,执行
PDLL explorer.exe
这样就出错了。无法分析出来。
不知道是否有办法分析非当前系统内的exe和dll。或者可以指定要分析的exe、dll所依赖的系统目录。
例如d:\mount里面是加载的win10系统的所有文件根目录
pdll d:\mount\windows\explorer.exe /s d:\mount
例如用/s指定要分析的系统所在目录。(ldd32.exe这个程序不需要指定,直接可以分析非当前系统的exe、dll依赖文件)
ldd32.exe分析非当前系统都是这样的文件名称列表,没有具体的路径。- KERNEL32.dll
- USER32.dll
- GDI32.dll
- SHCORE.dll
- SHLWAPI.dll
- SHELL32.dll
- UxTheme.dll
- dwmapi.dll
- TWINAPI.dll
- d3d11.dll
- dcomp.dll
- api-ms-win-core-localization-l1-2-1.dll
- api-ms-win-core-path-l1-1-0.dll
复制代码 第二:
PDLL /c c:\windows\explorer.exe
复制文件会复制到c:\windows里面。这样不好,是否可以指定要复制到哪里?
另外可以指定都复制到一个文件夹中,还是可以按目录结构复制(没有的目录创建)
第三:
网上有一个开源的ldd,是vc编译的,原来在谷歌的代码托管处存放,现在不知道还有没有了。主要是国内登录不方便。
那个可以批量执行程序分析,例如
ldd "%windir%\System32\*.exe">winexe.txt
这样会把system32目录所有的exe都分析处理,内容类似这样:- C:\Windows\system32\AdapterTroubleshooter.exe
- KERNEL32.dll => C:\Windows\system32\kernel32.dll
- USER32.dll => C:\Windows\system32\USER32.dll
- d3d9.dll => C:\Windows\system32\d3d9.dll
- msvcrt.dll => C:\Windows\system32\msvcrt.dll
- ntdll.dll => C:\Windows\SYSTEM32\ntdll.dll
- C:\Windows\system32\aitagent.exe
- ADVAPI32.dll => C:\Windows\system32\ADVAPI32.dll
- AEPIC.dll => C:\Windows\system32\AEPIC.dll
- KERNEL32.dll => C:\Windows\system32\kernel32.dll
- OLEAUT32.dll => C:\Windows\system32\OLEAUT32.dll
- msvcrt.dll => C:\Windows\system32\msvcrt.dll
- ntdll.dll => C:\Windows\SYSTEM32\ntdll.dll
- ole32.dll => C:\Windows\system32\ole32.dll
- profapi.dll => C:\Windows\system32\profapi.dll
- sfc.dll => C:\Windows\system32\sfc.dll
- C:\Windows\system32\aitstatic.exe
- ADVAPI32.dll => C:\Windows\system32\ADVAPI32.dll
- KERNEL32.dll => C:\Windows\system32\kernel32.dll
- OLEAUT32.dll => C:\Windows\system32\OLEAUT32.dll
- SHLWAPI.dll => C:\Windows\system32\SHLWAPI.dll
- mscoree.dll => C:\Windows\system32\mscoree.dll
- msvcrt.dll => C:\Windows\system32\msvcrt.dll
- ntdll.dll => C:\Windows\SYSTEM32\ntdll.dll
- ole32.dll => C:\Windows\system32\ole32.dll
复制代码
不好意思,这个第三点是我记错了,因为是看原来的批处理反馈的,再测试发现ldd "%windir%\System32\*.exe"不行,需要通过for遍历exe然后被ldd分析。
第四:
分析结果是否可以指定输出内容,例如只显示依赖的文件列表msvcrt.dll、只显示完成路径列表C:\Windows\system32\msvcrt.dll、完整显示。要不重定向后的txt列表还需要批处理再截取。
其它再测试后反馈。 |