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 으로 하드코딩해주자.
스택에서 인자를 수정해주면 된다.. 그리고 실행하면
정상적으로 실행된다 ㅜㅜ
구글링해서 찾으면 된다. 왕좌의게임에 나오는 인물인가보다.