2018. 4. 10. 23:58ㆍ악성코드 분석
이전 게시글에서 말했듯이 UPX의 특징인 PUSHAD를 실행한 직후의 모습이다
STACK에는 EAX~EDI레지스터 값이 PUSH되어 있다
ESP주소에 break를 걸어주고 코드를 실행시켜보자
* ESP주소 : 0012FFA4
* 코드를 실행시킨 뒤의 모습이다 ESP주소에 접근했을 때 실행이 멈추었다
* ESP에 위치해서 POPAD를 통해 레지스터값을 복구시킨뒤 JMP코드를 실행하기 이전의 모습이다
JMP명령을 실행시켜보자
* 여러줄의 코드가 적혀 있는 지점으로 이동했다
* 00401000 지점부터 원본파일의 코드가 된다
* 00401000 : OEP ( Original Entry Point )
# 원본파일의 코드를 DUMP해서 저장하자
ImageBase : 00400000
OEP : 00401000
Ollydump는 rebuild import는 오류가 발생하므로 사용하지 않는다
Dump파일이 생성되었다.
하지만 import address정보가 없기때문에 실행하면 다음과 같이 오류가 발생한다
* Import REC 파일을 통해 Import address정보를 가져오자
Ollydbg Tool을 이용해서 분석한 실행파일을 불러온다
OEP는 위에서 구했듯이 0x00401000이고 ImageBase값을 빼고 입력한다음 AutoSeach클릭 !
자동으로 RVA값이 구해지고, Size는 직접 1000으로 바꿔주자
공간이 부족하면 Import address들이 다 검색되어 질 수 없다
성공적으로 IAT(Import Address Table)를 복구하였다
이제 Dump했던 파일에 해당 IAT데이터들을 Fix Dump하여 파일로 만들어준다
최종 결과이다
IAT정보를 FIx해준 마지막 파일은 정상적으로 작동하게된다
'악성코드 분석' 카테고리의 다른 글
FSG 수동언패킹 [ Lena21 ] (0) | 2018.04.14 |
---|---|
Upack 수동언패킹 [ Lena21 ] (0) | 2018.04.14 |
Packing & Unpacking (0) | 2018.04.10 |
PE File Structure (0) | 2018.04.10 |
어셈블리어 정리 ( cmp & TEST & ZF & CF ) (0) | 2018.04.04 |