9번 문제입니다. stolenbyte를 구하라고 합니다.
무엇인지 모르지만 먼저 exe파일을 받겠습니다.
파일을 실행하면 위와 같은 창이 나오고 프로그램이 종료됩니다.
PEID로 보면 upx패킹이 된것을 알 수 있습니다.
이젠 반사적으로 upx툴을 이용해 언패킹하네요.
그런데 언패킹을 하면 정상적으로 실행되지 않고 아래와 같이 실행됩니다.
무언가가 깨진것 같습니다. 여기서 stolenbyte가 무엇인지 살펴보겠습니다.
패킹을 할 때 맨 아래에 위치한 jmp 전에 OEP 아래에 존재해야 할 코드를 jmp문 위로 stolen(훔친) 하는 기법입니다.
이를 통해 리버싱을 어렵게 하는 방법입니다.
그렇다면 jmp 문 위를 잘 살펴보면
이같은 코드들이 나옵니다. 아마도 stolenbyte가 이 부분인것 같습니다.
이 부분을 원래의 위치로 되돌려 놓으면 정상적으로 언패킹 되어 실행 될 것 이라 예상됩니다.
NOP 위치에 opcode를 채워 넣었습니다.
그리고 ollydump로 저장합니다.
이제 정상적으로 실행 됩니다.
codeengn의 정답은 stolenbyte를 쭈욱 나열하면 됩니다.
'Wargame > CodeEngn challenge' 카테고리의 다른 글
CodeEngn basic Level 11 풀이 (0) | 2016.09.30 |
---|---|
CodeEngn basic Level 10 풀이 (0) | 2016.09.30 |
CodeEngn basic Level 8 풀이 (0) | 2016.09.12 |
CodeEngn basic Level 7 풀이 (0) | 2016.09.12 |
CodeEngn basic Level 6 풀이 (0) | 2016.09.11 |