반응형

게임이 다시 시작되어도 언제든 적용할 수 있는 캐릭터 HP 치팅 스크립트를 만들어 보자.

 

게임을 시작한다.

 

HP가 저장된 메모리를 찾는다.

 

HP 메모리 찾기는 위 영상을 참고한다.

 

HP 메모리에 쓰기를 시도하는 opcode를 찾고 HP 감소에 관련된 코드를 선택한다.

 

 

메모리 뷰어에서 어셈블리 코드를 확인한다.

 

오토 어셈블 스크립트를 작성한다.

aobscan() 명령에서 메모리 relocation이 일어나는 코드를 제외하고 '48 89 47 60 83 EC 0C 57 E8'를 검색하도록 한다. 원래는 89부터 시작이었으나 1바이트 전의 48부터 시작했으므로 스크립트에는 INJECT+1을 사용했다.

이렇게 하는게 싫다면 와일드카드 캐릭터를 적용해서 검색한다. (x, ?, *)

 

주소를 하나 추가한다.

 

지금까지 잘 진행되었다면 위와 같이 세팅된다.

 

 

스크립트를 활성화 하고 HP에 변화가 생기면 그때부터 HP를 추적할 수 있다.

처음에 찾은 옵코드가 HP에 변화가 생기는 순간 실행되는 명령이기 때문에 항상 HP를 감시하지는 않는다. 하지만 게임을 종료하고 다시 실행해 메모리 주소에 변화가 생겨도 언제나 올바른 HP 값을 표시하고 변경할 수 있다. 위 그림에서도 확인할 수 있듯이 처음에 찾은 HP 메모리 주소(149CDB50)는 게임이 다시 시작되어 무효한 값이 되었지만 [HP] 심볼로 추가한 메모리 주소는 스크립트 덕분에 언제나 올바른 HP 메모리(149CDC18)를 가리킨다.

 

다른 스테이지에서도 언제나 HP값을 올바르게 찾아준다.

 

반응형
Posted by J-sean
: