파일을 실행시켜 보면 이미지를 그리라하고 아무거나 그려넘기면 틀렸다고 나온다.

내가 그린 그림의 대한 어떤 값과 해당 파일이 가지고 이름 그림에 대한 값이 비교될 것이고 그 해당값을 알아내면 끝.

위의 루틴을 보면 ECX에 있는 값과 EAX+ECX에 있는 값을 15F90(90000)번 비교한 후 실패메시지로 넘어가는 것을 볼 수 있다.
해당 메모리 주소로 가보면 ECX에는 내가 그린 이미지에 대한 값이, EAX+ECX에는 내가 그린 이미지에 대한 값이 저장되어 있다.
그렇다면 EAX+ECX메모리 주소에서 15E90만큼의 값을 구해오면 된다.
 

맨 처음 EAX+ECX 메모리 주소값인 0047E060에서 15E90을 더한 00493FF0 까지의 값을 구해온 뒤 내가그린 값인 ECX부터 ECX + 15E90까지의 값에 정답 값을 넣어주고 실행시켜봤다.

뭔가 정답이 나올줄 알았는데 틀렸다는 메시지만 안나올뿐 아무런 반응이 없었다. 그렇다면 이 값을 가지고 어떠한 이미지 파일을 만들면 될 것 같았다. 그래서 해당 코드부터 위쪽을 좀 봤더니 요런게 있었다.

CreateCompatibleBitmap이란 함수로 가로 200 세로 150짜리 bitmap 이미지 파일을 생성한 것을 볼 수 있었다. 그렇다면 이 실행파일은 위의 크기의 bitmap파일에 기존에 비교했던 값들을 담고 있었다고 생각해봤다. 그래서 그림판으로 bitmap 파일을 하나 만든 후 hexeditor로 정답값에 대한 binary값을 넣어봤다.

만들어진 bitmap 파일을 열어보니 정답이 나왔당.

 


'Wargame > reversing.kr' 카테고리의 다른 글

Reversing.kr Music Player  (0) 2018.02.16
Reversing.kr Direct3D FPS  (0) 2018.01.21
Revering.kr Replace  (0) 2018.01.21
Reversing.kr Easy Crack me  (0) 2018.01.21
Reversing.kr Easy Unpack  (0) 2018.01.21
블로그 이미지

JeonYoungSin

메모 기록용 공간

,