크기가 매우 작은 간단한 게임이다.


처음 실행 하자마자 메모리 영역을 보면 알수 없는 문자들이 있는데


몬스터를 잡다보면 이 곳이 복호화 되는 것을 확인할 수 있다.


몬스터 한마리당 한글자를 복호화 하지만 총 글자수가 50개인 반면 몬스터는 48마리 밖에 없다.


해서 패스워드 버퍼에 메모리 브레이크 포인트를 건 뒤 몬스터를 잡아보면, 특정 메모리 공간에 있는 값으로 복호화 하는 루틴을 찾을 수 있다.


다시 복호화 값으로 사용되는 값중 하나를 골라 하드웨어 브레이크를 건 뒤 프로그램을 재 실행 해보자.

초기화 과정에서 해당 브레이크 포인트에 걸리는 것을 볼 수 있다. 그게 바로 위 사진의 루틴이다.

0x210 바이트 간격으로 데이터를 저장하는데, 이 값들이 몬스터들마다 하나씩 가지고 있는 복호화 키다.

반복문을 분석하면

키값이 0x4 만큼 계속 증가한다는 것을 확인할 수 있으며 이 규칙으로 나머지 값도 알아낼 수 있다.



'취미 > WarGame' 카테고리의 다른 글

[reversing.kr] Twist1  (0) 2015.02.27
[reversing.kr] Ransomware  (0) 2015.02.24
[reversing.kr] ImagePrc  (0) 2015.02.21
[reversing.kr] Position  (0) 2013.10.30
[reversing.kr] replace  (0) 2013.10.25
Posted by $Zero
: