reversing.kr Unpack 풀이

http://reversing.kr/

 

Reversing.Kr

This site tests your ability to Cracking & Reverse Code Engineering. Now Challenge a problem for each environment. (Windows, Linux, .Net, Flash, Java, Python, Mobile..) Admin E-Mail: gogil@reversing.kr

reversing.kr

해당 사이트에서 여러 유형들의 예제 프로그램을 다운로드해 분석할 수 있습니다.

여기서 세 번째 문제인 Easy Unpack 프로그램을 가져와서 실습을 진행해 봤습니다.


 

파일에 첨부된 readme 파일부터 읽어봅니다. OEP를 찾으라네요.

OEP는 패킹된 프로그램의 실행되는 실제 시작점입니다.

그렇다면, 아마 패킹이 되어있을 거예요.

 

 

패킹이 되어있는 것을 확인할 수 있습니다.


 

파일을 ollydbg로 불러오면 코드가 망가졌다는 창이 뜹니다.

 

 

ollydbg 자체적으로 분석할 건지 물어봅니다. 일단 아니요를 눌러줍니다.

 

 

프로그램 시작 지점부터 난해합니다.

책에서 UPX 언 패킹 과정을 따라 한 적이 있는데 크게

PUSHAD ~

POPAD ~

JMP OEP ~

구문으로 압축 해제가 이루어지고 점프 구문으로 OEP로 이동했었습니다

 

 

그 느낌을 살려서 디버깅 진행하다 보니 어디론가 점프하는 구문을 만났고 따라가보니

 

 

Define Double word 발견! ctrl + a로 Analysing 해주면

 

 

정상적인 OEP 코드가 나옵니다.


+ 이런 단순한 파일은 PEID 자체적으로 지원해 주는 플러그인으로도 충분히 OEP를 찾을 수 있습니다..