Use when designing or running a from-zero reverse-engineering learning path across C/C++, assembly, debugging, static and dynamic analysis, Windows internals, game-engine architecture, and anti-cheat research. Produces phase gates, deliberate practice, and evidence-backed capstones while routing technical work to existing specialist skills.
Build a reverse engineer by layers: first create and debug native programs, then account for their generated machine code, then recover behavior from unknown binaries, and only then combine Windows, engine, and anti-cheat subsystems into controlled research exercises.
The output is a competency ledger, not a reading checklist. A learner advances only when they can reproduce a result, explain its mechanism from evidence, and solve a nearby variant without a walkthrough. The supplied reading map lives in references/reading-map.md; treat it as a source list, not as a substitute for exercises.
When to Use
Planning a self-directed curriculum from C/C++ through native reverse engineering.
Turning a book/resource list into phases, labs, retrieval prompts, and observable graduation gates.
Assessing a learner's current level and selecting the next reverse-engineering exercise.
Building a progression from user-mode RE to Windows internals, game engines, or anti-cheat architecture.
Use teach when creating a persistent lesson workspace and individual lessons. Use the relevant specialist skill once the learner begins real technical work; this skill owns sequencing and mastery gates, not the detailed execution of a specific analysis, driver, overlay, or anti-cheat experiment.
Intake
Establish a baseline before assigning material. Record:
Dimension
Evidence to collect
Native programming
one C/C++ program the learner wrote, its build command, warnings, and a debugger session
Algorithms
completed problems plus explanations of chosen complexity and data representation
Platform
OS, architecture, compiler, debugger/disassembler availability, and VM/snapshot capability
RE experience
one annotated function or binary observation; distinguish reading pseudocode from tracing instructions
Objective
malware analysis, software compatibility, game-engine research, defensive anti-cheat work, or general systems understanding
Time budget
weekly hours and preferred session length
Do not infer mastery from titles read, tools installed, or copied code. Assign one short diagnostic per uncertain prerequisite.
Done when: the learner has a dated competency ledger with an objective, tooling baseline, current phase, and one concrete gap to close.
Operating Model
Every study block follows this loop:
Read narrowly. Take one concept from the current phase's primary material.
Recall unaided. Explain the concept, sketch its data/control flow, or predict program behavior before opening a tool.
Build or analyze. Implement a minimal program or inspect a deliberately scoped artifact.
Write evidence. Preserve commands, inputs, build identifiers, address coordinates, screenshots/logs, and a short statement of what changed the learner's model.
Vary one condition. Change an optimization level, compiler, input, architecture, structure layout, or feature flag and explain the difference.
Keep AI in a coaching role: request a question, a review of an attempted explanation, or a minimal hint. Do the first reconstruction, debugging attempt, and evidence collection before requesting a solution. Never substitute generated code for the learner's own implementation during a competency check.
Done when: every completed exercise has an artifact, an explanation, and a variation result—not only a passing build.
Curriculum Phases
Phase 0 — C/C++ and computational foundations
Goal: reason about memory, object lifetime, data representation, asymptotic cost, and I/O without treating the standard library or a debugger as magic.
Practice:
Write C programs that parse binary/text input, allocate and free dynamic structures, and handle failures.
Implement arrays, linked lists, hash tables, heaps, trees, sorting, and graph traversal at least once in C; repeat selected work in idiomatic C++ with RAII.
Solve algorithm problems under a constraint that forces a stated complexity and representation choice.
Build a small networked or file-format project and debug malformed inputs.
Gate: given a crash in a self-written program, the learner identifies the failing invariant, confirms it in a debugger, fixes it, and explains the generated object/data layout. They can implement a basic container and justify its time/space tradeoffs.
Route technical coding to:systems-language-engineering, lang-cpp23, and systematic-debugging.
Phase 1 — Machine model, ABI, and assembly fluency
Goal: map ordinary C/C++ constructs to registers, stack frames, calling conventions, relocations, and control flow.
Practice:
Compile the same small functions at -O0, -O2, and with different compilers; annotate differences.
Write small assembly routines that obey the target ABI, then inspect their object-file relocations and unwind behavior.
Use a debugger to stop before and after calls and reconcile register/stack state with the ABI.
Gate: the learner can recover a function's inputs, outputs, clobbers, locals, and call targets from disassembly, correctly label VA/RVA/file offset, and validate one conclusion with a source-to-assembly reproduction or debugger observation.
Route technical work to:assembly-reversal-engineering, lang-assembly, zydis-disassembly-engineering, and windbg-ttd where appropriate.
Phase 2 — Static binary analysis
Goal: develop an evidence-first static workflow before relying on decompiler output.
Practice:
Triage a benign, self-built native binary: format, architecture, sections, imports, strings, entry points, symbols, and compiler fingerprints.
Recover one parser, one state machine, and one data structure bottom-up from code and cross-references.
Maintain a table of module hash, address coordinate, bytes, interpretation, confidence, and validation plan.
Compare decompiler output against the actual instructions for all important conclusions.
Gate: produce an annotated analysis note for an unknown-but-benign binary that identifies one end-to-end input → transform → output path and validates its key semantics using a second method.
Route technical work to:reverse-engineering, ida-reverse, ghidra-reverse, radare2, re-source, and rev-struct.
Phase 3 — Dynamic analysis and hostile-code literacy
Goal: observe runtime behavior without confusing a debugger view with ground truth or a malware pattern with an attribution claim.
Practice:
Debug instrumented toy programs with deliberate anti-debug checks, packing-like decode stubs, IPC, and thread races.
Trace allocation, file, registry, process, and network behavior in a disposable VM.
Use breakpoints or Frida to capture function arguments, return values, and plaintext at one carefully selected boundary.
Analyze benign simulations or archived samples under a documented static-first, snapshot-backed lab workflow.
Gate: provide a timeline that joins a static code location to a runtime event, shows the exact build/tool versions, distinguishes observed facts from inferred behavior, and includes a negative control.
Route technical work to:malware-analysis, frida-dbi, frida-instrumentation, anti-debugging-techniques, memory-forensics, and digital-forensics.
Phase 4 — Windows internals and kernel foundations
Goal: explain Windows as interacting identity, object, memory, loader, I/O, and telemetry systems rather than a list of undocumented offsets.
Practice:
Trace a process creation, handle, token, module-load, file-I/O, and RPC/COM transaction end-to-end.
Resolve symbols and compare public types, disassembly, and runtime observations on the exact Windows build.
Build a minimal, safe driver or a user-mode mock that models an IOCTL contract, cancellation, and cleanup.
Capture an ETW trace with a known sentinel event, then account for provider configuration and event loss.
Gate: present a build-pinned subsystem map for one transaction, including trust transitions, object lifetime, cleanup, and the observation that could falsify the conclusion.
Route technical work to:windows-internals, windows-symbols-debugging, windows-telemetry-etw, kernel-dev, driver-comm, and windbg-ttd.
Phase 5 — Engine and protocol literacy
Goal: recover data flow in game-like real-time programs while respecting build provenance and server authority.
Practice:
Build a toy client/server simulation with replicated entities, prediction, correction, and a serialised message format.
Map the toy client's entity, transform, camera, and renderer data; validate each field from both runtime and static evidence.
Implement WorldToScreen from a known matrix and prove it with synthetic camera/viewport cases.
Decode a locally captured test protocol and document framing, state, error handling, and replay boundaries.
Gate: show one local actor transform flowing through camera projection to a screen coordinate, then distinguish local prediction from server-confirmed state in a packet/runtime timeline.
Route technical work to:game-internals, game-hacking, external-esp, offset-dumper, network-protocol-re, and protocol-reverse.
Phase 6 — Anti-cheat architecture and defensive measurement
Goal: analyze the defender's observation and decision pipeline as a layered, falsifiable system.
Practice:
Model a toy anti-cheat as game component, user-mode service, kernel telemetry collector, and backend decision system.
Inventory observable surfaces such as handle access, image loads, memory mappings, input, ETW, driver trust, hardware, screenshots, and server-side behavior.
Design clean baseline, positive-control, one-variable, and rollback runs; distinguish telemetry, block, kick, server correction, delayed action, and inconclusive outcomes.
Implement one defensive detector in a lab and measure its false positives against varied benign behavior.
Gate: deliver a version-pinned detection hypothesis with trusted telemetry provenance, a healthy positive control, negative controls, measured outcome classes, and cleanup evidence. A missing event is not a bypass conclusion until sensor health and loss are accounted for.
Route technical work to:ags-anti-cheat, anti-cheat-bypass, game-hacking, windows-telemetry-etw, kernel-callbacks, vbs-hvci-research, and tpm-attestation-research.
Phase 7 — Capstone and independent practice
Goal: solve a bounded new problem by choosing tools and evidence rather than following a copied recipe.
Choose a legal local artifact or self-built target, pin its build, write an analysis plan, and complete a project such as:
a file-format parser reverse-engineering report with a compatible reimplementation;
a self-built client/server protocol recovery and mutational test harness;
an engine schema/offset recovery pipeline with regression tests;
a Windows subsystem tracing lab with symbols, ETW, and debugger evidence; or
a toy anti-cheat telemetry/detector evaluation with an evidence package.
Gate: a reviewer can reproduce the environment, follow Evidence → Finding → Path, identify known limitations, and run one independent validation command without the learner present.
Competency Ledger Template
Maintain one row per competency:
Date
Phase
Competency
Artifact
Independent validation
Variation/negative control
Status
YYYY-MM-DD
1
Win64 ABI call recovery
labs/abi/notes.md
debugger register capture
-O0 vs -O2
demonstrated
Statuses: introduced, attempted, demonstrated, needs-variation, or regressed. A concept is not durable until it survives a variation after a delay.
Common Failure Modes
Reading without retrieval. Convert every chapter into a prediction, implementation, or artifact analysis before continuing.
Tool-first reversal. Start with file identity, address coordinates, and hypotheses; tools test models rather than provide them automatically.
Decompiler worship. Treat pseudocode as a hypothesis and check ABI, instructions, references, and runtime behavior.
Offset collecting. Keep build hash, source, signature/recipe, semantic assertions, and a regression result for each recovered field.
Skipping systems fundamentals. A learner who cannot explain pointers, object lifetime, ABIs, or process boundaries will stall on advanced tooling; return to the first failed gate.
Copying complete solutions. Use partial hints after an attempt; require an independently written variation before marking a skill demonstrated.
Confusing a detection observation with an enforcement result. Preserve baselines, controls, telemetry health, and backend outcome separately.
Verification Checklist
Objective, current baseline, tools, weekly budget, and next gap are recorded.
Each phase has a concrete artifact and evidence-backed gate.
Completed work includes recall, implementation/analysis, independent validation, and one variation.
Address, offset, schema, and build claims are pinned to a specific artifact/build.
Learner-produced explanations distinguish observed facts, inference, and unresolved questions.
Specialist skills are selected only after the relevant curriculum phase exposes a concrete task.
The capstone is reproducible by another reviewer from its evidence package.
1---2name: reverse-engineering-curriculum3description: Use when designing or running a from-zero reverse-engineering learning path across C/C++, assembly, debugging, static and dynamic analysis, Windows internals, game-engine architecture, and anti-cheat research. Produces phase gates, deliberate practice, and evidence-backed capstones while routing technical work to existing specialist skills.4license: MIT5---67# Reverse-Engineering Curriculum89## Overview1011Build a reverse engineer by layers: first create and debug native programs, then account for their generated machine code, then recover behavior from unknown binaries, and only then combine Windows, engine, and anti-cheat subsystems into controlled research exercises.1213The output is a **competency ledger**, not a reading checklist. A learner advances only when they can reproduce a result, explain its mechanism from evidence, and solve a nearby variant without a walkthrough. The supplied reading map lives in [references/reading-map.md](references/reading-map.md); treat it as a source list, not as a substitute for exercises.1415## When to Use1617- Planning a self-directed curriculum from C/C++ through native reverse engineering.18- Turning a book/resource list into phases, labs, retrieval prompts, and observable graduation gates.19- Assessing a learner's current level and selecting the next reverse-engineering exercise.20- Building a progression from user-mode RE to Windows internals, game engines, or anti-cheat architecture.2122Use `teach` when creating a persistent lesson workspace and individual lessons. Use the relevant specialist skill once the learner begins real technical work; this skill owns sequencing and mastery gates, not the detailed execution of a specific analysis, driver, overlay, or anti-cheat experiment.2324## Intake2526Establish a baseline before assigning material. Record:2728| Dimension | Evidence to collect |29|---|---|30| Native programming | one C/C++ program the learner wrote, its build command, warnings, and a debugger session |31| Algorithms | completed problems plus explanations of chosen complexity and data representation |32| Platform | OS, architecture, compiler, debugger/disassembler availability, and VM/snapshot capability |33| RE experience | one annotated function or binary observation; distinguish reading pseudocode from tracing instructions |34| Objective | malware analysis, software compatibility, game-engine research, defensive anti-cheat work, or general systems understanding |35| Time budget | weekly hours and preferred session length |3637Do not infer mastery from titles read, tools installed, or copied code. Assign one short diagnostic per uncertain prerequisite.3839**Done when:** the learner has a dated competency ledger with an objective, tooling baseline, current phase, and one concrete gap to close.4041## Operating Model4243Every study block follows this loop:44451. **Read narrowly.** Take one concept from the current phase's primary material.462. **Recall unaided.** Explain the concept, sketch its data/control flow, or predict program behavior before opening a tool.473. **Build or analyze.** Implement a minimal program or inspect a deliberately scoped artifact.484. **Cross-check.** Compare source ↔ compiler output ↔ debugger/runtime behavior, or compare static evidence ↔ dynamic observation.495. **Write evidence.** Preserve commands, inputs, build identifiers, address coordinates, screenshots/logs, and a short statement of what changed the learner's model.506. **Vary one condition.** Change an optimization level, compiler, input, architecture, structure layout, or feature flag and explain the difference.5152Keep AI in a coaching role: request a question, a review of an attempted explanation, or a minimal hint. Do the first reconstruction, debugging attempt, and evidence collection before requesting a solution. Never substitute generated code for the learner's own implementation during a competency check.5354**Done when:** every completed exercise has an artifact, an explanation, and a variation result—not only a passing build.5556## Curriculum Phases5758### Phase 0 — C/C++ and computational foundations5960**Goal:** reason about memory, object lifetime, data representation, asymptotic cost, and I/O without treating the standard library or a debugger as magic.6162**Practice:**63- Write C programs that parse binary/text input, allocate and free dynamic structures, and handle failures.64- Implement arrays, linked lists, hash tables, heaps, trees, sorting, and graph traversal at least once in C; repeat selected work in idiomatic C++ with RAII.65- Solve algorithm problems under a constraint that forces a stated complexity and representation choice.66- Build a small networked or file-format project and debug malformed inputs.6768**Gate:** given a crash in a self-written program, the learner identifies the failing invariant, confirms it in a debugger, fixes it, and explains the generated object/data layout. They can implement a basic container and justify its time/space tradeoffs.6970**Route technical coding to:** `systems-language-engineering`, `lang-cpp23`, and `systematic-debugging`.7172### Phase 1 — Machine model, ABI, and assembly fluency7374**Goal:** map ordinary C/C++ constructs to registers, stack frames, calling conventions, relocations, and control flow.7576**Practice:**77- Compile the same small functions at `-O0`, `-O2`, and with different compilers; annotate differences.78- Hand-trace loops, switches, pointers, structs, virtual calls, exceptions/error paths, and integer conversions.79- Write small assembly routines that obey the target ABI, then inspect their object-file relocations and unwind behavior.80- Use a debugger to stop before and after calls and reconcile register/stack state with the ABI.8182**Gate:** the learner can recover a function's inputs, outputs, clobbers, locals, and call targets from disassembly, correctly label VA/RVA/file offset, and validate one conclusion with a source-to-assembly reproduction or debugger observation.8384**Route technical work to:** `assembly-reversal-engineering`, `lang-assembly`, `zydis-disassembly-engineering`, and `windbg-ttd` where appropriate.8586### Phase 2 — Static binary analysis8788**Goal:** develop an evidence-first static workflow before relying on decompiler output.8990**Practice:**91- Triage a benign, self-built native binary: format, architecture, sections, imports, strings, entry points, symbols, and compiler fingerprints.92- Recover one parser, one state machine, and one data structure bottom-up from code and cross-references.93- Maintain a table of module hash, address coordinate, bytes, interpretation, confidence, and validation plan.94- Compare decompiler output against the actual instructions for all important conclusions.9596**Gate:** produce an annotated analysis note for an unknown-but-benign binary that identifies one end-to-end input → transform → output path and validates its key semantics using a second method.9798**Route technical work to:** `reverse-engineering`, `ida-reverse`, `ghidra-reverse`, `radare2`, `re-source`, and `rev-struct`.99100### Phase 3 — Dynamic analysis and hostile-code literacy101102**Goal:** observe runtime behavior without confusing a debugger view with ground truth or a malware pattern with an attribution claim.103104**Practice:**105- Debug instrumented toy programs with deliberate anti-debug checks, packing-like decode stubs, IPC, and thread races.106- Trace allocation, file, registry, process, and network behavior in a disposable VM.107- Use breakpoints or Frida to capture function arguments, return values, and plaintext at one carefully selected boundary.108- Analyze benign simulations or archived samples under a documented static-first, snapshot-backed lab workflow.109110**Gate:** provide a timeline that joins a static code location to a runtime event, shows the exact build/tool versions, distinguishes observed facts from inferred behavior, and includes a negative control.111112**Route technical work to:** `malware-analysis`, `frida-dbi`, `frida-instrumentation`, `anti-debugging-techniques`, `memory-forensics`, and `digital-forensics`.113114### Phase 4 — Windows internals and kernel foundations115116**Goal:** explain Windows as interacting identity, object, memory, loader, I/O, and telemetry systems rather than a list of undocumented offsets.117118**Practice:**119- Trace a process creation, handle, token, module-load, file-I/O, and RPC/COM transaction end-to-end.120- Resolve symbols and compare public types, disassembly, and runtime observations on the exact Windows build.121- Build a minimal, safe driver or a user-mode mock that models an IOCTL contract, cancellation, and cleanup.122- Capture an ETW trace with a known sentinel event, then account for provider configuration and event loss.123124**Gate:** present a build-pinned subsystem map for one transaction, including trust transitions, object lifetime, cleanup, and the observation that could falsify the conclusion.125126**Route technical work to:** `windows-internals`, `windows-symbols-debugging`, `windows-telemetry-etw`, `kernel-dev`, `driver-comm`, and `windbg-ttd`.127128### Phase 5 — Engine and protocol literacy129130**Goal:** recover data flow in game-like real-time programs while respecting build provenance and server authority.131132**Practice:**133- Build a toy client/server simulation with replicated entities, prediction, correction, and a serialised message format.134- Map the toy client's entity, transform, camera, and renderer data; validate each field from both runtime and static evidence.135- Implement WorldToScreen from a known matrix and prove it with synthetic camera/viewport cases.136- Decode a locally captured test protocol and document framing, state, error handling, and replay boundaries.137138**Gate:** show one local actor transform flowing through camera projection to a screen coordinate, then distinguish local prediction from server-confirmed state in a packet/runtime timeline.139140**Route technical work to:** `game-internals`, `game-hacking`, `external-esp`, `offset-dumper`, `network-protocol-re`, and `protocol-reverse`.141142### Phase 6 — Anti-cheat architecture and defensive measurement143144**Goal:** analyze the defender's observation and decision pipeline as a layered, falsifiable system.145146**Practice:**147- Model a toy anti-cheat as game component, user-mode service, kernel telemetry collector, and backend decision system.148- Inventory observable surfaces such as handle access, image loads, memory mappings, input, ETW, driver trust, hardware, screenshots, and server-side behavior.149- Design clean baseline, positive-control, one-variable, and rollback runs; distinguish telemetry, block, kick, server correction, delayed action, and inconclusive outcomes.150- Implement one defensive detector in a lab and measure its false positives against varied benign behavior.151152**Gate:** deliver a version-pinned detection hypothesis with trusted telemetry provenance, a healthy positive control, negative controls, measured outcome classes, and cleanup evidence. A missing event is not a bypass conclusion until sensor health and loss are accounted for.153154**Route technical work to:** `ags-anti-cheat`, `anti-cheat-bypass`, `game-hacking`, `windows-telemetry-etw`, `kernel-callbacks`, `vbs-hvci-research`, and `tpm-attestation-research`.155156### Phase 7 — Capstone and independent practice157158**Goal:** solve a bounded new problem by choosing tools and evidence rather than following a copied recipe.159160Choose a legal local artifact or self-built target, pin its build, write an analysis plan, and complete a project such as:161162- a file-format parser reverse-engineering report with a compatible reimplementation;163- a self-built client/server protocol recovery and mutational test harness;164- an engine schema/offset recovery pipeline with regression tests;165- a Windows subsystem tracing lab with symbols, ETW, and debugger evidence; or166- a toy anti-cheat telemetry/detector evaluation with an evidence package.167168**Gate:** a reviewer can reproduce the environment, follow Evidence → Finding → Path, identify known limitations, and run one independent validation command without the learner present.169170## Competency Ledger Template171172Maintain one row per competency:173174| Date | Phase | Competency | Artifact | Independent validation | Variation/negative control | Status |175|---|---|---|---|---|---|---|176| YYYY-MM-DD | 1 | Win64 ABI call recovery | `labs/abi/notes.md` | debugger register capture | `-O0` vs `-O2` | demonstrated |177178Statuses: `introduced`, `attempted`, `demonstrated`, `needs-variation`, or `regressed`. A concept is not durable until it survives a variation after a delay.179180## Common Failure Modes1811821. **Reading without retrieval.** Convert every chapter into a prediction, implementation, or artifact analysis before continuing.1832. **Tool-first reversal.** Start with file identity, address coordinates, and hypotheses; tools test models rather than provide them automatically.1843. **Decompiler worship.** Treat pseudocode as a hypothesis and check ABI, instructions, references, and runtime behavior.1854. **Offset collecting.** Keep build hash, source, signature/recipe, semantic assertions, and a regression result for each recovered field.1865. **Skipping systems fundamentals.** A learner who cannot explain pointers, object lifetime, ABIs, or process boundaries will stall on advanced tooling; return to the first failed gate.1876. **Copying complete solutions.** Use partial hints after an attempt; require an independently written variation before marking a skill demonstrated.1887. **Confusing a detection observation with an enforcement result.** Preserve baselines, controls, telemetry health, and backend outcome separately.189190## Verification Checklist191192- [ ] Objective, current baseline, tools, weekly budget, and next gap are recorded.193- [ ] Each phase has a concrete artifact and evidence-backed gate.194- [ ] Completed work includes recall, implementation/analysis, independent validation, and one variation.195- [ ] Address, offset, schema, and build claims are pinned to a specific artifact/build.196- [ ] Learner-produced explanations distinguish observed facts, inference, and unresolved questions.197- [ ] Specialist skills are selected only after the relevant curriculum phase exposes a concrete task.198- [ ] The capstone is reproducible by another reviewer from its evidence package.
Run npx skillmds@latest add netvar1337/reverse-engineering-curriculum in your terminal (requires Node.js), paste this page's agent-chat prompt into Claude, Cursor, or any MCP-connected agent, or download the SKILL.md file and copy it into your agent's skills directory.
Use when designing or running a from-zero reverse-engineering learning path across C/C++, assembly, debugging, static and dynamic analysis, Windows internals, game-engine architecture, and anti-cheat research. Produces phase gates, deliberate practice, and evidence-backed capstones while routing technical work to existing specialist skills. It is listed under Research & Search on SkillMD.
This skill has not completed SkillMD's automated safety review yet. SkillMD never runs a skill's scripts for you; review the SKILL.md before installing.
This skill is tagged as working with Claude Code, Claude.ai, OpenAI Codex. SKILL.md is an open format, so most agents that read a skills directory can load it too.
Yes. Installing skills from SkillMD is free. This skill is licensed under MIT.
netvar1337 (@netvar1337) published this skill. Their other Agent Skills are listed on their SkillMD profile.