Videogames provide a great medium for programmers to improve their skills through designing and implementing many complex systems that must be performant and act cohesively.
In turn, videogames also serve as a great medium for fledgling reverse engineers to learn the ropes and gain practical experience picking apart those complex systems and exploiting them.
Navigate this guide by clicking the links in the table of contents below or by visiting each folder in this git repository.
Example projects may be included in each section, but they are also linked to in the All Example Projects
folder for convenience.
- Basics
- Hooking
- Inline detour
- e9 jmp and ff25 jmp
- Trampolines
- Virtual Method Table (VMT / VTable) hooking
- swap vtable ptr or overwrite element in vtable
- Vectored Exception Handler (VEH) hooking
- Hardware Breakpoint (HWBP) hooking
- Summary
- Injection
- Making the target call LoadLibrary for you
- Manual Mapping
- Thread Hijacking
- Process Environment Block (PEB) unlinking for all cases
- TO-DO: move the above two into a new top-level 'Stealth' section
- Considerations for UWP apps
- Summary
- Information Gathering
- "how 2maek esp???"
- Different Ways to Draw
- Directx/OpenGL hook
- Engine drawing
- Requirements for an ESP
- World to Screen
- math is hard
- Externals
- Chams
- stride, numverts, index, and depth
- d3d11+ equivalents
- Summary and Tips
- Aimbot
- Networking
- (Work-In-Progress) Kernel mode
- mapping your driver & executing it
- reading/writing usermode memory
- kernel<->user communication
- stealth... and why you'll get caught
- (i'm still learning this myself)
- (Work-In-Progress) Hypervisors
- type 1 & type 2
- hijacking hyper-v
- (i still have to learn this myself)
- (Work-In-Progress) UEFI boot drivers
- (i still have to learn this myself)
- Viewing data structures in memory and in a disassembler
- Basic manual mapper
- Aimbot + ESP quick rundown for assault cube
- internal and maybe external?
- Aimbot + ESP quick rundown for an old quake engine game
- Aimbot + ESP quick rundown for a ue4 game
- GObjects + GNames = GG
- Aimbot + ESP quick rundown for a unity game
- mono backend vs il2cpp backend
- Aimbot + ESP quick rundown for a cryengine (5?) game
- Converting assault cube hack to kernel-mode