查看DLL文件的内容

4

能否查看DLL文件的内容和功能是否可能?
前几天我正在使用OlyDBG,然后我发现有一个选项可以查看dll的内容...
所以请给我推荐一些好的工具或软件...

假设我有一个名为“Python27.dll”的DLL...
现在我需要查看这个DLL的内容,我该怎么做...
谢谢...

4个回答

5
虽然使用起来并不简单(你需要了解可移植可执行文件格式,也称为PE文件),但pefile似乎是一个非常好的、强大而多才多艺的工具,用于查看DLL或任何其他PE文件(尽管我不会冒险使用它来更改这样的文件,尽管我看到这是它的一个特性)。
例如,从模块的用法示例中摘录(并编辑以显示dll,而不是他们使用的同样虚构的文件名,即exe;-):
import pefile
pe =  pefile.PE(‘/path/to/pefile.dll’)
for exp in pe.DIRECTORY_ENTRY_EXPORT.symbols:
  print hex(pe.OPTIONAL_HEADER.ImageBase + exp.address), exp.name, exp.ordinal

根据我指出的维基页面,应该显示类似以下内容:
0x7ca0ab4f SHUpdateRecycleBinIcon 336
0x7cab44c0 SHValidateUNC 173
0x7ca7b0aa SheChangeDirA 337
0x7ca7b665 SheChangeDirExA 338
0x7ca7b3e1 SheChangeDirExW 339
0x7ca7aec6 SheChangeDirW 340
0x7ca8baae SheConvertPathW 341

3

Dependency Walker可以提供您想要/需要的内容 - 它确实显示了DLL中的所有入口点。


1
在Windows上,DUMPBIN提供了一些DLL检查功能。例如:
DUMPBIN /EXPORTS C:\path\to\my.dll

将显示所有导出的定义。


0
我已经使用ctypes和在Windows中加载dll做了一些工作,但我不认为DLL有任何内省的方式。这并不是什么大问题,因为DLL中的所有函数调用都是静态的。如果您尝试使用未记录的DLL,则不仅需要知道函数的名称,还需要知道函数的参数。您必须对DLL进行逆向工程,这不是一个小任务。
所以,在我看来,我会说不。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接