피카츄 리버싱 4부...

2017. 6. 5. 19:520x02 Reverse Engineer/0x03. Etc

728x90

Day 3


오늘의 목적: 게임의 최대 점수를 조작.

지난 시간에, 게임의 속도를 조작해보았다. 

이번에는 각 메뉴의 5포인트 10포인트 15포인트를 조작해본다.


OllyDdg와 IDA라는 프로그램을 동시에 사용하였다. 


1) OllyDdg에 피카츄배구를 Attach시키고, 프로그램을 실행시켜 프로세스 동작(Running)상태로 만들어 둔다.




2) 메뉴의 옵션을 클릭해본다.

의심 되는 루틴이 보인다.



3) 아무거나 접근해본다. 

3가지의 비교가 나오는데 누가봐도 스코어다....^^ 



4) 값 수정 전에 실행해보자.


5) 5점이 되면 끝난다. 이제 이 값을 1로 조작을 하고, 기타 다른 점수 또한 10점,15점에서 임의값으로 조작을 진행한다. 



6) 이제 5점 위치는 1점으로 변경되었으므로 점수 1점만 나도 게임은 종료 될 것이다.

테스트 해본다.



7) 이 부분을 IDA로 살펴보았다.




8) 다음으로 2P가 지더라도 2P에게 점수를 부여하는 시스템을 만들어본다.


이 시스템을 효율적이고 빠르게 진행하기 위해 CheatEngine이라는 프로그램을 다운로드 받았다.


이 프로그램은 해당 프로그램 내에서 변수 값 조작이 가능할 뿐 아니라, 어셈블리어를 볼 수도 있고, 해당 변수의 주소까지 알아낼 수 있다.


다음 사진은 점수가 날 때 사용되어 지는 주소와 어셈블리어 명령어이다.



9) 해당 주소를 OllyDbg에서 따라가보았다.


1p가 이긴화면이다.




10) 2p가 이긴 화면이다.



11) 어디를 조작해야하는지 나왔다.



12) 조작 후 실행 결과 



끝~~!

'0x02 Reverse Engineer > 0x03. Etc' 카테고리의 다른 글

[피카츄 시연]  (0) 2017.07.03
피카츄 리버싱 5부...  (0) 2017.06.05
피카츄 리버싱 3부...  (0) 2017.06.05
피카츄 리버싱 2부...  (0) 2017.06.05
피카츄 리버싱 1부...  (4) 2017.06.04