reverse-engineering-tools
It provides workflows for disassembling and debugging game binaries and anti-cheat systems in user and kernel modes.
Install
mkdir -p .claude/skills/reverse-engineering-tools && curl -L -o skill.zip "https://agentskills.codes/api/skills/download/1115" && unzip -o skill.zip -d .claude/skills/reverse-engineering-tools && rm skill.zipInstalls to .claude/skills/reverse-engineering-tools
Activation
This is the description your AI agent reads to decide when to run this skill — the better it matches your request, the more reliably it fires.
Guide for reverse engineering protected games and anti-cheat components across user mode, kernel mode, and hypervisor-aware environments. Use this skill when analyzing drivers, IOCTL protocols, callback registration, injected-code artifacts, integrity checks, protected binaries, or debugging security-sensitive game components.Key capabilities
- →Analyze kernel-mode driver IOCTL protocols
- →Fix virtual machine-protected binaries
- →Debug anti-cheat memory artifacts
- →Automate decompiler signature lookups
How it works
Applies a structured workflow for unpacking and analyzing binaries while bypassing anti-debugging detection mechanisms.
Inputs & outputs
When to use reverse-engineering-tools
- →Analyzing kernel-mode drivers and IOCTLs
- →Debugging obfuscated binary components
- →Performing memory structure reconstruction
- →Researching anti-debugging techniques
About this skill
Reverse Engineering Tools & Techniques
Overview
This skill covers reverse engineering workflows for game security research, including protected game clients, anti-cheat user-mode modules, kernel drivers, memory artifacts, and debugging environments that must survive anti-analysis checks.
Treat performance, stealth, coverage, and compatibility claims as
target/version-specific. Record the binary hash, tool version, configuration,
environment, and observed evidence; use
research-rigor for consequential conclusions.
README Coverage
Cheat > DebuggingCheat > RE ToolsCheat > Mixed boolean-arithmeticCheat > Dynamic Binary InstrumentationCheat > Fix VMPCheat > Fix ThemidaCheat > Fix OLLVMCheat > Virtual EnvironmentsCheat > DecompilerCheat > IDA themesCheat > IDA PluginsCheat > IDA Signature DatabaseCheat > Binary Ninja PluginsCheat > Ghidra PluginsCheat > Radare PluginsCheat > Windbg PluginsCheat > X64DBG PluginsCheat > Cheat Engine PluginsCheat > ROP FinderCheat > ROP GenerationAnti Cheat > Anti DebuggingAnti Cheat > Anti DisassemblyAnti Cheat > Dump FixAnti Cheat > Sample UnpackerAnti Cheat > Obfuscation EngineAnti Cheat > Winows User Dump AnalysisAnti Cheat > Winows Kernel Dump Analysis
Debugging Tools
Windows Debuggers
- Cheat Engine: Memory scanner and debugger for games
- x64dbg: Open-source x86/x64 debugger
- WinDbg: Microsoft's kernel/user-mode debugger
- ReClass.NET: Memory structure reconstruction
- HyperDbg: Hypervisor-based debugger
Specialized Debuggers
- CE Mono Helper: Unity/Mono game debugging
- dnSpy: .NET assembly debugger/decompiler
- ILSpy: .NET decompiler
- frida: Dynamic instrumentation toolkit
Platform-Specific
- edb-debugger: Linux debugger
- PINCE: Linux game hacking tool
- H5GG: iOS cheat engine
- Hardware Breakpoint Tools: HWBP implementations
Disassembly & Decompilation
Multi-Platform
- IDA Pro: Industry standard disassembler
- Ghidra: NSA's reverse engineering framework
- Binary Ninja: Modern RE platform
- Cutter: Radare2 GUI
Specialized Tools
- IL2CPP Dumper: Unity IL2CPP analysis
- dnSpy: .NET/Unity decompilation
- jadx: Android DEX decompiler
- Recaf: Java bytecode editor
Memory Analysis
Memory Scanners
- Cheat Engine: Pattern scanning, value searching
- ReClass.NET: Structure reconstruction
- Process Hacker: System analysis
Dump Tools
- KsDumper: Kernel-space process dumping
- PE-bear: PE file analysis
- ImHex: Hex editor for RE
Dynamic Binary Instrumentation (DBI)
Frameworks
- Frida: Cross-platform DBI
- DynamoRIO: Runtime code manipulation
- Pin: Intel's DBI framework
- TinyInst: Lightweight instrumentation
- QBDI: QuarkslaB DBI
Use Cases
- API hooking and tracing
- Code coverage analysis
- Fuzzing harness creation
- Behavioral analysis
- Driver IOCTL and callback tracing
Exception-Driven Lightweight DBI (Trap-and-Emulate)
Concept:
- Replace branch instructions with fault-generating sentinel opcodes
- Catch the resulting exception → emulate the original branch → log → resume
- Full cycle: patch → fault → capture → emulate → record → restore → continue
Sentinel Selection:
- HLT (0xF4) for ret → triggers STATUS_PRIVILEGED_INSTRUCTION
- SALC (0xD6) for jmp/jcc/call → triggers STATUS_ILLEGAL_INSTRUCTION
- Avoids INT3 (0xCC) which anti-debug/integrity checks commonly scan for
- Different sentinels can multiplex branch types
Exception Capture:
- Hooking KiUserExceptionDispatcher can avoid some higher-level VEH/SEH
dispatch overhead, but latency, stability, and detectability must be measured
on the target Windows build
- Assembly stub tail-calls into RtlDispatchException
- Handler dispatches by exception code to custom emulation logic
Branch Emulation Engine:
- Disassemble original (pre-patch) instruction at fault RIP
- jcc: 16-condition lookup table (ZF, SF, CF, OF, PF combinations)
- Direct call: push return address, update RIP
- Indirect branch: resolve effective address (register, memory, SIB, RIP-relative)
- ret: pop return address from stack, handle ret imm16 (extra pop)
- loop/jrcxz: decrement RCX, conditional branch
Instrumentation Strategies:
- Bounded Bulk Patching: scan a window from seed address, patch all branches
→ Simple but detectable by integrity checks
- Branch Chasing: patch only current branch, re-instrument at target on fault
→ Smaller patch footprint, with coverage, race, and detectability tradeoffs
- CFG-Guided Patching: recursive-descent static CFG + chasing for unreached edges
→ Best coverage/safety balance
Integrity Check Evasion:
- PAGE_GUARD + Trap Flag (single-step) instead of direct code patching
- Trigger guard page exception → set TF → single-step through original instruction
- Avoids directly modifying `.text`, but guard state, exception rate, debug
state, and timing can still be detected
Control Flow Tracing (CFT) Applications
- Runtime call graph generation with register context at each edge
- Divergence testing: compare traces across different inputs/environments
→ Quickly locates input validation, anti-debug, anti-tamper trigger points
- Deobfuscation: resolve indirect branches observed under covered executions;
completeness requires additional path exploration or proof
- Hot path analysis, branch coverage measurement
- Exception-per-branch designs can be orders of magnitude slower; benchmark the
exact target and account for timing checks and session timeouts
- Portable to other architectures: ARM (UDF), RISC-V (illegal instruction)
User-Mode Hypervisor-Assisted Tracing
Concept:
- Use Windows Hypervisor Platform (WHP) API to run guest code in user mode
- No kernel driver required — standard user-mode process hosts the hypervisor
- Map host memory pages into guest address space
- Configure page-level traps (read/write/execute permissions per page)
- Guest execution triggers VM exits on configured events
Trap-Driven Execution:
- Page fault traps: set per-page R/W/X permissions via EPT-equivalent API
→ Execute fault = code coverage, Write fault = memory write monitoring
→ Read fault = data access tracking
- CPUID interception: guest executes CPUID → VM exit → host decides response
→ Useful for fingerprinting guest environment queries
- Syscall interception: guest executes syscall → VM exit → host emulates
→ Controlled experiments without real kernel interaction
Workflow:
1. Prepare initial CPU state (registers, segments, control registers)
2. Map target code + data pages with desired permissions
3. Enter guest execution loop
4. On VM exit: inspect reason, handle trap, optionally modify state
5. Resume or terminate guest
Advantages:
- Pure user-mode: no driver signing, no PatchGuard concerns
- Controlled: host controls modeled guest memory and CPU state; external timing,
concurrency, devices, and unmodeled OS behavior can introduce nondeterminism
- Composable: combine with disassemblers/emulators for hybrid analysis
- Debuggable: host process can be debugged normally
Limitations:
- Requires hardware virtualization support (VT-x/AMD-V)
- Windows-specific (WHP API is Windows 10+)
- The lightweight workflow described here is suited to snippets/functions;
booting a full OS is possible only with substantially more platform and device
modeling
- Nested virtualization considerations when host is already a VM
Anti-Analysis Bypass
Techniques
- Anti-debug detection bypass
- VM/Sandbox evasion
- Timing attack mitigation
- PatchGuard circumvention
Tools
- TitanHide: Anti-debug hiding
- HyperHide: Hypervisor-based hiding
- ScyllaHide: Anti-anti-debug plugin
Game-Specific Analysis
Unity Games
- Locate
GameAssembly.dll(IL2CPP) or managed DLLs - Use IL2CPP Dumper for structure recovery
- Apply dnSpy for Mono games
- Hook via Unity-specific frameworks
Unreal Engine Games
- Identify UE version from signatures
- Use SDK generators (Dumper-7)
- Analyze Blueprint bytecode
- Hook UObject/UFunction systems
Native Games
- Standard PE analysis
- Import/export reconstruction
- Pattern scanning for signatures
- Runtime memory analysis
Workflow Best Practices
Initial Analysis
1. Identify protections (packer, obfuscator, anti-cheat)
2. Determine game engine and version
3. Collect symbol information if available
4. Map out key modules, callbacks, and trust boundaries
Deep Analysis
1. Locate target functionality
2. Trace execution flow
3. Document structures, memory artifacts, and relationships
4. Correlate IOCTLs, callbacks, and runtime checks
Obfuscation Taxonomy
Mixed Boolean-Arithmetic (MBA)
- Linear MBA: e.g., x + y = (x ^ y) + 2*(x & y)
- Polynomial MBA: higher-degree expressions over boolean/arithmetic mix
- Tools: SSPAM, MBA-Blast, SiMBA for simplification
- Common in: VMProtect, Themida, custom LLVM passes
Control Flow Flattening (CFF)
- OLLVM-style: many protected basic blocks routed through a dispatcher loop
- Recovery: symbolic execution, pattern matching, deobfuscation passes
- Tools: D-810 (IDA), de-ollvm scripts, SATURN
- Variants: nested dispatchers, encrypted state variables
Opaque Predicates
- Invariant conditions injected to confuse static analysis
- Number-theoretic (x² mod 4 ∈ {0,1}), pointer-aliasing based
- Detection: abstract interpretation, SMT solvers (Z3)
Virtualization-Based Obfuscation
VMProtect / Themida / Code Virtualizer:
- Custom bytecode VM with randomized opcode set per build
- Handler table dispatch loop: fetch → decode → execute
- Devirtualization approaches:
- Trace-based: record handler execution, lift to IR
- Pattern-based: identify handler semantics by structure
- S
---
*Content truncated.*
When not to use it
- →General software debugging unrelated to game security
- →Tasks involving high-level application business logic
Prerequisites
Limitations
- →Dependent on game-specific anti-cheat versions
- →Requires complex manual environment setup
How it compares
Provides specific procedures for known anti-cheat protections rather than standard generic debugging techniques.
Compared to similar skills
reverse-engineering-tools side by side with the closest alternatives in the catalog.
| Skill | Installs | Updated | Safety | Difficulty |
|---|---|---|---|---|
| reverse-engineering-tools (this skill) | 73 | 4mo | No flags | Advanced |
| ghidra | 16 | 7mo | Review | Advanced |
| binary-analysis-patterns | 5 | 2mo | No flags | Advanced |
| address-sanitizer | 1 | 2mo | Review | Intermediate |
Try saying
Example prompts that trigger this skill in your AI assistant.
More by gmh5225
View all by gmh5225 →You might also like
ghidra
mitsuhiko
Reverse engineer binaries using Ghidra's headless analyzer. Decompile executables, extract functions, strings, symbols, and analyze call graphs without GUI.
binary-analysis-patterns
wshobson
Master binary analysis patterns including disassembly, decompilation, control flow analysis, and code pattern recognition. Use when analyzing executables, understanding compiled code, or performing static analysis on binaries.
address-sanitizer
trailofbits
AddressSanitizer detects memory errors during fuzzing. Use when fuzzing C/C++ code to find buffer overflows and use-after-free bugs.
llvm-security
gmh5225
Expertise in LLVM security features including sanitizers, hardening techniques, exploit mitigations, and secure compilation. Use this skill when implementing security-focused compiler features, analyzing vulnerabilities, or hardening applications.
constant-time-analysis
trailofbits
Detects timing side-channel vulnerabilities in cryptographic code. Use when implementing or reviewing crypto code, encountering division on secrets, secret-dependent branches, or constant-time programming questions in C, C++, Go, Rust, Swift, Java, Kotlin, C#, PHP, JavaScript, TypeScript, Python, or Ruby.
static-analysis
gmh5225
Expertise in LLVM-based static analysis including dataflow analysis, pointer analysis, taint tracking, and program verification. Use this skill when implementing security scanners, bug finders, code quality tools, or performing program analysis research.