'MEW 11 1.2 -> NorthFox/HCC'에 해당되는 글 1

  1. [Unpack] MEW 11 1.2 -> NorthFox/HCC 2009/03/20

[Unpack] MEW 11 1.2 -> NorthFox/HCC

Posted at 2009/03/20 18:34 // in RCE // by 엔신
사용자 삽입 이미지

MEW 11 SE 1.2 Packer로 패킹한 후 언패킹하여 보았다.
확인하여 보니 Entry Point가 첫 번째 Section이 아님을 알 수 있다.
디버깅을 하여 보면 아래에서 처음 시작하게 된다.

0047C526 >-E9 293CF8FF      JMP unpacked.00400154

가 나오고 해당 영역으로 점프해서 확인하여 보면 패킹된 데이터를 복호화하는 함수들이 나타나게 된다.

00400154   BE 1CA04500      MOV ESI,unpacked.0045A01C
00400159   8BDE             MOV EBX,ESI
0040015B   AD               LODS DWORD PTR DS:[ESI]
0040015C   AD               LODS DWORD PTR DS:[ESI]
0040015D   50               PUSH EAX
0040015E   AD               LODS DWORD PTR DS:[ESI]
0040015F   97               XCHG EAX,EDI
00400160   B2 80            MOV DL,80
00400162   A4               MOVS BYTE PTR ES:[EDI],BYTE PTR DS:[ESI]
00400163   B6 80            MOV DH,80
00400165   FF13             CALL DWORD PTR DS:[EBX]
00400167  ^73 F9            JNB SHORT unpacked.00400162
00400169   33C9             XOR ECX,ECX
0040016B   FF13             CALL DWORD PTR DS:[EBX]
0040016D   73 16            JNB SHORT unpacked.00400185
........................... 생략 ...................................
004001F1   91               XCHG EAX,ECX
004001F2   40               INC EAX
004001F3   50               PUSH EAX
004001F4   55               PUSH EBP
004001F5   FF53 F4          CALL DWORD PTR DS:[EBX-C]
004001F8   AB               STOS DWORD PTR ES:[EDI]
004001F9   85C0             TEST EAX,EAX
004001FB  ^75 E5            JNZ SHORT unpacked.004001E2
004001FD   C3               RETN
004001FE   0000             ADD BYTE PTR DS:[EAX],AL
00400200   0000             ADD BYTE PTR DS:[EAX],AL
00400202   0000             ADD BYTE PTR DS:[EAX],AL
00400204   0000             ADD BYTE PTR DS:[EAX],AL

중간 복호화하는 데이터를 확인하여 보고 밑으로 더 내리다보면 결국에는 RETN이 나오게 된다.
해당 영역에 브레이크 포인트를 걸고 Run 한다.
잠시 후 브레이크가 걸리고 Step by로 RETN을 하면 OEP가 나오게 된다.

사용자 삽입 이미지

그러나 아직 Analyse Code가 이루어지지 않았다.
Analysis -> Remove analysis from module 메뉴를 이용하면 정상적인 코드 확인이 가능해진다.

사용자 삽입 이미지

OEP가 45834라는 것을 확인하였으니 IAT를 찾아야 한다.
Cntl + B 키를 이용하여 Serach for Binary를 이용하여 FF25를 검색한다.

사용자 삽입 이미지

Search를 통해 찾은 내용을 Dump 윈도우에서 Long->Address 타입으로 보게 되면 위와 같이 확인하기 쉽게 IAT를 볼 수 있다.

4486C4(끝주소) - 448104(시작주소) = 5C0(Size)

사용자 삽입 이미지

OllyDump나 ImpREC의 Dump 기능을 이용하여 일단 메모리에 로드된 데이터를 Dump하고 ImpREC 툴을 사용하여 IAT를 수정하고 Fix Dump하여 주면 정상적으로 Unpacking 완료이다.

이올린에 북마크하기
2009/03/20 18:34 2009/03/20 18:34