본문 바로가기

게임 보안/[서적] 봇을 이용한 게임 해킹8

4. 고급 메모리 포렌식 본 게시글은 메모리에 대한 깊은 이해를 위해 에이콘 출판사의 "봇을 이용한 게임 해킹" 서적을 보고 필기한 자료입니다. 따라서 디테일한 부분에서 본 서적의 실제 내용과 다를 수 있고 글쓴이의 주관이 들어가 있음을 참고해주시기 바랍니다. 문제 시 비공개 처리하도록 하겠습니다. 근성 있는 해커라면 지속적인 해킹 방어에 대응하기 위해 혹은 메모리의 복잡한 데이터 구조를 파악하고 특정 데이터 위치를 찾아내기 위해 최고 수준의 메모리 포렌식 기법을 배워야 한다 목적 추론하기 캐릭터의 체력값을 찾는 방법 struct PlayerVital { int current, maximum; }; PlayerVital health; printString("Health: %d of %d\n", health.current, hea.. 2022. 9. 28.
3. x86 어셈블리 크래시 코스 본 게시글은 메모리에 대한 깊은 이해를 위해 에이콘 출판사의 "봇을 이용한 게임 해킹" 서적을 보고 필기한 자료입니다. 따라서 디테일한 부분에서 본 서적의 실제 내용과 다를 수 있고 글쓴이의 주관이 들어가 있음을 참고해주시기 바랍니다. 문제 시 비공개 처리하도록 하겠습니다. 프로그램의 소스 코드가 바이너리로 컴파일 될 때 불필요한 모든 부분이 제거되고 기계어로 바뀐다. 기계어는 오직 바이트로만 구성됨 기계어는 프로세서에 직접 피드백을 제공하고, 명령한다. 0과 1로 트랜지스터의 상태를 변경하는 과정을 이해하는 건 어렵기 때문에 좀 더 쉽게 소통하기 위해서 어셈블리와 같은 기계어로 작업을 수행함 어셈블리 언어 니모닉스라고 부르는 짧은 형태의 명령어와 피연산자로 표현하며 문법이 매우 간단 게임 해커에게 가장.. 2022. 9. 28.
2. 코드에서 메모리로 - 기본 원리 본 게시글은 메모리에 대한 깊은 이해를 위해 에이콘 출판사의 "봇을 이용한 게임 해킹" 서적을 보고 필기한 자료입니다. 따라서 디테일한 부분에서 본 서적의 실제 내용과 다를 수 있고 글쓴이의 주관이 들어가 있음을 참고해주시기 바랍니다. 문제 시 비공개 처리하도록 하겠습니다. . 근본적으로 게임 코드, 데이터, 입력값과 출력값과 같은 개념들은 메모리 바이트를 변형시킨 개념들 게임 해커들은 게임 데이터를 조작함으로써 게임에서 사람에게 도움이 되는 이익을 챙긴다. 이를 위해선 개발자의 코드가 컴파일되고 실행될 때 사람이 어떻게 인지하고 어떤 영향을 미치는지 이해해야 함 컴퓨터처럼 사고하기 위해서 숫자와 텍스트, 간단한 구조체와 복합체들이 어떻게 메모리에 바이트 단위로 표시되는지 알아야 함 숫자 데이터 플레이어.. 2022. 9. 24.
1. 해킹 도구 본 게시글은 메모리에 대한 깊은 이해를 위해 에이콘 출판사의 "봇을 이용한 게임 해킹" 서적을 보고 필기한 자료입니다. 따라서 디테일한 부분에서 본 서적의 실제 내용과 다를 수 있고 글쓴이의 주관이 들어가 있음을 참고해주시기 바랍니다. 문제 시 비공개 처리하도록 하겠습니다. 치트 엔진 게임 내의 메모리를 스캔할 수 있는 도구 메모리에는 HP, 공격력, 레벨 등 캐릭터에 민감한 데이터들이 올라와 있다. 목표로 하는 메모리의 값을 임의적으로 변화시키면서 오류를 줄여나가고 결국 해당 메모리 값을 추출할 수 있다. 포인터 스캐닝 포인터 체인을 사용하는 이유는 대규모 동적 메모리 할당이 발생할 때 게임 코드가 이를 참조할 수 있는 정적 주소가 대응되어야 하기 때문 게임 해커들은 포인터 체인을 찾아서 메모리에 접근.. 2022. 9. 18.