ctf-reverse

ctf-reverse is a skill for Claude Code from ljagiello/ctf-skills. It costs 125 tokens per session (4,012 once invoked), scanned A, a copy of reverse-engineering, MIT.

A reference for reverse-engineering capture-the-flag challenges, where participants analyze software to find how it works or solve a security puzzle. It covers compiled and obfuscated programs, mobile apps, WebAssembly, firmware, custom virtual machines, and similar targets.

In plain words
What is it for?
Use it to study binaries, APKs, firmware, bytecode, malware-like loaders, and virtualized targets during CTF challenges.
Why use it?
It gives a starting point when a challenge hides its behavior or uses protections that make normal inspection difficult. It brings together tools and techniques for examining programs while they run or without running them.

Skill for Claude Code

Written for Claude Code: allowed-tools in frontmatter. Also seen: mentions Claude Code.

Good fit Use it to study binaries, APKs, firmware, bytecode, malware-like loaders, and virtualized targets during CTF challenges.

Compare 6 skills from other repositories ↓
Install with agentmods
npx agentmods add skills/ljagiello/ctf-skills/ctf-reverse
About the project

ctf-skills is a collection of agent instructions for solving capture-the-flag security challenges, including web exploitation, binary vulnerabilities, cryptography, reverse engineering, forensics, and OSINT. It is intended for agents and people working through CTF problems, and its skills can be loaded into supported coding-agent workflows.

ljagiello/ctf-skills · 3,549 stars · on GitHub · ljagiello.github.io

Install

Getting it into your agent

One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.

Any agent
npx skills add ljagiello/ctf-skills --skill ctf-reverse
Clone the repo
git clone --depth 1 https://github.com/ljagiello/ctf-skills

Made for: Claude Code.

Wrote this? Show the measurements

A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.

agentmods badge for ctf-reverse

README.md
[![agentmods](https://agentmods.dev/badge/skills/ljagiello/ctf-skills/ctf-reverse/github.svg)](https://agentmods.dev/skills/ljagiello/ctf-skills/ctf-reverse)
Your own site
<a href="https://agentmods.dev/skills/ljagiello/ctf-skills/ctf-reverse"><img src="https://agentmods.dev/badge/skills/ljagiello/ctf-skills/ctf-reverse/github.svg" alt="Measured on agentmods" height="20"></a>

Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.

agentmods 80×15 button for ctf-reverse

Your own site · 80×15
<a href="https://agentmods.dev/skills/ljagiello/ctf-skills/ctf-reverse"><img src="https://agentmods.dev/badge/skills/ljagiello/ctf-skills/ctf-reverse.svg" alt="Reviewed on agentmods" width="80" height="20"></a>
Per session 125 Skills are progressive disclosure: only the name and description are preloaded; the body loads when the skill is used.
When invoked 4,012 The whole file, excluding the scripts and references it only reads on demand.
Security scan A 0 findings. A grade says what 26 rules found in the file — not that it is safe. Third-party audits
  • Socket warn 27 Oct 2026
  • Snyk pass 27 Oct 2026
How audits are shown
Origin 84% copy Near-identical to another mod in the catalogue.
Token cost

What it costs to keep this loaded

Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.

ModelPer sessionOnce invoked
Fable 5.1 $0.00125 $0.04012
Opus 5.5 $0.00050 $0.01605
Sonnet 5.5 $0.00025 $0.00802
Haiku 4.5 $0.00013 $0.00401

Measured yesterday against content hash f8df1575e6e0, method: parsed. Prices are Anthropic first-party input rates as of 2026-10-07, from the pricing page.

Security

Grade A, and why

ctf-reverse scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured yesterday.

A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.

Nothing flagged

None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.

Origin

This is a copy

84% identical to reverse-engineering — 125 lines differ, which has more behind it and is treated as the original. This page carries a canonical link to it rather than competing with it.

ctf-reverse/SKILL.md · 198 lines

How it starts

The opening of the file, as written. The whole thing — 198 lines — stays where its author put it; the contents beside it link to each section on GitHub.

CTF Reverse Engineering

Quick reference for RE challenges. For detailed techniques, see supporting files.

Prerequisites

Python packages (all platforms):

pip install frida-tools angr qiling uncompyle6 capstone lief z3-solver
# For Python 3.9+ bytecode: build pycdc from source
git clone https://github.com/zrax/pycdc && cd pycdc && cmake . && make

Linux (apt):

apt install gdb radare2 binutils strace ltrace apktool upx

macOS (Homebrew):

brew install gdb radare2 binutils apktool upx ghidra

radare2 plugins:

r2pm -ci r2ghidra   # Native Ghidra decompiler for radare2
# The prebuilt r2ghidra zip is ABI-locked to one radare2 version (WARN: ABI mismatch: Expect 142 vs 152); r2pm -ci r2ghidra builds the plugin from source instead.

Manual install:

  • pwndbg — Linux: GitHub, macOS: brew install pwndbg/tap/pwndbg-gdb

MCP servers (optional, agent-driven RE): IDA Pro MCP (mrexodia/ida-pro-mcp), Ghidra MCP (bethington/ghidra-mcp — has a headless server, no GUI needed), JADX MCP (zinja-coder/jadx-ai-mcp) — see tools-mcp.md for setup and usage.

Additional Resources

  • unicorn-emulation.md - Unicorn CPU emulation: raw binary assembly emulation, hooks, ARM/MIPS/Thumb, mixed-mode, firmware MMIO, Keystone+Capstone trace inversion, shellcode unpack, custom VM, vs Qiling decision (sometimes easier to rev with just unicorn + binary + assembly than full GDB/angr)
  • tools.md - Static analysis tools (GDB, Ghidra, radare2, IDA, Binary Ninja, dogbolt.org, RISC-V with Capstone, Unicorn emulation, Python bytecode, WASM, Android APK, .NET, packed binaries)
  • radare2-r2pipe.md - radare2 scripting deep dive (batch mode without an interactive shell, wx byte patching in batch mode, r2ghidra decompilation with pdg/pdgj plus plugin ABI matching, ESIL single-function emulation with aei/aeim/aesu, r2pipe session lifecycle and cmdj JSON traps, mapping checkers with xrefs and aflj)
  • tools-mcp.md - MCP server integration (agent-driven RE): IDA Pro MCP (GUI plugin + idalib headless), Ghidra MCP (headless server, no GUI), JADX MCP (Android APK/DEX), plus crossing the JNI boundary by dlopen-ing an Android .so on the host instead of decompiling it
  • tools-dynamic.md - Dynamic analysis tools: Frida (hooking, anti-debug bypass, memory scanning, Android/iOS), angr symbolic execution (path exploration, constraints, CFG), lldb (macOS/LLVM debugger), x64dbg (Windows)
  • tools-emulation.md - Emulation frameworks and side-channel tooling: Qiling (cross-platform OS-level emulation), Triton (DSE), Intel Pin instruction-counting + genetic algorithm side channel, opcode-only trace reconstruction, LD_PRELOAD time freeze and memcmp side-channel for byte-by-byte bruteforce
  • tools-advanced.md - Advanced tools (Part 1): VMProtect/Themida analysis, binary diffing (BinDiff, Diaphora), deobfuscation frameworks (D-810, GOOMBA, Miasm), Qiling framework, Triton DSE, Manticore, Rizin/Cutter, RetDec, custom VM bytecode lifting to LLVM IR
  • tools-advanced-2.md - Advanced tools (Part 2): advanced GDB (Python scripting, brute-force, conditional breakpoints, watchpoints, reverse debugging with rr, pwndbg/GEF), advanced Ghidra scripting, patching (Binary Ninja API, LIEF), GDB constraint extraction + ILP solver (BackdoorCTF 2017), GDB position-encoded input zero flag monitoring (EKOPARTY 2017), LD_PRELOAD execute-only binary dump (BackdoorCTF 2017), PEDA current_inst bit-by-bit flag scraper (CONFidence CTF 2019 Teaser)
  • mba-simplification.md - MBA simplification with msynth: oracle-backed Simplifier vs from-scratch Synthesizer search, mandatory random-input equivalence check, Miasm integration
  • anti-analysis.md - Anti-analysis taxonomy: Linux anti-debug (ptrace, /proc, timing, signals, direct syscalls), Windows anti-debug (PEB, NtQueryInformationProcess, heap flags, TLS callbacks, HW/SW breakpoint detection, exception-based, thread hiding), anti-VM/sandbox (CPUID, MAC, timing, artifacts, resources), anti-DBI (Frida detection/bypass), code integrity/self-hashing, anti-disassembly (opaque predicates, junk bytes), MBA identification/simplification, comprehensive bypass strategies
  • anti-analysis-ctf.md - CTF writeup techniques: SIGILL handler for execution mode switching (Hack.lu 2015), SIGFPE signal handler side-channel via strace counting (PlaidCTF 2017), instruction trace inversion with Keystone and Unicorn (MeePwn 2017), call-less function chaining via stack frame manipulation (THC 2018), parent-patched child binary dump via process_vm_writev (Google CTF Quals 2018)
  • patterns.md - Foundational binary patterns: custom VMs, anti-debugging, nanomites, self-modifying code, XOR ciphers, mixed-mode stagers, LLVM obfuscation, S-box/keystream, SECCOMP/BPF, exception handlers, memory dumps, byte-wise transforms, x86-64 gotchas, custom mangle reversing, position-based transforms, hex-encoded string comparison, signal-based binary exploration
  • patterns-runtime.md - Runtime patching and oracle techniques: malware anti-analysis bypass, multi-stage shellcode loaders, timing side-channel attacks, multi-thread anti-debug with decoy + signal handler MBA (ApoorvCTF 2026), INT3 patch + coredump brute-force oracle (Pwn2Win 2016), signal handler chain + LD_PRELOAD oracle (Nuit du Hack 2016), printf format string VM decompilation to Z3 (SECCON 2017), quadtree recursive image format parser (Google CTF Quals 2018)
  • patterns-ctf.md - Competition-specific patterns (Part 1): hidden emulator opcodes, LD_PRELOAD key extraction, SPN static extraction, image XOR smoothness, byte-at-a-time cipher, mathematical convergence bitmap, Windows PE XOR bitmap OCR, two-stage RC4+VM loaders, GBA ROM meet-in-the-middle, Sprague-Grundy game theory, kernel module maze solving, multi-threaded VM channels, backdoored shared library detection via string diffing, custom binfmt kernel module with RC4 flat binaries, hash-resolved imports / no-import ransomware, ELF section header corruption for anti-analysis
  • patterns-ctf-2.md - Competition-specific patterns (Part 2): multi-layer self-decrypting brute-force, embedded ZIP+XOR license, stack string deobfuscation, prefix hash brute-force, CVP/LLL lattice for integer validation, decision tree function obfuscation, GF(2^8) Gaussian elimination, ROP chain obfuscation analysis (ROPfuscation)
  • patterns-ctf-3.md - Competition-specific patterns (Part 3): Z3 single-line Python circuit, sliding window popcount, keyboard LED Morse code via ioctl, C++ destructor-hidden validation, syscall side-effect memory corruption, MFC dialog event handlers, VM sequential key-chain brute-force, Burrows-Wheeler transform inversion, OpenType font ligature exploitation, GLSL shader VM with self-modifying code, instruction counter as cryptographic state, batch crackme automation via objdump, fork+pipe+dead branch anti-analysis, TensorFlow DNN inversion via sigmoid layer inversion, BPF filter analysis via kernel JIT to x64 assembly
  • languages.md - Language-specific: Python bytecode & opcode remapping, Python version-specific bytecode, Pyarmor static unpack, DOS stubs, Unity IL2CPP, HarmonyOS HAP/ABC, Brainfuck/esolangs (+ BF character-by-character static analysis, BF side-channel read count oracle, BF comparison idiom detection), UEFI, transpilation to C, code coverage side-channel, OPAL functional reversing, non-bijective substitution, FRACTRAN program inversion
  • languages-platforms.md - Platform/framework-specific: Roblox place file analysis, Godot game asset extraction, Rust serde_json schema recovery, Android JNI RegisterNatives obfuscation, Android DEX runtime bytecode patching via /proc/self/maps, Android native .so loading bypass via new project, Frida Firebase Cloud Functions bypass, Verilog/hardware RE, prefix-by-prefix hash reversal, Ruby/Perl polyglot constraint satisfaction, Electron ASAR extraction + native binary analysis, Node.js npm runtime introspection
  • languages-compiled.md - Go binary reversing (GoReSym, goroutines, memory layout, channel ops, embed.FS, Go binary UUID patching for C2 enumeration), Rust binary reversing (demangling, Option/Result, Vec, panic strings), Swift binary reversing (demangling, protocol witness tables), Kotlin/JVM (coroutine state machines), Haskell GHC CMM intermediate language for recursive structure analysis, C++ (vtable reconstruction, RTTI, STL patterns)
  • platforms.md - Platform-specific RE: macOS/iOS (Mach-O, code signing, Objective-C runtime, Swift, dyld, jailbreak bypass), embedded/IoT firmware (binwalk, UART/JTAG/SPI extraction, ARM/MIPS, RTOS), kernel drivers (Linux .ko, eBPF, Windows .sys), game engines (Unreal Engine, Unity, anti-cheat, Lua), automotive CAN bus
  • platforms-hardware.md - Hardware and advanced architecture RE: HD44780 LCD controller GPIO reconstruction, RISC-V advanced (custom extensions, privileged modes, debugging), ARM64/AArch64 reversing and exploitation (calling convention, ROP gadgets, qemu-aarch64-static emulation)
  • field-notes.md - Quick reference notes: binary types, anti-debugging bypass, specialized patterns, CTF case notes

Read the full file on GitHub · 198 lines

Changes

What this file has done since we first saw it

Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.

  1. yesterday Changed · +1 lines f8df1575e6e0
  2. 7d ago Changed · +3 lines c1baacbc2926
  3. 8d ago Changed · +3 lines 6827907f47e3
  4. 10d ago Changed · +2 lines 1c1ff4d3ddb7
  5. 12d ago Changed · +20 lines cd448c7f1761
  6. 1mo ago Changed · +1 lines c895e9e53f3f
  7. 1mo ago First seen · 168 lines · 125 tokens per session scan A e73cd18a0040

Subscribe to this mod's changes

ctf-reverse is a skill published in the GitHub repository ljagiello/ctf-skills (3,549 stars, last pushed yesterday), licensed MIT. It adds 125 tokens to every session and 4,012 once invoked, about $0.0005 per session on Opus 5.5. A static security scan graded it A with 0 findings. It is 84% identical to reverse-engineering, differing in 125 lines, and is treated as a copy.

Related

Other skills, from other repositories

debug-extension

Diagnose and fix failures in a built third-party .ppmplugin control: crashes, silent no-ops, PCF error outputs, or incorrect behavior. Uses the reported symptom, shared/error-codes.md, and file-level evidence to trace the manifest, Android/iOS modules, PCF dispatch, and build configuration. Produces a ranked…

microsoft/power-platform-skills · 108 tokens

audit-ppmplugin

Statically audit a built .ppmplugin before wrap testing. Checks archive layout, manifest compatibility, bundle consistency, Android DEX integrity and SDK leakage, iOS framework structure, native source-to-receiver alignment, and the PCF composite-key/sendAsync transport contract. Reports CRITICAL, WARNING, and INFO…

microsoft/power-platform-skills · 112 tokens

generate-ppmplugin-manifest

Validate, reconcile to the chosen target(s), and stage the manifest.json for a .ppmplugin bundle. In the normal flow the committed ./manifest.json already exists (authored by /generate-native-extension), so this stage reads it, runs the plugin's upload-compatibility checks locally as a pre-flight gate (name regex…

microsoft/power-platform-skills · 194 tokens

principle-fix-root-causes

Apply when debugging. Trace each symptom back to the first place the system went wrong and fix it there. A guard is a fix only when the state it handles is legitimate.

michael-denyer/pstack-claude · 43 tokens

principle-attack-the-premise

Apply when two or more fixes that share one premise have failed the same gate. Write the premise down and test it directly before you write another fix that assumes it.

michael-denyer/pstack-claude · 41 tokens

debug-flow

Debug a failed Power Automate flow run. Use when a flow failed, has errors, or the user wants to troubleshoot a run. If the flow has no runs, says so plainly instead of guessing a cause.

microsoft/power-platform-skills · 46 tokens