'메뉴얼 언패킹'에 해당되는 글 1건

  1. 2010.12.16 [Unpacking] FSG 2.0 Manual Unpacking
0x03 Reversing/Reversing2010.12.16 20:20
1. 개 요
FSG 2.0으로 패킹되어 있는 샘플을 Manual Unpacking 해보도록 하겠습니다.

2. FSG Manual Unpacking
언패킹 대상이 되는 샘플은 [그림 1]과 같이 FSG 2.0으로 패킹되어 있으며 섹션 테이블의 이름이 보이지 않는 특성을 갖고 있었습니다.
[그림 1]
OllyDbg로 해당 파일을 읽은 뒤 살펴보면 [그림 2] [그림 3]과 같이 ESI 레지스터가 가르키는 Byte를 EDI가 가르키는 주소로 복사하는 것을 볼 수 있습니다. 아무래도 원본 코드를 특정 영역에 압축해제 하는 것으로 추측할 수 있으며 쓰여지는 메모리 영역에 OEP가 있지 않을까 추측할 수 있습니다.
[그림 2]
[그림 3]
[그림 3]의 4001BF 주소에서 상위 주소로 분기를 하면서 실제 코드를 특정 메모리 영역에 복구하는 것을 볼 수 있습니다.

계속 진행하다 보면 [그림 4]와 같은 부분을 만나게 됩니다. STOS 구문에 의해서 EAX의 값을 EDI가 가르키는 메모리 상에 저장하는 볼 수 있습니다. 또한 4001D1 주소에서 특정 메모리 주소로 분기하는 구문이 있는 것을 확인할 수 있습니다.
[그림 4]

어느 정도 루프가 진행된 후에 EDI가 가르키는 주소 값을 확인해보면 [그림 5]와 같이 IAT가 복구되고 있는 것을 확인할 수 있습니다.
[그림 5]

이후 4001D1 주소에 있는 JMP 구문에 의해 특정 주소 영역으로 분기하게 되며 해당 영역으로 이동 후 Analysis -> Analysis code(Ctrl + A)해보면 [그림 6]과 같이 OEP로 보이는 부분을 확인할 수 있습니다.
[그림 6]

OEP를 찾은것 같으니 OllyDump를 이용하여 dump를 생성합니다.
[그림 7]

이후 ImportREC을 이용하여 IAT를 복구해 줍니다. IAT 주소는 [그림 5]에서 본 것 처럼 4010A0부터 저장되는 것을 확인 할 수 있으며, 최종 4010E8까지 저장되는 것을 확인할 수 있습니다. 따라서 ImportREC에 RVA = 10A0, Size = 48로 입력해 준 뒤 "Fix Dump" 해줍니다.
[그림 8]

최종적으로 생성된 파일을 PEiD를 이용하여 확인시 [그림 9]와 같이 정상적으로 언패킹된 것을 확인할 수 있습니다. :)
[그림 9]
                                                                                                    +---------------------------------+
                                                                                                    | Infinite Flow..                              |
                                                                                                    | mail : geekspark@gmail.com         |
                                                                                                    | Blog : http://sinun.tistory.com       |
                                                                                                    | twitter : @unpacker                      |
                                                                                                    | CISSP                                        |
                                                                                                    +----------------------------------+
저작자 표시 비영리 변경 금지
신고
Posted by By. PHR34K

티스토리 툴바