在PyKD 中,我可以像这样获取可执行文件的进程名称:
0:017> !py
...
>>> getProcessExeName()
u'C:\\Windows\\SysWOW64\\rundll32.exe'
我可以得到模块信息
>>> print module("rundll32")
Module: rundll32
Start: 7f0000 End: 7fe000 Size: e000
Image: C:\Windows\SysWOW64\rundll32.exe
Symbols: e:\debug\symbols\rundll32.pdb\EFAE0C870C2846EDB63B9A7274CD50422\rundll32.pdb
Timestamp: 4a5bc637
Check Sum: 11cf2
如何从进程名称转换为模块名称?
它不像提取文件名那么简单,因为带有特殊字符的文件名,如Notepad++.exe
转换notepad__
为模块名。
背景:我想自动化转储分析,首先我检查它是否是我的程序,其次我想检查我需要模块信息的崩溃程序的版本。我想让它更通用一点,并考虑用户重命名可执行文件的情况。
版本(如果重要):PyKD 0.3.0.25、32 位、WinDbg 6.2.9200、Python 2.7.8