-
[reversing.kr] Easy Unpack 풀이Wargame/reversing.kr 2020. 12. 13. 15:17
1. 프로그램 실행
reversing.kr에서 Easy Unpack을 다운로드하여 실행시켜 보자.
위와 같이 빈 창이 나올 뿐 다른 어떤 동작도 하지 않는다. 폴더내에 있는 ReadMe.txt를 읽어보자.
Find the OEP. 즉 Original Entry Point를 찾을 것을 요구한다. 문제의 제목을 보면 알 수 있듯이, 해당 프로그램은 실행 압축되어있고 본래의 entry point를 찾는 것이 문제의 목적인 듯하다.
2. Debugging(with x32dbg)
실행하자마자 401150으로 jump 하는 부분이 있고, 해당 부분으로 jump를 하면 다음과 같다.
바로 entry point가 나와 버린다... x32dbg 옵션에서 시스템 중단점을 체크 해제해뒀을 때 위와 같이 OEP로 넘어가기 직전 부분에서 디버깅이 시작된다. 무언가 디버깅 툴에 너무 의존해서 문제를 풀어버린 것 같아 이번엔 디폴트 옵션인 시스템 중단점을 체크해보고 다시 실행시켜 보겠다.
위와 같이 디버깅 시작 부분이 다르다. Ctrl+F9와 F7을 이용하여 조금씩 디버깅해보자.
몇 번 지나가다 보면 entry point로 향하는 부분을 발견할 수 있다.
3. Debugging(with Ollydbg)
무언가 너무 손쉽게 풀린 것 같아 이번에는 가장 기초적인 디버거인 Ollydbg로 디버깅해보겠다.
이 녀석으로 디버깅했을 때는 또 다른 지점에서 디버깅이 시작된다. 리버싱 핵심 원리 책에서 upx 압축을 하였을 때 나타나는 특징에 기반하여 OEP를 찾아보려고 했지만, pushad, popad 명령어가 잘 들어오지 않는다. 아마도 해당 명령어를 사용하지 않는 패커를 이용한 것 같다. Ctrl+F8과 F7을 이용하여 코드를 옮겨 넣는 loop는 다음 부분에 bp를 설정하고 F9를 이용하여 넘기는 방식을 반복하다 보면 다음과 같은 부분에 이르게 된다.
F7을 눌러 jump를 하게 되면 위와 같은 형태의 코드를 볼 수 있다. 당황하지 말고 Ctrl+A를 눌러 Ollydbg가 해당 부분을 분석하게 해 보자.
위와 같이 사실은 Entry Point임을 확인할 수 있다.
반응형'Wargame > reversing.kr' 카테고리의 다른 글
[reversing.kr] Music Player 풀이 (0) 2021.02.09 [reversing.kr] ransomware 풀이 (0) 2021.01.08 [reversing.kr] Easy ELF 풀이 (0) 2021.01.05 [reversing.kr] Easy Keygen 풀이 (0) 2020.12.09 [reversing.kr] Easy Crack 풀이 (0) 2020.12.07