2010-08-11 82 views
4

的是这可以查看一个DLL文件的内容和功能...
几次前,我与OlyDBG玩,然后我发现有查看DLL的内容选项...
所以建议我任何好工具或软...查看内容的DLL文件

并假设我有一个名为“Python27.dll”的DLL ...
现在我需要查看此DLL的内容,所以我该怎么做。 ..
thanx ...

回答

5

虽然使用起来并不简单(您需要了解便携式可执行文件,也就是PE文件的格式),但对于查看DLL或任何其他PE文件而言,pefile似乎是一个很好,功能强大且功能多样的工具(I不会冒险使用它来更改这样的文件,虽然我看到它是它的一个特点)。

例如,摘录模块的usage examples(和编辑来显示,而不是他们所使用的同样假想文件名,这是一个exe ;-)一个DLL:

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 
0

我已经做了一些与ctypes的工作,并在w中加载dll indows,但我不认为DLL有任何反省。这真的不是什么大问题,因为DLL中的所有函数调用都是静态的。如果您试图使用未公开的DLL,则不仅需要知道函数的名称,还需要知道函数的参数。你将不得不逆向设计DLL,这不是一件小事。

所以,在我看来,我会说不。

3

Dependency Walker可以提供你想要/需要的东西 - 这当然显示了DLL的所有入口点。

1

在Windows上,DUMPBIN提供了一些DLL检查功能。例如:

DUMPBIN /EXPORTS C:\path\to\my.dll 

将显示所有导出的定义。