有人可以建议如何使用 python 我可以从 PE 中获取导入地址表和导出地址表吗?我目前使用 pefile 模块,但不确定是否可以使用它获得 IAT 和 EAT。非常感谢您的帮助。
问问题
8517 次
1 回答
3
该文档描述了如何执行此操作:
列出导入的符号
每个目录,如果它存在于正在处理的 PE 文件中,则在 PE 实例中具有一个条目,即 DIRECTORY_ENTRY_directoryname。导入的符号可以列出如下:
# If the PE file was loaded using the fast_load=True argument, we will need to parse the data directories:
pe.parse_data_directories()
for entry in pe.DIRECTORY_ENTRY_IMPORT:
print entry.dll
for imp in entry.imports:
print '\t', hex(imp.address), imp.name
输出
comdlg32.dll 0x10012A0L 页面设置DlgW 0x10012A4L FindTextW 0x10012A8L 打印DlgExW [剪辑] SHELL32.dll 0x1001154L 拖拽完成 0x1001158L DragQueryFileW
列出导出的符号
同样,导出的符号可以列出如下:
for exp in pe.DIRECTORY_ENTRY_EXPORT.symbols:
print hex(pe.OPTIONAL_HEADER.ImageBase + exp.address), exp.name, exp.ordinal
输出
0x7ca0ab4f SHUpdateRecycleBinIcon 336 0x7cab44c0 SHValidateUNC 173 0x7ca7b0aa SheChangeDirA 337 0x7ca7b665 SheChangeDirExA 338 0x7ca7b3e1 SheChangeDirExW 339 0x7ca7aec6 SheChangeDirW 340 0x7ca8baae SheConvertPathW 341
于 2013-10-11T19:31:41.563 回答