Reversing

[리버싱] 피카츄배구를 분석해보고 내 마음대로 제어하기!

CNU_PGS 2019. 1. 7. 15:46

안녕하세요!

 

지난번에는 지뢰찾기 게임을 리버싱 했었는데요, 오늘은 어렸을 때 많이 했던 피카츄배구를 분석하였습니다.

 

디버거 툴은 치트엔진을 사용하였고, 악용방지를 위해 구체적인 방법은 포스팅하지 않겠습니다^^

 

각각의 플레이어의 스코어를 제어하는 부분은 쉽게 할 수 있었습니다.

 

스코어는 4byte일 확률이 매우 높기 때문에 쉽게 접근할 수 있었고 초기 값과 변하는 값을 계속 확인할 수 있어서 금방 메모리 주소를 찾을 수 있었습니다.

 

총 점수 역시 5점, 10점, 15점으로 제한이 걸려있었고, 초기 값을 임의로 두고 값을 계속 변화시키면서 메모리 주소 값을 쉽게 찾을 수 있었습니다.

 

조금 시간이 걸린 부분은 게임 속도를 제어하는 부분이었습니다.

 

속도는 초기 값이 주어지지 않았고 저는 빨라지면 찾고자 하는 어떤 값이 커질 것이라는 고정관념 때문에 속도가 증가할 때마다 같이 증가하는 값의 메모리 주소를 찾으려고 시도했습니다.

 

해당하는 메모리 주소를 찾아서 그 주소가 가리키는 value를 변경해도 속도는 제어되지 않았습니다.

 

그래서 어셈블리어 코드로 열어보고 분석을 해봤더니 속도를 증가시키면 일정하게 감소하고 속도를 감소시키면 일정하게 증가하는 값을 갖는 메모리 주소를 발견했고, 그 값을 임의로 수정해보니 속도를 제어할 수 있게 되었습니다.