opencrow-reversing-toolbox
Use the Anaconda `ctf` environment and installed reverse-engineering tooling for binary analysis, symbolic execution, disassembly, emulation, and binary patching. Use when Codex needs `angr`, `claripy
SKILL.mdskills/opencrow-reversing-toolbox/SKILL.md
GitHubOpenCROW Reversing Toolbox
Runtime preflight
Probe required commands with command -v and Python modules with importlib.util.find_spec before use. Prefer a PATH-resolved OpenCROW MCP helper or the ctf/sage environment when available, then the managed helper or system Python. If a capability is missing, stop that path safely and report the exact missing command or module.
Prefer the opencrow-reversing-mcp server for typed disassembly, decompilation, VA-based data reads, emulation, symbolic execution, tracing, gadget search, and Python-driven analysis. Fall back to the direct scripts only when you need to debug the underlying ctf-environment execution path.
MCP First
- Use
toolbox_info,toolbox_verify, andtoolbox_capabilitiesfirst. - Use the typed reversing operations:
reversing_pythonreversing_disassemblereversing_decompilereversing_read_datareversing_emulate_blobreversing_symbolic_executereversing_tracereversing_binwalkreversing_gadget_search
- Treat the existing helper scripts as the implementation fallback, not the primary interface.
- For long workflows, pass
execution.transcript_pathso each MCP step appends a JSONL transcript artifact instead of relying on chat history.
Use this skill for understanding binaries rather than exploiting them: disassembly, decompilation support, tracing, symbolic execution, emulation, dynamic instrumentation, gadget analysis, and binary rewriting in the ctf environment.
Quick Start
Run inline Python in ctf:
python3 scripts/run_reversing_python.py --code 'import angr; print(angr.__version__)'
Run an analysis helper:
python3 scripts/run_reversing_python.py --file /absolute/path/to/analyze.py
Verify the mapped stack:
python3 scripts/verify_toolkit.py
Workflow
- Start with
toolbox_info,toolbox_verify, andtoolbox_capabilities. - Triage with
reversing_disassembleusing an explicitaddressorstart_addresswhen you already know the function entry. - Move to
reversing_decompileorreversing_read_databefore dropping into ad hoc scripts. - Use
reversing_emulate_blobfor deterministic execution of small code regions andreversing_symbolic_executewhen you need to solve for an input that reaches a target address. - Use
reversing_pythononly when the typed tools do not cover the analysis shape. - Read references/tooling.md when selecting among the installed reverse-engineering tools.
Tool Selection
- Use
angrfor CFG recovery, path exploration, symbolic execution, and automated state search. - Use
claripywhen you need symbolic expressions without a fullangrworkflow. - Use
capstone,keystone, andunicornfor disassembly, assembly, and emulation inside custom scripts. - Use
ropperto search gadgets during binary inspection. - Use
ROPGadgetwhen you want a second gadget finder or architecture-specific output formats. - Use
r2pipeandradare2for scriptable or interactive binary analysis. - Use
lieffor parsing and patching executable formats. - Use
qilingwhen you need a higher-level emulation environment around a foreign binary or firmware target. - Use
frida-toolswhen you need runtime API tracing or live instrumentation instead of static reversing. - Use
ghidra-headlessfor repeatable import, analysis, and decompilation tasks without the GUI. - Use
objdump,strace,ltrace, andbinwalkfor fast static, runtime, or firmware-oriented inspection.
Resources
scripts/run_reversing_python.py: execute inline code or a.pyfile inside thectfenvironment.scripts/verify_toolkit.py: confirm that the mapped Python and native reversing tools are installed.references/tooling.md: quick selection notes for reverse-engineering workflows.