본문 바로가기

Programming/Python

PE 분석

PE 분석


python으로 PE 파일을 분석해보도록 하겠습니다. 


먼저 기본적으로 설치된 python에는 pefile 모듈이 존재 하지 않습니다.

ImmunityDBG의 모든 모듈은 C:\Program Files (x86)\Immunity Inc\Immunity Debugger\Libs 해당 경로에 저장되어있습니다.


pefile 모듈을 사용하기 위해서 위 경로에서 pefile.py와 pelib.py를 C:\python27\Libs에  넣어두도록 합니다.

우분투에서 사용할 때는 /usr/lib/python2.7에 추가하도록 합니다.




위 소스코드를 보도록 하죠.


pefile은 PE 파일을 분석하기 위한 모듈이며  pprint는 pretty-print 모듈로 말 그대로 예쁘게, 보기좋게 출력을 해주는 모듈입니다.

한번 pprint를 하지 않고 그냥 출력해보세요. ^^


PE 파일 분석은 기본적으로 PE구조를 알아야 합니다.





pprint.pprint(dir(pe.DOS_HEADER))를 입력하면 해당 파일의 DOS_HEADER에 대한 정보를 가져옵니다.

위의 값들 중에 어느 한 값을 가져오기 위해서는 다음과 같이 작성합니다.




e_magic의 값을 출력하고 있습니다.





해당 PE 파일에 여러 Section들이 존재합니다. 해당 Section들은 List 형식으로 저장되며, 각 인덱스 값을 주면서 출력하면 해당 Section의 이름이 나오게 됩니다.


이러한 방식으로 PE Viewer를 만들 수 있습니다.



'Programming > Python' 카테고리의 다른 글

PyDBG  (0) 2016.03.15
Pydasm을 이용한 디스어셈블링  (0) 2016.03.15
Pyhook  (2) 2016.03.14
Assemble, Disassemble, Search  (0) 2016.03.14
Immunity DBG 기초  (0) 2016.03.14