Skip to content

All lessons

155 lessons in 15 chapters, about 72 hours to read and work through the examples. The sequence starts with a game action and works inward to state, bytes, and instructions, then outward to files, messages, and deeper system boundaries. Each lab tests an idea explained beside it; reading in order works best the first time through. Later, use the concept titles and summaries below to find a specific explanation or worked example. Times include the worked exercises; your pace will depend on how much you run and explore.

Your progress: 155 lessons

Tick a lesson when you finish it; the lesson list shows the same ticks. Progress is saved in this browser only.

1. Computer, Game, and Code Foundations

CPU and stored values β†’ game objects β†’ a small Rust program β†’ an owned, resettable lab β†’ memory, scanning, and bits About 4.7 hours.

10 lessons
  1. 1.1Reasoning from Evidence

    Ask precise questions, judge evidence, test assumptions, correct mistakes, and build understanding through practice.

    20 min
  2. 1.2How a Computer Runs a Game

    Build a game from CPU instructions, a small program, stored values, and the services that make it interactive.

    16 min
  3. 1.3Game Fundamentals

    Follow actions through a game's entities, checks, space, and time; distinguish live state, display copies, server decisions, saves, and bytes.

    39 min
  4. 1.4Programming Fundamentals

    Build a guarded gold-purchase function and use it to understand variables, branches, test cases, collections, and ways to organize code.

    40 min
  5. 1.5Rust Primer: Logic in Code

    Express programming logic in Rust: name state, choose a path, repeat work, group values, borrow safely, and handle missing or failed results.

    55 min
  6. 1.6Hacking Fundamentals

    Turn observed game behavior into repeatable experiments, test a small tool, and record the evidence needed to reproduce its results.

    27 min
  7. 1.7A Windows Lab You Can Reset

    Set up a Windows virtual machine with the compiler, debugger, memory scanner, course code, and recovery snapshots.

    20 min
  8. 1.8How Memory Actually Works

    Trace one game value through bytes, types, addresses, pointers, and offsets, then see why a found address can change.

    25 min
  9. 1.9What a Memory Scan Really Finds

    Find, test, and change one gold value in Wesnoth, and see what each scan does and does not prove.

    18 min
  10. 1.10Bits, Masks, Shifts, and Rotations

    Read a byte by its bit positions, select flags with masks, and distinguish discarded shift bits from wrapped rotation bits.

    22 min

2. Following Instructions and Addresses

A changing value β†’ assembly and a paused process β†’ callers β†’ moving addresses and pointer paths β†’ preserved control flow About 3.3 hours.

10 lessons
  1. 2.1What a Debugger Can Reveal

    Learn what a debugger actually does and why pausing one instruction can answer a big question.

    9 min
  2. 2.2How Source Becomes a Running Process

    Compare native compilation, bytecode interpretation, REPLs, and type checking; then follow a native program through linking and loading.

    28 min
  3. 2.3How Assembly Describes a Running Game

    Understand what assembly is, how the CPU executes it, and how registers, memory, flags, stacks, and calls fit together.

    30 min
  4. 2.4Breakpoints: One Moment of Program State

    Pause on an instruction or memory access, inspect registers, memory, and the call stack, and continue without losing the thread.

    12 min
  5. 2.5From a Game Value to the Code That Changes It

    Follow a known gold address backward to the exact instruction that changes it.

    20 min
  6. 2.6Tracing an Action Through Its Callers

    Follow callers and dependencies from one gold-changing instruction to the menu decision that caused it.

    28 min
  7. 2.7Why Addresses Move

    Understand dynamic allocation, module bases, ASLR, and why a pointer path survives when one raw address does not.

    18 min
  8. 2.8How Pointer Paths Survive Restarts

    Trace the player object back to a verified starting point and prove the pointer path across restarts.

    20 min
  9. 2.9How Detours Change Control Flow

    Understand how a small detour can run extra instructions and still return the game to its original path.

    14 min
  10. 2.10What a Working Detour Must Preserve

    Build a temporary debugger-only detour, prove every hop, and restore the target.

    17 min

3. Typed Memory, Ownership, and Object Layouts

A checked boundary β†’ deeper Rust at that boundary β†’ decoded values β†’ external copies β†’ objects, collections, and text About 5 hours.

11 lessons
  1. 3.1Safe Boundaries for Game Memory

    Learn the ownership, address, byte-buffer, error, and operating-system boundaries used by every memory tool.

    28 min
  2. 3.2Rust: Missing Values, Failures, and States

    Follow Option and Result through closures, early returns, and pattern matching, then represent game states with enums.

    22 min
  3. 3.3Rust: Collections, Bounds, and Bytes

    Read iterator chains, overlapping windows, complete records, explicit byte conversion, integer limits, and C layout.

    24 min
  4. 3.4Rust: Borrowed Views and Useful Interfaces

    Connect lifetimes, typed offsets, From and Into, Display, derived traits, generic capabilities, and validated builders.

    24 min
  5. 3.5Rust: Cleanup and Helpful Errors

    Use scope-bound cleanup, Drop, structured library errors, and application context without hiding failures.

    22 min
  6. 3.6How Bytes Become Numbers and Pointers

    Work out by hand how whole numbers, negative numbers, and f32 floats are stored, and exactly what a pointer's type controls.

    24 min
  7. 3.7How External Tools Read Game Memory

    Open the target, read a verified address, and write through a small checked process-memory wrapper.

    24 min
  8. 3.8How C++ Objects Appear in Memory

    Turn repeated reads, member-function calls, and virtual dispatch into a tested object layout, then inspect it through typed snapshots.

    35 min
  9. 3.9Object-Oriented Clues in Machine Code

    Recognize the shapes that factories, states, observers, singletons, and component systems leave in compiled code: repeated pointers, virtual calls, constructors, and update loops.

    42 min
  10. 3.10How Collections Live and Die in Memory

    Identify vectors, strings, handles, component pools, reference counts, and destruction paths without assuming one compiler's private layout.

    40 min
  11. 3.11How Text Becomes Bytes in a Game

    Trace visible text to bytes, understand encodings and terminators, and build checked strings at FFI boundaries.

    16 min

4. Game State and Bounded Decisions

An engine frame β†’ copied players β†’ guarded actions β†’ coordinates and grids β†’ feedback, targets, paths, events, and basic NPC decisions About 4 hours.

10 lessons
  1. 4.1Game Engines: Input, Simulation, and Rendering

    Follow input, movement, collisions, timers, and drawing through an engine; distinguish live state from the code and files that produce it.

    35 min
  2. 4.2From One Player to a Game-State Snapshot

    See how one verified player layout becomes a bounded, typed snapshot of every side in a local match.

    18 min
  3. 4.3Why Snapshots Need Guarded Actions

    Learn why live reads go stale and how snapshots, separate observation, and verified writes protect a game-state tool.

    26 min
  4. 4.4Coordinates, Vectors, and Directions

    Build distance and direction from positions, use normalization and dot products to express spatial decisions, then blend values and test contact with simple shapes.

    26 min
  5. 4.5Maps as Grids of Game State

    Understand a map as indexed game state, then trace and visualize one tile's visibility in an offline lab.

    16 min
  6. 4.6Automation as a Feedback Loop

    Use a recruitment loop to see why feedback, named states, confirmation, and a safe stop make automation reliable.

    22 min
  7. 4.7From Coordinates to Target Selection

    Trace player and enemy positions in offline Flare, then choose actions from validated coordinates rather than fixed timings.

    21 min
  8. 4.8Pathfinding on a Game Map

    Turn a verified tile grid into routes with BFS or A-Star, keeping map observation separate from game input.

    36 min
  9. 4.9When Changed State Becomes an Event

    Turn repeated polls into meaningful events with snapshot differences, debouncing, confirmation, and cooldowns.

    25 min
  10. 4.10How NPCs Sense and Decide

    Follow a guard through sensing, delayed reactions, and state changes to understand how games choose an NPC's next action.

    17 min

5. Executable Maps, Instruction References, and Scans

PE layouts and exports β†’ precise instruction lookup β†’ patterns and regions β†’ decoding β†’ tracing profiles and parallel captures About 5.5 hours.

11 lessons
  1. 5.1What a Windows Executable Contains

    Use the PE header and section map to understand where a Windows executable keeps code, data, imports, and addresses.

    24 min
  2. 5.2File Offsets, RVAs, and Live Addresses

    Connect positions in a PE file to relative virtual addresses and the addresses Windows gives its loaded modules.

    28 min
  3. 5.3DLL Exports and Forwarded Names

    Understand how a DLL publishes functions through data directories, names, ordinals, addresses, and forwarded exports.

    42 min
  4. 5.4Instruction Reference: Values and Integer Arithmetic

    Look up common x86 value operations, then explore each one with a worked trace.

    28 min
  5. 5.5Instruction Reference: Decisions, Stack, and Bits

    Explore comparisons, branches, call stacks, masks, shifts, and debugger stops one instruction at a time.

    35 min
  6. 5.6Instruction Reference: Scalar Floating-Point Values

    Trace speed, position, numeric conversions, and NaN comparisons using the SSE instructions common in game code.

    20 min
  7. 5.7Byte Signatures and Pattern Scanning

    See how byte patterns locate candidate instructions across known builds, and why wildcards and semantic checks matter.

    35 min
  8. 5.8Memory Regions and Value Scanning

    Understand region permissions, copied snapshots, candidate filtering, and guarded writes in a value scanner.

    35 min
  9. 5.9Instruction Decoding and Disassembly

    See how a disassembler finds boundaries and meanings in variable-length x86 byte streams.

    22 min
  10. 5.10Event Tracing for Windows

    Understand how ETW records time-stamped events around a running game and how to read a short performance trace.

    28 min
  11. 5.11Parallel Scanning and Stable Snapshots

    Use immutable memory snapshots, bounded workers, cancellation, and sorted results to make scanning faster without losing reproducibility.

    32 min

6. Windows Processes and Callable Interfaces

Process resources β†’ rights and owned handles β†’ pages and threads β†’ call contracts β†’ engine scheduling, input queues, debug events, and bounded observation About 5.4 hours.

11 lessons
  1. 6.1The Running Game as a Process

    An executable becomes a process with threads, modules, handles, and Windows-managed state; the PEB and TEB reveal useful structure without being a safe API.

    24 min
  2. 6.2Game Runtimes and Object Lifetimes

    Native code, Mono, IL2CPP, .NET, and Java expose different evidence about objects and their lifetimes; classify a build before trusting an offset.

    26 min
  3. 6.3Process Access Rights

    A process ID names a target; tokens, integrity levels, DACLs, and access masks decide which operations Windows permits.

    26 min
  4. 6.4Handle Ownership and Lifetimes

    Windows handles are capabilities with lifetimes. Rust ownership and RAII make leaks and double closes easier to prevent.

    25 min
  5. 6.5Virtual Address Spaces and Page Protections

    Pages, regions, and R/W/X permissions explain why a game address can exist, fail, or change meaning.

    33 min
  6. 6.6Threads, Contexts, and Stacks

    A game's threads share process resources while retaining separate execution contexts and call stacks; scheduling and races shape what an observer sees.

    33 min
  7. 6.7What a DLL Function Promises Its Caller

    Infer an exported function's parameters, calling convention, result, and responsibility for memory cleanup before wrapping it in a small typed API.

    28 min
  8. 6.8How an Engine Orders and Shares Its Work

    See how an engine's systems share data through components, resources, and events, how one frame's work is ordered and run in parallel, and how the engine notices only what changed.

    32 min
  9. 6.9Windows Input: Polling, Events, and Messages

    Compare hotkey polling, synthetic input, and window messages so a local game tool chooses the right input boundary, and see how the window's client area, scale, and several windows change the coordinates it works with.

    36 min
  10. 6.10Debug Events and Software Breakpoints

    Understand how Windows debug events, breakpoint bytes, and thread state let a debugger pause and resume a real instruction.

    24 min
  11. 6.11Sampling Game State Under Load

    Record changing game state without delaying observation, hiding dropped samples, or losing the log's meaning.

    35 min

7. Camera Geometry and Rendering APIs

Coordinate frames β†’ pipeline state β†’ OpenGL observations β†’ collision and aim geometry β†’ motion, radar, projection, and Direct3D interfaces About 6.6 hours.

11 lessons
  1. 7.1Camera Frames and Projection

    Follow a world-space point through engine axis conventions, camera axes, object transforms and their local and world copies, quaternions, homogeneous coordinates, orthographic projection, and texture coordinates.

    40 min
  2. 7.2The Rendering Pipeline and Its State

    See how objects become pixels through meshes, materials, light, shaders, rasterization, depth testing, transparency, visibility flags and layers, culling, render passes, HDR and anti-aliasing, the renderer's own copy of the world, and the 2D case, and the state that gives each draw its meaning.

    55 min
  3. 7.3OpenGL Draw Calls and State

    Understand what indexed OpenGL draws request, how bound state, depth settings and shader inputs change their meaning, and why observation must keep the render thread moving.

    40 min
  4. 7.4Render Categories and Color Probes

    Use temporary color to distinguish render categories while accounting for materials, lighting, blending, color space, and the several passes that draw one frame.

    20 min
  5. 7.5Camera Rays, Collisions, and Crosshairs

    See how a camera ray, collision query, and occlusion test become a game's crosshair target, and how the same ray from a mouse cursor picks what is under it.

    34 min
  6. 7.6Aim Geometry and Target Selection

    Connect vectors to yaw, pitch, angular error, target ranking, how animation poses a skeleton, target points, timing, and projectile motion.

    44 min
  7. 7.7Recoil, Spread, and Camera Motion

    Separate input, weapon kick, random spread, camera shake and other camera motion, and recovery to understand why the view moves after a shot.

    32 min
  8. 7.8Radar Coordinates and Marker Filtering

    Follow team and alive filters, local coordinate transforms, radar scale, range clipping, and elevation markers.

    23 min
  9. 7.9World-to-Screen Projection and Overlays

    Follow a 3D point through world, view, clip, normalized, and screen coordinates, with the field of view, aspect ratio, and each camera's viewport, to place stable overlays.

    44 min
  10. 7.10Direct3D Interfaces and Vtables

    Understand how COM vtables expose Direct3D methods, why export lookup differs from OpenGL, and how a reversible swap-chain hook works.

    34 min
  11. 7.11Direct3D Draw Calls and Bound State

    Read Direct3D draw calls in the context of their bound state, compare what the same arguments mean in Direct3D 9 and 11, and see how shader variants, instancing, and many small draws change a frame's cost.

    32 min

8. In-Process Tools, Input, and Integration

DLL lifetime β†’ loading β†’ reversible detours and import hooks β†’ game input and commands β†’ rendered menus and snapshots β†’ architecture and safe removal About 5.3 hours.

10 lessons
  1. 8.1In-Process DLLs and Loader Boundaries

    Understand what changes when Rust code runs inside a game process and how DLL loading constrains initialization.

    20 min
  2. 8.2DLL Loading Across Process Boundaries

    Follow the module path, process handle, remote memory, and loader call involved in loading a DLL into a controlled game process.

    20 min
  3. 8.3Detours and Reversible Patches

    Understand how a detour redirects execution, preserves displaced instructions, verifies target bytes, and restores the original path.

    44 min
  4. 8.4Import Table Hooks

    See how an imported function pointer can be redirected inside a controlled process and safely restored.

    28 min
  5. 8.5How a Game Reads Input

    Follow a key press, a stick movement, and a mouse move from the device to a game action, and see why buttons have edges, sticks have dead zones, and typed text is not the same as keys.

    28 min
  6. 8.6Menus as State and Command Interfaces

    See how a settings menu expresses feature state, sends commands to a worker, and shuts down without leaving stale changes.

    38 min
  7. 8.7In-Game Menus and Text Rendering

    Understand what a game's interface is made of, how its text function can draw a small menu, and why input edges, frame timing, and string lifetimes matter.

    36 min
  8. 8.8Render Snapshots and Feature Integration

    Combine camera and player observations, graphics features, versioned profiles, and reversible hooks, including two exact-build Urban Terror wallhacks, without mixing frames or losing game state.

    24 min
  9. 8.9Tool Architecture, Commands, and Cleanup

    Organize a local tool around owned snapshots, typed commands, feature lifecycles, version checks, and dependable cleanup.

    26 min
  10. 8.10Hooks as Live Control-Flow Changes

    A hook changes live control flow under threads, ABI rules, and versioned bytes; safe installation and removal preserve those contracts.

    52 min

9. Network Messages, Authority, and IPC

Programs exchanging messages β†’ what the server discloses β†’ capture, parsing, and legal session order β†’ clients, relays, local transports, and an engine example About 4.2 hours.

10 lessons
  1. 9.1Messages, Streams, and Multiplayer

    See how a client and server turn a move into framed bytes, and why TCP transport does not define a game's message boundaries.

    25 min
  2. 9.2What the Server Can See

    Validate commands against server-owned state, withhold hidden information, and use replays carefully.

    8 min
  3. 9.3Protocol Capture and Message Framing

    Learn how a short local capture reveals message direction, boundaries, and the bytes associated with one game action.

    17 min
  4. 9.4Message Parsing and Serialization

    Connect raw chat frames to typed messages through bounded parsing, serialization, and round-trip checks.

    30 min
  5. 9.5Protocol State Machines and Replay

    Understand legal message order through session states, replay, real-time ticks, snapshots, and sequence numbers.

    39 min
  6. 9.6Clients, Handshakes, and Chat Automation

    See a complete protocol client perform Wesnoth's local handshake, read framed messages, and respond to one chat command.

    24 min
  7. 9.7Local Proxies and Bidirectional Streams

    Understand how a local proxy relays two byte streams while preserving direction, framing, and the original messages.

    20 min
  8. 9.8Shared Memory Between Processes

    See how two processes communicate through named shared memory, with explicit layouts, permissions, synchronization, and cleanup.

    34 min
  9. 9.9Named Pipes and Local Message Framing

    Compare byte and message modes in Windows named pipes, then account for framing, bounded reads, connection races, and handle ownership.

    38 min
  10. 9.10How the Source Engine Works

    Follow a player's command through Source's modules, prediction, server simulation, and snapshots, then connect those boundaries to settings and game files.

    18 min

10. Game Files, Mods, and Artifact Trust

Saved state and assets β†’ inspect and edit a copied file β†’ safe packages and reversible mods β†’ hashes, exact build identity, signatures, and encryption About 5.1 hours.

10 lessons
  1. 10.1Game Files and Live Memory

    See how saves, configuration, textures, maps, and archives preserve game state outside a running process, how a game turns an asset file into something it can draw or play, and how long that asset stays loaded, changes, or reloads.

    32 min
  2. 10.2Save Formats and Safe Editing

    See how text saves encode state, how controlled comparisons reveal fields, and why writes must be atomic.

    24 min
  3. 10.3Binary Saves and Hex Editing

    Read offsets and bytes in a hex editor, decode a small binary save, compare two files, and update a checksum.

    32 min
  4. 10.4Textures and Asset Replacement

    Connect a visible game surface to its texture file, preserve the expected format, and package a reversible replacement, then read the same ideas in a 3D model (glTF) and a sound, including how a sound is placed between two ears and fades with distance.

    34 min
  5. 10.5Data-Driven Game Mods

    Understand how a game turns editable unit definitions into behavior and how small changes can be validated.

    18 min
  6. 10.6Mod Archives and Safe Extraction

    Learn why archive entry names require path, size, and file-type checks before a mod is installed.

    27 min
  7. 10.7Reversible Mods and Manifests

    Use a manifest to record installed files, hashes, and restore actions so a mod can be checked and removed.

    24 min
  8. 10.8File Hashes and Digital Signatures

    Separate byte integrity from publisher identity through hashes, signatures, certificates, and Windows trust checks.

    37 min
  9. 10.9Build Identity and Versioned Evidence

    Learn why a version label is not enough and how a verified SHA-256 manifest ties addresses, patterns, mods, and patches to exact files.

    30 min
  10. 10.10Encryption and Key Lifecycles

    Compare encoding, hashing, MACs, and encryption, then follow the keys and metadata needed to protect a save.

    46 min

11. NPC Policy, Lua, and Script Execution

Remembered observations and decisions β†’ Lua and the host interface β†’ bounded script policy β†’ computability limits β†’ bytecodes, values, and call frames About 5.7 hours.

11 lessons
  1. 11.1How an NPC Sees, Chooses, and Remembers

    Work through the arithmetic inside Lesson 4.12's toy guard: the distance and dot product behind its view cone, stepped line-of-sight checks, utility scores and their switch points, and behavior trees.

    22 min
  2. 11.2Why Games Use Lua

    See why a game hosts Lua, run a small observer script, and learn the values and host boundary that later lessons build on.

    20 min
  3. 11.3Lua Tables, Functions, and Metatables

    Lua's flexible tables and first-class functions express records, sequences, callbacks, methods, and lookup behavior.

    30 min
  4. 11.4The Host–Script Boundary

    An embedded Lua VM can act only through the host functions and libraries the game exposes; typed contracts and error context keep that boundary clear.

    35 min
  5. 11.5Snapshots as a Script Interface

    Immutable, versioned observations and bounded action requests connect Lua to game state without exposing arbitrary pointers.

    33 min
  6. 11.6State Machines for Lua Automation

    Named states, guarded transitions, timeouts, and a stop path make a scripted game observer predictable.

    31 min
  7. 11.7Script Budgets, Errors, and Recovery

    Memory and instruction limits, tracebacks, and failure handling keep useful scripts from overrunning their host.

    30 min
  8. 11.8What Any Computer Can Compute

    Build a Turing machine by hand, see why one computer can run every program, and learn which questions about programs no tool can always answer.

    22 min
  9. 11.9From Lua Source to a Tiny Virtual Machine

    Tokens, syntax, bytecode, and a bounded interpreter loop turn a short Lua-like expression into machine behavior.

    42 min
  10. 11.10Values, Tables, Strings, and Garbage Collection

    See how a dynamic language represents values, why tables combine array and map behavior, and why automatic memory management must understand shared references and cycles.

    38 min
  11. 11.11Call Frames, Closures, and Upvalues

    Understand VM call frames, multiple returns, captured locals, open and closed upvalues, and the host boundary where native functions enter Lua.

    40 min

12. Loaders, Kernel Services, and Trust Boundaries

Module identity and loading β†’ dynamic calls β†’ kernel authority and system calls β†’ driver requests β†’ trust boundaries and failed checks About 4.3 hours.

10 lessons
  1. 12.1DLL Identity and Search Order

    A loaded module has a path, bytes, signer, and dependency context; names alone cannot prove which code entered a game.

    30 min
  2. 12.2DLL Loading and the Loader Lock

    Mapping imports and running DllMain require careful ordering; a tiny entry point avoids work that can deadlock the loader.

    27 min
  3. 12.3Dynamic Windows API Resolution

    Runtime export lookup turns an optional Windows API into a checked capability with an explicit ABI and fallback.

    29 min
  4. 12.4What an Operating System Kernel Does

    The processor separates user and kernel authority. System calls, scheduling, memory, interrupts, and drivers show what the kernel does for a running game.

    18 min
  5. 12.5From Win32 Calls to Kernel Services

    A Windows API call crosses layers of exports, native APIs, and system calls before a kernel service acts on a request.

    28 min
  6. 12.6System Calls and Privilege Checks

    Privilege bits, page permissions, API stubs, handle checks, and NTSTATUS together explain one request's route through the kernel.

    13 min
  7. 12.7How Device Drivers Work

    Drivers translate operating-system requests into hardware work through I/O packets, registers, interrupts, and DMA, including the path from key press to game input.

    18 min
  8. 12.8Driver Requests and Device Registers

    Control-code fields, device registers, interrupt work, and USB reports reveal how a driver turns a request or key press into an observable result.

    18 min
  9. 12.9The Kernel Trust Boundary

    Kernel drivers have authority beyond a game process; driver inventories and narrow privileges make that boundary visible.

    22 min
  10. 12.10Failure Modes at Trust Boundaries

    Eight further failure modes, from wrapping arithmetic to partial commits, show where an invariant must be enforced.

    55 min

13. Physical Memory, Machines, and Hardware

DMA and page translation β†’ virtual guests β†’ firmware and consoles β†’ chip debug access β†’ emulated instructions and time About 4.1 hours.

10 lessons
  1. 13.1DMA and Physical Memory

    DMA gives devices a path to memory, while page tables and IOMMUs determine which physical bytes correspond to an address.

    40 min
  2. 13.2Virtual-to-Physical Address Translation

    An offline page-table walk maps one process address to bounded offsets in a RAM capture, including reads that cross pages.

    48 min
  3. 13.3Hypervisors and Virtual Machines

    A hypervisor gives guest machines controlled access to processors and memory through VM exits, two-stage translation, and snapshots.

    18 min
  4. 13.4Guest Execution and Address Translation

    A guest relies on virtualization support and two-stage address translation; walking one address shows both the isolation and its cost.

    10 min
  5. 13.5Firmware and Bare-Metal Rust

    Follow a microcontroller from reset to Rust, build a working firmware image, and understand what changes when you program a physical board.

    28 min
  6. 13.6How Game Consoles Are Built

    Consoles combine familiar computer parts with secure boot, signing, and platform rules that shape how games can run and be modified.

    20 min
  7. 13.7Hardware Debugging with JTAG

    JTAG began as a board-test port and became a hardware debugging path through scan chains, the TAP controller, and SWD.

    18 min
  8. 13.8JTAG Scan Chains and Debug Access

    Shift registers, TAP states, IDCODE, and SWD packets show how a hardware debugger discovers and controls a chip.

    23 min
  9. 13.9How Emulators Work

    An emulator recreates a console in software through instruction execution, memory-mapped I/O, timing, graphics, audio, and save states.

    18 min
  10. 13.10Emulator Timing and State

    A toy console makes instruction costs, frame timing, save states, and register races concrete inside a Rust emulator.

    20 min

14. Versioned Evidence, State, and Integrity

An exact-build layout β†’ bounded call logs and saved captures β†’ state invariants and correlated telemetry β†’ integrity signals and reversible representations About 6.8 hours.

10 lessons
  1. 14.1Object Layouts Across Game Updates

    Object identity, field offsets, and layouts must be recovered for each build through several independent access patterns, starting from a toy guard whose padded layout is known.

    50 min
  2. 14.2Call Tracing and Bounded Logs

    Connect scanning, decoding, breakpoints, and bounded logging to a trace of calls made by a running game.

    35 min
  3. 14.3Crash Dumps as Process Snapshots

    A small dump preserves selected threads, modules, registers, and stacks for later inspection without a running process.

    24 min
  4. 14.4Capture Provenance and Validation

    A plausible translation can still describe the wrong process, build, or moment; provenance and independent checks give offline bytes meaning.

    34 min
  5. 14.5Game State and Invariants

    A game's state changes through transitions. Invariants describe which states remain valid, while controls and detectors answer different parts of that promise.

    30 min
  6. 14.6Telemetry as Evidence of Game Behavior

    Bounded event traces connect inputs, decisions, and effects so a suspected control gap becomes a testable claim.

    47 min
  7. 14.7Integrity Checks and Their Boundaries

    An integrity check is meaningful only when its inputs, timing, and decision path cover the state it promises to protect.

    50 min
  8. 14.8Anti-Debug Signals and Responses

    Anti-debug behavior is a sequence of signals, interpretations, and responses; explicit states expose false positives and weak assumptions.

    45 min
  9. 14.9When Game Values Are Encoded

    Learn the difference between representation and security, trace small encode/decode paths, and implement a reversible value plus integrity check.

    38 min
  10. 14.10Obfuscated Values and Reversible Transforms

    Reversible transforms can hide a value in memory without providing encryption; round trips and controlled changes reveal the rule.

    55 min

15. Defensive Design and Anti-Cheat

Why validation matters β†’ server and client observations β†’ detection and review β†’ two isolated control-gap examples β†’ documented protection and resilient game design About 2.6 hours.

10 lessons
  1. 15.1Why Games Need Anti-Cheat

    Separate a player's requests from the game's decisions, and connect prevention, detection, and fair enforcement.

    7 min
  2. 15.2Server Plugins, Counters, and False Flags

    Read Macrodox and other SourceMod designs as measurement systems, separating button edges, weighted history, and enforcement.

    10 min
  3. 15.3What Client Protection Can See

    Connect local integrity checks and kernel protection to boot trust, driver risk, privacy, and reliability.

    8 min
  4. 15.4How Detections Work

    Compare detector signals and count the real people behind a false-positive rate.

    8 min
  5. 15.5Layers, Trust, and Review

    Combine game, platform, league, and server observations without treating duplicated reports as independent proof.

    7 min
  6. 15.6Cheat Categories from the Defender's Side

    Connect different locations of unauthorized code and automation to the observations and boundaries a defender can use.

    8 min
  7. 15.7Control Gaps in Toy Defenses

    Three small defenses show how an apparently valid check can miss the path that produces an effect, and how to repair its invariant.

    32 min
  8. 15.8Control Gaps in Game Logic

    Three toy game controls reveal a recurring mismatch between the checked proxy and the effect that actually changes state.

    58 min
  9. 15.9Anti-Cheat in Modern Games

    Compare documented protection boundaries and lifetimes without treating product names as proof of effectiveness.

    8 min
  10. 15.10Designing a Game That Is Hard to Cheat In

    Place authority, disclosure, retries, evidence, and permissions into the game's design from the beginning.

    8 min

This book grew out of the original Game Hacking Academy by attilathedud and has been rewritten as a beginner-first course. Like the original repository, its source is published under the Apache License 2.0.