본문 바로가기
게임 보안/[서적] 봇을 이용한 게임 해킹

1. 해킹 도구

by 헛둘이 2022. 9. 18.

본 게시글은 메모리에 대한 깊은 이해를 위해 에이콘 출판사의 "봇을 이용한 게임 해킹" 서적을 보고 필기한 자료입니다.

따라서 디테일한 부분에서 본 서적의 실제 내용과 다를 수 있고 글쓴이의 주관이 들어가 있음을 참고해주시기 바랍니다.

문제 시 비공개 처리하도록 하겠습니다.

 

 

치트 엔진
  • 게임 내의 메모리를 스캔할 수 있는 도구
  • 메모리에는 HP, 공격력, 레벨 등 캐릭터에 민감한 데이터들이 올라와 있다.
  • 목표로 하는 메모리의 값을 임의적으로 변화시키면서 오류를 줄여나가고 결국 해당 메모리 값을 추출할 수 있다.

 

https://www.cheatengine.org/

 

 

포인터 스캐닝
  • 포인터 체인을 사용하는 이유는 대규모 동적 메모리 할당이 발생할 때
  • 게임 코드가 이를 참조할 수 있는 정적 주소가 대응되어야 하기 때문
  • 게임 해커들은 포인터 체인을 찾아서 메모리에 접근할 수 있다.

 

 

 

 

 

 


 

올리 디버거
  • 치트엔진을 통한 게임 해킹은 표면에 흠집을 내는 수준이다.
  • 올리 디버거는 조건부 브레이크 포인트, 스트링 검색, 어셈블리 패턴 검색 등 다양한 기능을 제공한다.

 

 

http://www.ollydbg.de/

 

멀티 클라이언트 패치라고 불리는 해킹 기법
  • 하나의 인스턴스만 수행 가능하도록 작성된 게임 바이너리에 추가적인 코드 작성 없이 또 켜는 것
  • 이를 통해 여러 개의 클라이언트를 실행하는 것이 금지된 게임에서도 가능하게 한다.
  • 여러 개의 인스턴스를 허용하지 않는 코드는 게임 클라이언트가 실행된 그 즉시 수행됨
  • 봇을 사용해 패치를 제때 수행하는 것은 불가능에 가까움
  • 가장 쉬운 우회 방법은 올리디버거를 이용해 멀티 클라이언트 패치를 지속적으로 수행, 게임 바이너리에 직접 저장

 

코드 패치 제작하기
  • 올리 디버거의 코드패치로 어셈블리 코드를 수정해 게임을 해킹할 수 있다.
  • 자체적으로 패치 설계 및 테스트하는 기능을 제공하고 수정된 코드를 실행파일로 저장 가능

 

패치를 적용하려면?
  • CPU창에서 패치가 필요한 어셈 코드라인을 찾는다.
  • Disassembly 열의 항목 더블클릭 및 팝업된 창에 명령어 입력 후 엔터

 

패치 시 주의 사항
  • 패치할 때 크기에 주의를 기울여야 한다.
  • 한번 패치를 제작하고 나면 크기를 재조정할 수 없고 수정이 불가함
  • 대체하고자 하는 코드의 크기가 기존 코드보다 크면 오버플로우 유발
  • 기존 코드보다 작으면 Fill with NOP 항목이 체크되어 있으면 안-전
  • 이 옵션은 남는 바이트는 NOP으로 채우는 것

 

 

 

 

 

 


프로세스 모니터
  • 프로세스 모니터는 다양한 이벤트를 실시간으로 기록하는 강력한 모니터링 툴
  • 게임이 레지스트리와 파일시스템, 네트워크와 상호작용하는 방법을 연구하면 많은 것을 알 수 있다.
  • 게임이 외부환경과 상호작용하는데 관련된 유용한 데이터 수집 가능

https://learn.microsoft.com/ko-kr/sysinternals/downloads/procmon

 

 

인게임 이벤트로그 남기기
  • 프로세스 모니터는 유용하게 쓰일 가능성이 있는 모든 이벤트 저장 가능함
  • 가장 실용적인 활용법은 인게임 아이템, 파일 같은 데이터 파일이 어디에 저장되는지 파악하는 것.

 

 

프로세스 모니터 로그의 이벤트 조사
  • 이벤트와 관련된 모든 데이터 포인트를 기록함
  • 이벤트와 관련된 파일을 통해 얻는 것보다 더 많은 배울 수 있음

 

 

 

 


프로세스 익스플로러
  • 좀 더 발전된 형태의 작업관리자
  • 게임이 어떻게 동작하는지 이해하기 위해 필요한 첫 번째 툴
  • 파일이나 뮤택스와 같이 게임과 밀접한 관계를 가진 전역 객체들에 대해 유용한 정보를 얻음
  • 특히 ASRL 상태를 얻을 수 있는데, 메모리를 읽는 방법에 영향을 미치므로 중요함

https://learn.microsoft.com/ko-kr/sysinternals/downloads/process-explorer

댓글