Summary
Game Reversing & Modding is an evolution of the first module, Game Hacking Fundamentals, where we start to explore more practical and complex techniques to hack games:
- An overview of
Arrays of Bytes
(AoBs) and their significance in game hacking. Scripting AoBs in Cheat Engine and a look at commercial game engines, focusing on Unity, Unreal Engine, and Godot—a look into Unity's IL2CPP, its functionality, and how it affects game security. - The art of
obfuscation
encompassing techniques like name obfuscation, string encryption, and control flow obfuscation to fortify software security. - Examine external and internal game hacks, understanding their unique features, applications, and methodologies.
- Insights into software libraries specifically focusing on understanding binaries and dynamic link libraries (DLLs).
- C#
events
andattributes
- Exploring the realm of game modifications, diving into their history, types, and multiple strategies for crafting mods.
- A look at
DnSpy
, a potent tool designed for analysing and altering dotnet binaries. Utilising DnSpy, we will reverse-engineer a game, modifying it to transform the game environment. - An introduction to runtime hook libraries like
BepInEx
and their importance in game hacking, coupled with implementing a library to inject into a game and modify its environment. -
Game networking
fundamentals, highlighting peer-to-peer vs. client-server models, understanding latency, prediction, interpolation, handling packet loss, matchmaking, scalability, and network security intricacies. - A thorough examination of
man-in-the-middle
(MITM) attacks, their methodology, and preventive techniques, both generally and specific to gaming. We'll finalise with a practical approach to MITM game hacking, focusing on setup, analysis, and manipulation of a game’s HTTP calls.
Important Requirements:
- This module is paired with several video games; you
will require
a laptop or a desktop computer with a GPU (Graphics Card). TheIntel HD 4600
,AMD HD 6570
orGeForce 9600GT
should be considered the bare minimum to get playable performance out of the game. You can try resizing the game to smaller dimensions if you are experiencing crippling performance. - If you want to run it in a Virtual Machine, VMWare Player is preferred over VirtualBox for Virtualization on Windows and Linux and Parallels on ARM Macs. Be sure to enable
GPU Acceleration
in the VM settings where applicable. - It’s recommended to go through the Introduction to C# module, understand the C# language, and set up the dotNet SDK on the machine.
- For some of the games, your machine will require OpenVPN installed to connect to the academy lab VPN to interact with the labs.
Introduction
The Game Hacking fundamentals
module introduced fundamental game-hacking concepts, such as understanding and manipulating memory. It ended with introducing some basic code injection concepts and techniques.
In this module, you will delve deeper into the world of game hacking and explore more advanced tools and techniques to manipulate games. Building on the fundamental concepts covered in the previous module, you will gain a deeper understanding of game internals and learn how to leverage that knowledge for more complex objectives.
We will examine Arrays of Bytes
(AoBs
) and their role in game hacking. We will also explore scripting AoBs in Cheat Engine and look at different commercial game engines such as Unity
, Unreal Engine
, and Godot
. Next, we will delve into Unity's IL2CPP and understand how it works and impacts game security.
Obfuscation is a crucial aspect of software security and is used extensively so we will explore different obfuscation techniques, such as name obfuscation, string encryption, and control flow obfuscation.
Next, we will introduce you to DnSpy, a powerful tool for analysing and modifying dotnet binaries. We will reverse a game to modify it to change the game environment.
We will briefly examine external and internal game hacks, exploring their differences, various applications and approaches. We will explore software libraries, understanding binaries, and dynamic link libraries (DLLs).
C# Events and attributes play an important role in understanding unity game hacking so we will explore delegates, events, and attributes.
Next, we will explore game modifications, their history, types, and the various approaches to creating mods. We will also introduce you to runtime hook libraries like BepInEx and their application in game hacking and then implement a library to inject into a game to alter the game.
Game networking is another aspect we will explore, including the fundamentals of game networking, peer-to-peer vs client-server models, latency, prediction and interpolation, handling packet loss, matchmaking, scalability, and network security.
We will also discuss man-in-the-middle (MITM) attacks, their execution, and mitigation techniques in general and within the gaming context. Finally, we will explore man-in-the-middle game hacking, including setting up, analysing, and tampering with a game’s HTTP calls.