프로그램을 실행 시키면 다음과 같은 게임 화면이 나오게 됩니다.
점수 획득이 가능하며 1000점을 달성했을 시에 보스몹이 나오게 되고
그 보스몹의 피는 999999 입니다.
보스몹은 전체공격(?)을 시전해서 정상적인 방법으로
도저히 클리어가 불가능합니다.
보스몹 출현!!
보스몹의 피를 깍는건 거의 불가능 합니다.
현재 게임에서 볼수 있는 단서는 점수라고 생각하고
그 점수값이 1000점이 되었을때 새로운 함수가 실행 된다라는 생각이 들어서
점수를 중심적으로 찾아 보았습니다.
예상대로 1000점이었을경우 if문 안으로 분기해서 보스몹을 띄우는 루틴을 찾을 수 있습니다.
여러 루틴을 살피던 도중에 스코어 값이 20점이 되었을때 406450의 메모리의 값을
바꿔버리는 루틴을 찾을 수 있었습니다.
바뀐 이후의 메모리 값 입니다.
밑을 조금더 살펴 보게 되면은, 바뀐 값에 또 += 18로 바꾸는 것을 볼 수 있습니다.
그리고 그 밑에 406450 메모리의 값을 String에 넣고 TextOut 해주는것을 볼 수 있습니다.
999999의 피를 다 깍은 이후의 출력될 값으로 예상 됩니다.
메모리 값을 가져와서 +=을 해 줬습니다.
키값이 출력 됨을 확인 할 수 있었습니다.
치트엔진으로 메모리값만 바꾸어도 키값을 출력 합니다.
'CAT-Security > 미분류' 카테고리의 다른 글
[Codegate2014] dodoCrackme_200 (0) | 2014.05.13 |
---|---|
[Reversing.kr] Direct3D_FPS (6) | 2014.05.08 |
gdb 명령어 요약집 (0) | 2014.04.28 |
[Defcon 21 ctf] policebox (0) | 2014.04.08 |
Python 예외처리 (0) | 2014.01.09 |