Reversing.kr 3번 Easy Unpack(100pt) 문제 풀이
- Easy Unpack
Easy Unpack 문제를 클릭하여 다운받도록 하자.
문제를 다운받고 압축을 푸면 Easy_Unpack.exe 파일과 함께 ReadMe.txt 파일이 존재했다.
ReadMe.txt 파일안에는 OEP를 찾으라는 문구가 적혀 있었다.
Pack 되어 있는 파일들은 프로그램 시작주소가 이상한 곳을 가르킨다.
이런 상태에서 디버깅을 진행하다 보면 코드가 Unpack 되어 보여지는 순간이 있는데 이 때의 프로그램 주소들을 확인하면 정상적으로 분석이 가능하며, 이 때 디버깅을 시도 했을 때의 시작 주소가 "OEP" 이다.
프로그램을 실행하면 흰 배경의 창하나를 출력하는 것 이외에는 아무런 동작을 하지 않는다.
ollydbg로 디버깅을 시도 해보면 패킹이 되어 있기 때문에 엔트리 포인트가 정상적이지 않다.
그리고 무수히 많은 분기문과 반복을 통해 의미없는 값들을 저장한다.
무수히 존재하는 분기문의 마지막 분기점을 확인하면 "OEP" 주소를 확인 할 수 있다.
해당 부분에 브레이크 포인트(F2) 걸고 프로그램을 시작시켜 OEP 주소를 찾아내는 Manual Unpacking 방식을 사용해보자.
마지막 분기점의 OEP주소에서 다시한번 프로그램을 실행하면 이렇게 unpaking 되어 Define Double word 를 확인 할 수 있다. 여기서 ctrl+A 단축키를 이용하면 code Analyze 기능을 통해 코드를 확인 할 수 있다.
Unpack 된 코드가 출력되었다.
[ 정답 ]
OEP 주소
Easy Unpack Clear!
'Reversing > Reversing.kr' 카테고리의 다른 글
Reversing.kr 6번 ImagePrc(120pt) 문제 풀이 (0) | 2017.11.11 |
---|---|
Reversing.kr 5번 Replace(150pt) 문제 풀이 (0) | 2017.11.11 |
Reversing.kr 2번 Easy KeygenMe(100pt) 문제 풀이 (0) | 2017.11.10 |
Reversing.kr 1번 Easy Crack(100pt) 문제 풀이 (1) | 2017.11.10 |