목록Study/Game Hacking (12)
0x0102
1. 접근 리버싱을 위해서는 보고 싶은 정보가 무엇인지 파악한 다음, 어디에 해당 정보가 있는지 찾아야한다. 예를 들어 게임이 특정 작업을 수행할 때 표시되는 텍스트를 검색하고 싶다면, 메모리 편집기에서 찾은 메모리 주소를 사용하여 코드를 찾을 수 있다. 이러한 접근 방식에서는 breakpoint를 사용하게 된다. 2. breakpoints 중단점을 사용하면 디버거가 특정 명령에서 게임 실행을 일시 중지하고, 사용자는 게임의 메모리를 볼 수 있다. 모든 유형의 메모리에 중단점을 설정할 수 있으며 메모리 스캐너를 사용하여 찾은 메모리도 대상에 포함된다. 중단점은 조건부, 비조건부로 설정 가능하며 해당 조건이 충족되는 경우에만 트리거된다. (=팝핑) 3. Memory Breakpoints 메모리 해킹 게시물..
1. 데이터 관리 데이터는 일반적으로 메모리에서 레지스터로 이동하는데, 이후 데이터가 다시 메모리로 이동되기 전 해당 데이터에 대한 작업이 수행된다. 이동하는데는 mov 명령어가 사용된다. mov eax, ecx mov eax, 1 // ecx 값을 eax로 이동하기. 값 1을 eax로 이동하기. mov eax, dword ptr ds:[0x12345678] // 메모리 주소에 저장된 데이터를 레지스터로 이동 (dword ptr ds) lea eax, dword ptr ds:[ecx] // 레지스터에 주소를 저장한 다음 해당 주소를 다른 레지스터에 로드하여 클래스 내의 특정 변수 검색 2. 데이터 변경 데이터가 레지스터에 로드되면 명령어를 통해 데이터를 수정하는 것도 가능하다. inc eax dec ea..
1. 목표 메모리 수정을 통한 해킹은 강력하지만 한계가 있기에 게임 코드를 수정해야하는 경우가 존재한다. 이전 해킹에서 골드를 조작하여 유닛을 구매했다면 골드 없이도 유닛을 모집하는 것과 같은 해킹도 생각해 볼 수 있다. 이를 위해서는 게임이 실행되는 동안 게임 코드를 보는 '디버깅'을 통해 게임 코드를 수정해야 한다. 2. 도구 디버깅을 위해서는 디버거라는 도구가 필요하다. 디버거를 통해 게임을 일시 중지하거나 코드를 변경하거나, 레지스터를 수정하는 등의 작업이 가능해진다. 그러나 게임 코드를 잘못 변경하면 게임이나 컴퓨터 디스플레이 자체가 정지될 수 있으므로 해킹 머신과 개인 머신을 반드시 분리해야한다. 디버거에는 많은 종류가 있으나 IDA나 gbd를 주로 사용한다. 실습에서는 x64라는 오픈 소스 ..

첫 번째 해킹에서는 "The Battle for Wesnoth"라는 게임을 사용하여 실습해보았다. 이 게임은 부정 행위 방지 메커니즘이 없는 무료 오픈 소스 게임으로 실습에서는 1.14.17 버전을 사용했다. https://forums.wesnoth.org/viewtopic.php?t=54496 Wesnoth 1.14.17 - The Battle for Wesnoth Forums Get help with compiling or installing the game, and discuss announcements of new official releases. Moderator: Forum Moderators Pentarctagon Project Manager Posts: 5455 Joined: March 2..
1. Hacking Steps 1) 무엇을 바꿀지 생각하기 2) 어떤 메모리를 찾아야하는지 이해하기 3) 게임에서 해당 메모리 찾기 4) 해당 메모리 변경하기 2. Identify 해킹의 첫 단계는 수행하려는 작업을 식별하는 것으로 해킹마다 다른 접근 방식이 필요하다. 예를 들어 플레이어의 돈을 수정하려면 변수의 메모리 수정이 필요한 반면 wall로 타 플레이어를 보기 위해서는 게임 코드 메모리 수정이 필요하다. 3. Understand 메모리를 수정하려면 먼저 메모리를 찾아내야하고, 그 전에 어떤 메모리를 찾아야하는지 이해해야한다. 수정하려는 메모리가 변수일 수도 있고 코드일 수도 있기 때문이다. 수정에는 세가지 주요 유형이 있다. 플레이어의 돈을 수정하는 등의 변수 wall이 그려지는 방식을 수정하는..
1. 게임 구성 요소 Graphics Sounds Input Physics Game logic.. etc 게임은 복잡하고 다양한 요소들로 구성되어 라이브러리를 사용하게 되는데, 해킹에서 또한 라이브러리 식별이 중요하다. 예를 들어, wallhack은 해커가 단단한 벽을 통해 타 플레이어를 볼 수 있도록 하는 일종의 해킹으로 게임의 그래픽 라이브러리를 수정하여 프로그래밍할 수 있다.대부분의 해킹에서는 게임 로직을 수정하는데 이는 게임 플레이 방법을 담당하는 섹션으로 캐릭터 제어 등이 자유로워진다. 2. 게임 구조 게임 로직 또한 컴퓨터 코드와 마찬가지로 명령으로 구성된다.대부분의 게임에는 설정과 메인루프, 두 가지 주요 기능이 있다.1) 설정 설정 기능은 게임 시작 시 실행되며 하드 드라이브에서 이미, 사..
보호되어 있는 글입니다.
보호되어 있는 글입니다.
보호되어 있는 글입니다.
보호되어 있는 글입니다.