获取IAT和PE EAT(Getting IAT and EAT from PE)

2019-10-18 18:45发布

有人建议可以如何使用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