문제입니다.

"Not registered .... try again!"이라는 문구가 뜨고 입력이 안됩니다.

PEID로 살펴보니 ASPack 로 패킹되어 있네요

수동으로 언패킹을 진행해 보겠습니다.

올리디버거로 열면 이전에 보았던 UPX패킹과 동일하게 PUSHAD라는 명령이 보입니다.

모든 POPAD에 break point를 걸어서 확인해보아도 좋지만 저는 간단하게 "retn 0c"로 검색해서 POPAD위치를 찾겠습니다.

ASpack 의 경우 "PUSHAD -> 압축해제 -> POPAD -> retn의 과정을 거칩니다.

찾았습니다.

위를 보시면 POPAD 이후 04564FC 로 이동하여 PUSH 00445834를 하고 RETN을 하고 있습니다.

여기서 "00445834"라 OEP가 됩니다.

그럼 실행을 해보곘습니다.

이 부분이 OEP 부분입니다.

정확하진 않지만 제가 알기로는 패킹된 상태에서 메모리에 로드되어기 때문에 당시 코드를 읽지 못하여 명령어가 이상하게 보이는 것으로 알고 있습니다.

ctrl + a 를 하면 코드가 해석되어 보입니다.

이 부분에서 덤프를 뜨고 정상적으로 실행되는지 확인해 보겠습니다.

"10_dump.exe"파일명으로 생성하겠습니다.

정상적으로 실행되네요 ~

PEID로 확인해보면 패킹이 풀린 것을 확인할 수 있습니다.

이제 정상등록으로가는 분기점을 찾아보겠습니다.

"10_dump.exe"파일을 올리디버거로 열고 문자열을 한번 찾아보겠습니다.

"Registered ... well done!"이라는 문자열을 찾았습니다.

더블클릭해서 들어가보겠습니다.

위로 쭉 올라가서 F8을 눌러 진행해보면 분기점이 보이고 저부분에서 4454B5로 점프를 하게되는데 따라가보겠습니다.

4454B5로 따라가보니 분기점이 하나 더 보이네요 ~

JNZ SHORT 10_dump.00452B 이 부분이 분기점이 되며 제로플래그가 0일 경우 등록 문구를 지나쳐 점프를 하게 되어 있습니다.

제로플래그가 1이면 등록성공 문구를 출력하게 됩니다.

문제는 OEP+분기점 OPCODE 이므로

OEP : 445834

OPCODE : 7555

최종 : 4458347555

Basic RCE L10 성공!

추후 어떤 방식으로 등록이 되는지 분석하여 포스팅하겠습니다.

'WAR GAME > CodeEngn(Basic)' 카테고리의 다른 글

Basic RCE L12  (2) 2020.04.29
Basic RCE L11  (2) 2020.04.29
Basic RCE L09  (2) 2020.04.29
Basic RCE L08  (2) 2020.04.29
Basic RCE L07  (2) 2020.04.29

+ Recent posts