是否可以查看DLL文件的内容和功能...
很久以前我在玩OlyDBG然后我发现有查看dll内容的选项...
所以建议我任何好的工具或软件......
并假设我有一个名为“Python27.dll”的DLL ...
现在我需要查看这个DLL的内容所以我该怎么办...
thanx ...
答案 0 :(得分:5)
虽然使用起来并不简单(您需要了解可移植可执行文件,即PE文件的格式),pefile似乎是一个很好的,功能强大且用途广泛的工具,用于查看DLL或任何其他PE文件(我不会冒险使用它来更改这样的文件,虽然我看到它是它的一个功能。)
例如,摘录模块的usage examples(并编辑显示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
根据我指出的wikipage,应该显示如下内容:
0x7ca0ab4f SHUpdateRecycleBinIcon 336
0x7cab44c0 SHValidateUNC 173
0x7ca7b0aa SheChangeDirA 337
0x7ca7b665 SheChangeDirExA 338
0x7ca7b3e1 SheChangeDirExW 339
0x7ca7aec6 SheChangeDirW 340
0x7ca8baae SheConvertPathW 341
答案 1 :(得分:3)
Dependency Walker可能提供您想要/需要的内容 - 它肯定会显示DLL中的所有入口点。
答案 2 :(得分:1)
答案 3 :(得分:0)
我已经完成了一些ctypes的工作,并在windows中加载dll,但我不认为DLL有任何内省。这真的不是什么大问题,因为DLL中的所有函数调用都是静态的。如果您尝试使用未记录的DLL,则不仅需要知道函数的名称,还需要知道函数的参数。你必须对DLL进行反向工程,这不是一项小任务。
所以,在我看来,我会说不。