본문 바로가기

Data/Python

[Python] python 모듈 PEFile사용해서 API 목록 가져오기

반응형
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
import pefile
from collections import defaultdict
 
get_api = defaultdict(lambda: defaultdict)
 
for index, i in enumerate(filelist):
    print(index, i)
    pe = pefile.PE(i)
    pe.parse_data_directories()
    
    #record every file API list    
    try:
        for entry in pe.DIRECTORY_ENTRY_IMPORT:
            for imp in entry.imports:
                try:
                    print('\t', hex(imp.address), imp.name)
                except:
                    pass
    except:
        pass
cs


출력형식은 다음과 같다:


comdlg32.dll
        0x10012A0L PageSetupDlgW
        0x10012A4L FindTextW
        0x10012A8L PrintDlgExW
[snip]
SHELL32.dll
        0x1001154L DragFinish
        0x1001158L DragQueryFileW


원래 PEframe을 사용하여 API를 뽑을려고했는데 가끔씩 프로그램이 죽어버리는 경우가 생겨서

직접 pefile을 이용하여 API를 뽑는걸 해보았다.


기억해두면 좋을듯

반응형