본문 바로가기
Wargame Write-Up/Reversing.kr

[Reversing.kr] (Reversing) AutoHotKey2 풀이

by snwo 2021. 2. 28.

ReadMe 파일부터 확장자가 없다. 알맞게 실행되게 수정하라한다.

 

아무것도 안했는데 EXE corrupted 가 뜬다. DIE 로 열어보면, UPX 패킹되어있다고 한다.

upx.exe -d 으로 간편하게 언팩한 다음 열어보자. (아이다로)

 

CRC 체크하는 부분이다. 언패킹한 파일 0x448265 쯤에 bp 걸어서, 플래그 조작해 점프

 

이렇게 뜬다.

 

 

언패킹해서 실행하면 오류가 뜬다는 것을 까먹었다.

문제파일을 다시 다운받고 실행해보자

 

패킹된 후 , EXE currupt 가 출력되는 조건문 함수를 디버깅하면 이곳에서 걸린다.

v23 != v11 ^0xAAAAAAAA 이어서 LABEL_25 (0 이 아닌값을 리턴) 으로 가서 currpt 가 걸린다.

 

checksum 값을 계산한 값과 ebp-0x10 에 있는 값을 비교한다.

 

ebp-0x10 에 있는 값은 마지막 4바이트이다

 

마지막 4바이트를 수정해주면 된다!.

 

 

 

근데 이 부분에서 다시 걸려서 종료된다.

 

 

윗부분인 fseek 에서 문제가 발생한다. fseek 두번째 인자에 파일크기를 넘는값을 줘서

read 에서 못읽는 것이다.

 

fseek 로 0x32800 에 파일포인터를 옮겨놔야 값을 가져와서 제대로 비교를 하므로,

0x32800 으로 하드코딩해주자.

 

스택에서 인자를 수정해주면 된다.. 그리고 실행하면

 

정상적으로 실행된다 ㅜㅜ

구글링해서 찾으면 된다. 왕좌의게임에 나오는 인물인가보다.