我知道Immdbg已经可以识别Windows内部函数名称,例如kernel32.dll和user32.dll。我想要的是像WinDbg一样加载Internet Explorer符号。有人知道像mshtml.dll这样的可能性吗?


#1 楼

Immunity Debugger 1.60及更高版本支持本地或从符号服务器加载PDB符号文件。为了启用它。


转到“调试”菜单->“调试符号选项”。




提供符号文件或符号服务器的本地路径。




UPDATE

如果ImmDbg成功加载了pdb符号对于指定的文件,您将在dll加载事件下方以Debugging Information (DIA Format) available的形式在日志中收到一条消息。请参阅下面的图像,以供参考。 br />您可能未正确配置符号路径。
如果使用本地符号,则系统上存在的PDB文件与PE不匹配。
如果使用符号服务器,则找不到合适的PDB文件。

在这种情况下,您可以运行windbg随附的symcheck工具。示例用法

C:\Program Files\Debugging Tools for Windows (x86)>symchk C:\WINDOWS\system32\kernel32.dll /s C:\WINDOWS\Symbols

SYMCHK: FAILED files = 0
SYMCHK: PASSED + IGNORED files = 1

C:\Program Files\Debugging Tools for Windows (x86)>symchk C:\WINDOWS\system32\mshtml.dll /s C:\WINDOWS\Symbols
SYMCHK: mshtml.dll           FAILED  - mshtml.pdb mismatched or not found

SYMCHK: FAILED files = 1
SYMCHK: PASSED + IGNORED files = 0



UPDATE 2

Immunity Debugger的屏幕截图,其中已加载mshtml.dll的符号。这是从Windows XP SP3上获取的。 mshtml.dll。

symchk /r c:\windows\system32\mshtml.dll /s SRV*c:\symbols\*http://msdl.microsoft.com/download/symbols 


符号目录应如下所示。

C:\symbols>dir
 Volume in drive C has no label.
 Volume Serial Number is 042A-A7E6

 Directory of C:\symbols

06/05/2015  12:39 PM    <DIR>          .
06/05/2015  12:39 PM    <DIR>          ..
04/15/2008  09:21 AM         7,965,696 mshtml.pdb
06/05/2015  11:17 AM                 0 pingme.txt


接下来,指向ImmDbg至C:\symbols\。使用loaddll加载mshtml.dll,它在加载时自动拾取符号。也可以在日志中看到。



评论


仅需注意,您还可以从此处下载符号文件。

–多米尼克·安塔尔(Dominik Antal)
15年5月28日在9:42

我已经做到了,但是请看我在问题中更新的图像...函数名称未显示

– jyz
15年5月28日在14:48

@jyz ImmDbg日志说什么?如果确实加载了pdb文件,它将作为dll加载事件下方的调试信息(DIA格式)写入日志中。

– 0xec
15年5月28日在15:15

@ExtremeCoders我再次尝试,但未显示此消息。另外,当我启动\ Program Files(x86)\ Microsoft Internet Explorer \ iexplorer.exe并导航时,永远不会加载mshtml.dll!我正在检查ALT + E和ALT + L模块...知道吗?

– jyz
15年5月28日在15:34

@jyz您可以使用symcheck工具手动下载符号,将其放在本地符号文件夹中,将ImmDbg指向它,它应该自动加载。另外,ImmDbg中的符号支持似乎还不成熟,因此您可能会遇到问题。

– 0xec
2015年6月5日在6:18