안경잡이개발자

728x90
반응형

치트 엔진(Cheat Engine) 튜토리얼(Tutorial) 7단계

나동빈


  이번 시간에는 치트 엔진 튜토리얼 7단계 문제를 풀어보도록 하겠습니다. 이번 문제는 코드 인젝션(Code Injection)입니다. 말 그대로 실행 중인 게임의 중간에 우리가 원하는 소스코드를 삽입하여 실행하는 것입니다.


  문제 요약: 누를 때마다 변수의 값이 2씩 감소하는 버튼이 있습니다. 버튼을 누를 때마다 변수의 값이 1씩 증가하도록 코드 인젝션을 하면 됩니다.



  현재 체력 변수의 값이 100입니다. 이를 99로 바꾼 뒤에 다시 스캔하는 식으로 변수를 찾아냅시다.





  이번에는 위 사진과 같이 어떠한 코드가 해당 주소의 값을 변경하는지 확인할 수 있도록 'Find out what writes to this address'를 누릅시다.




  이제 값을 변경해보면 위와 같이 어떠한 코드가 값을 변경하는지 추적이 되는 것을 확인할 수 있습니다. 더블 클릭하여 정보를 확인해보면 특정한 메모리 주소의 값에서 1을 빼는 것을 확인할 수 있습니다.



  이번에는 다음과 같이 Show disassembler를 눌러 어셈블리어 코드를 확인할 수 있습니다.



  이후에 코드 인젝션을 위해 먼저 자동화된 기능인 Auto Assemble 이용합시다.



  이후에 Code Injection 탭을 누르면 자동으로 원래 형태의 기본 코드가 주입됩니다.




  보시면 원래 코드(Original Code)로 1을 빼는 부분이 들어가 있는 것을 알 수 있습니다.



  따라서 다음과 같이 원래 코드를 지워버리고, 새롭게 할당되는 부분에 2를 더하는 기계어를 작성해주시면 됩니다. ADD값을 더하는 목적으로 사용하는 대표적인 어셈블리어입니다.



  이후에 실행(Execute)을 누르면 코드 인젝션이 완료됩니다.




  그러면 이제 버튼을 누를 때마다 2씩 값이 증가하며 성공적으로 문제가 풀린 것을 알 수 있습니다.



728x90
반응형