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

+ Recent posts