有人建议可以如何使用python我可以导入地址表和导出地址表形式的PE? 我目前使用pefile模块,但不知道我能得到IAT,并用它吃饭。 非常感谢帮助。
Answer 1:
该文档描述了如何做到这一点:
清单中的导入符号
每个目录,如果在被处理的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 PageSetupDlgW 0x10012A4L FindTextW 0x10012A8L PrintDlgExW [snip] SHELL32.dll 0x1001154L DragFinish 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
文章来源: Getting IAT and EAT from PE