如何在 PyKD 中获取模块的原始文件名?
How to get the original file name of a module in PyKD?
我在 PyKD 中有一个模块:
>>> 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
根据给出的信息,我如何才能找到有关该模块的更多信息,类似于 WinDbg 的 lm vm <module>
命令?
start end module name
007f0000 007fe000 rundll32 (deferred)
Image path: C:\Windows\SysWOW64\rundll32.exe
Image name: rundll32.exe
Timestamp: Tue Jul 14 01:41:43 2009 (4A5BC637)
CheckSum: 00011CF2
ImageSize: 0000E000
File version: 6.1.7600.16385
Product version: 6.1.7600.16385
File flags: 0 (Mask 3F)
File OS: 40004 NT Win32
File type: 1.0 App
File date: 00000000.00000000
Translations: 0409.04b0
CompanyName: Microsoft Corporation
ProductName: Microsoft® Windows® Operating System
InternalName: rundll
OriginalFilename: RUNDLL32.EXE
ProductVersion: 6.1.7600.16385
FileVersion: 6.1.7600.16385 (win7_rtm.090713-1255)
FileDescription: Windows host process (Rundll32)
LegalCopyright: © Microsoft Corporation. All rights reserved.
特别是,我想要 "OriginalFilename"。
大部分信息都存储在模块的版本资源信息中。您可以使用 queryVersion()
方法访问版本资源。它需要一个字符串参数来指定资源,例如
>>> m = module("rundll32")
>>> m.queryVersion("LegalCopyright")
'\xa9 Microsoft Corporation. All rights reserved.'
请注意参数不必是版本号,因此方法名称 queryVersion()
有点误导。
参数:
CompanyName
InternalName
ProductName
OriginalFilename
ProductVersion
FileVersion
FileDescription
LegalCopyright
lm vm
中存在的其他信息:
- 开始:
hex(m.begin())
- 结束:
hex(m.end())
- 姓名:
m.name()
- 文件标志:
m.getFixedFileInfo().FileFlags
- 校验和:
hex(m.checksum())
- 时间戳:
hex(m.timestamp())
- 文件OS:
hex(m.getFixedFileInfo().FileOS)
- 文件类型:
hex(m.getFixedFileInfo().FileType)
- 归档日期:
"%08X.%08X" % (m.getFixedFileInfo().FileDateLS , m.getFixedFileInfo().FileDateMS)
我在 PyKD 中有一个模块:
>>> 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
根据给出的信息,我如何才能找到有关该模块的更多信息,类似于 WinDbg 的 lm vm <module>
命令?
start end module name
007f0000 007fe000 rundll32 (deferred)
Image path: C:\Windows\SysWOW64\rundll32.exe
Image name: rundll32.exe
Timestamp: Tue Jul 14 01:41:43 2009 (4A5BC637)
CheckSum: 00011CF2
ImageSize: 0000E000
File version: 6.1.7600.16385
Product version: 6.1.7600.16385
File flags: 0 (Mask 3F)
File OS: 40004 NT Win32
File type: 1.0 App
File date: 00000000.00000000
Translations: 0409.04b0
CompanyName: Microsoft Corporation
ProductName: Microsoft® Windows® Operating System
InternalName: rundll
OriginalFilename: RUNDLL32.EXE
ProductVersion: 6.1.7600.16385
FileVersion: 6.1.7600.16385 (win7_rtm.090713-1255)
FileDescription: Windows host process (Rundll32)
LegalCopyright: © Microsoft Corporation. All rights reserved.
特别是,我想要 "OriginalFilename"。
大部分信息都存储在模块的版本资源信息中。您可以使用 queryVersion()
方法访问版本资源。它需要一个字符串参数来指定资源,例如
>>> m = module("rundll32")
>>> m.queryVersion("LegalCopyright")
'\xa9 Microsoft Corporation. All rights reserved.'
请注意参数不必是版本号,因此方法名称 queryVersion()
有点误导。
参数:
CompanyName
InternalName
ProductName
OriginalFilename
ProductVersion
FileVersion
FileDescription
LegalCopyright
lm vm
中存在的其他信息:
- 开始:
hex(m.begin())
- 结束:
hex(m.end())
- 姓名:
m.name()
- 文件标志:
m.getFixedFileInfo().FileFlags
- 校验和:
hex(m.checksum())
- 时间戳:
hex(m.timestamp())
- 文件OS:
hex(m.getFixedFileInfo().FileOS)
- 文件类型:
hex(m.getFixedFileInfo().FileType)
- 归档日期:
"%08X.%08X" % (m.getFixedFileInfo().FileDateLS , m.getFixedFileInfo().FileDateMS)