2013-10-11 56 views
0

EAT有人建議可以使用Python我怎麼能得到導入地址表 和導出地址表形式的PE?我目前使用pefile模塊,但不知道我可以使用它獲得IAT和EAT。 非常感謝您的幫助。獲取IAT和PE

回答

1

documentation介紹瞭如何做到這一點:

清單中的導入符號

每個目錄,如果在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