NOTICE


 MPress v2.19로 실행 압축된 파일의 Unpacking 방법에 대해 알아보겠습니다. 이론적인 설명은 배재하고 압축 해제 방법만 간단히 소개하도록 하겠습니다. 분석에 사용한 샘플 파일과 분석 도구 정보는 다음과 같습니다.


 - 샘플 파일 정보

 파일 이름

 Intimacao-M_P_U-PDF.cpl

 파일 크기

 153,600 byte

 MD5

 0980B5EE6BC75AC805800AC43E85EBB3


 - 분석 Tool 정보

 파일 이름

파일 이름

x32 DBG.exe

 



1. 압축 해제하기


 MPress v2.19로 실행 압축되어 있는 파일을 x32 DBG.exe에 로드합니다. 가장 먼저 만날 수 있는 코드는 PUSHAD로 레지스터의 정보를 스택에 저장합니다. 


[그림 1.1.] 압축 파일 x32 DBG.exe에 로드


 F7(StepInto)을 사용해서 해당 코드를 실행합니다.


[그림 1.2.] F7(StepInto)로 실행


 그리고 x32 DBG.exe의 하단 명령어 입력창에 다음과 같은 명령어를 입력해줍니다. ESP가 가리키는 주소 공간에 데이터를 쓰거나 읽으려고 시도할 때 하드웨어 BreakPoint를 설치하는 것입니다. 자세한 설명은 생략합니다.


[그림 1.3.] 명령어 입력


 F9(RUN)를 사용해서 실행하면 [그림 1.4.]와 같이 'JMP OEP주소'에서 멈춥니다.

[그림 1.4.] 'JMP OEP주소' 확인


 여기서 F7(StepInto)하면 OEP로 이동할 수 있습니다.

[그림 1.5.] OEP 확인


 이제 압축이 해제되었으니 Scylla x86을 사용해 덤프 파일을 만들면 됩니다.


[그림 1.6.] 덤프 파일 생성


① OEP를 확인하고 입력한다.

② IAT Autosearch 버튼을 누르면 자동으로 VA와 Size 항목이 채워진다.

③ Get Imports 버튼을 눌러서 IAT 정보를 가져온다.

④ Dump 버튼을 눌러서 덤프 파일을 생성한다.

⑤ Fix Dump 버튼을 눌러서 덤프 파일에 덮어씌운다.


 이 과정이 모두 끝나면 Unpack File이 생성됩니다


 이상으로 '[Unpack] MPress v2.19' 압축 해제 과정 포스트를 마치겠습니다.


  1. no picture 2016.08.18 13:23

    비밀댓글입니다

  2. no picture qqer1134 2017.02.24 01:21 신고

    안녕하세요 글 잘 보고 있습니다 혹시 파일 하나 분석 요청 가능할까요?

    • no picture BlogIcon itseeyou 2017.02.24 11:40 신고

      안녕하세요~ 어떤 용도인지는 모르겠으나 개인적인 분석 요청은 들어드리기 힘들 것 같습니다. 죄송합니다.

  3. no picture dkclssha123 2017.11.10 03:03 신고

    이글을 보고 직접 해보다가 오류가 생겨서 질문드립니다 bphws esp,rw 를 한후 jmp 문에서 한단계 더가면 oep 부분으로가는게 아니라 call로 가버리는 현상이있습니다 혹시 해결방법있을까요?
    call 부분에서 get import 하면 FThunk 라는 오류 14개가 뜹니다