Back to Skills

symbolic-execution-tools

Symbolic execution and constraint solving playbook. Use when solving CTF reversing challenges, recovering keys, bypassing checks, or automating binary analysis with angr, Z3, or Unicorn Engine.

1,297stars177forksUpdated 7/7/2026

Security Assessment

Medium Risk(50/100)

Detected risks:

Remote Code Execution([SKILL.md] eval(, [ANGR_COOKBOOK.md] eval()
Security Score50/100

About symbolic-execution-tools

A playbook for symbolic execution and constraint solving aimed at CTF reversing challenges and automated binary analysis. It centers on three tools: angr for binaries with control flow, Z3 for pure constraint and equation systems, and Unicorn Engine for fast emulation of specific code regions, with Qiling noted for full-system kernel or firmware emulation. Typical goals include recovering keys, bypassing checks, and solving reversing challenges without brute force.

For angr, it lays out the core pipeline (Project, entry_state or blank_state, SimulationManager, explore with find/avoid, then solver.eval) and shows essential setup: creating entry, blank, and full-init states; defining symbolic bitvectors with claripy; constraining input to printable ASCII; wiring symbolic stdin; hooking functions by address; replacing library calls with SimProcedures such as strcmp, printf, scanf, and puts; and reading and writing memory and registers. The Z3 section covers the solver API and common CTF patterns such as serial-key validation, XOR key recovery, and systems of modular equations, plus Optimize for minimizing a satisfying value. The Unicorn section covers mapping memory, setting registers, starting emulation, and hooking memory accesses and instructions for use cases like unpacking shellcode, decrypting strings, and brute-forcing short keys.

Use it when a challenge or target is better solved by exploring paths and solving constraints than by manual analysis, for instance when a base model would otherwise produce broken angr scripts from incorrect state initialization or missing libc hooks. A guidance table maps scenarios to the best tool, and an ANGR_COOKBOOK.md reference offers 15+ ready-to-use script patterns, hook templates, symbolic input patterns, and path-explosion optimization tricks. Related routing points to anti-debugging, deobfuscation, and VM-reversing skills.

FAQ

Which tools does this skill cover?

angr, Z3, and Unicorn Engine, with Qiling mentioned for full-system kernel or firmware emulation.

How do I choose between angr, Z3, and Unicorn?

Use Z3 for pure math and equation systems, angr for binaries with control flow that need path exploration, and Unicorn to quickly emulate a specific code region; a combo of angr plus Unicorn suits binaries with custom VMs.

What is the basic angr workflow?

Create a state (entry, blank, or full-init), build a SimulationManager, call explore with find and avoid targets, then use solver.eval on the symbolic input in the found state.

Can it handle library functions that break analysis?

Yes. It hooks functions by address and replaces library calls with SimProcedures, including built-ins for printf, scanf, and puts, to avoid path issues.

Is there additional reference material?

Yes, ANGR_COOKBOOK.md provides 15+ ready-to-use angr patterns, hook templates for functions like scanf and strcmp, symbolic file/stdin/argv patterns, and path-explosion management tricks.

All Files

2 files
SKILL.md11.8 KB
View
ANGR_COOKBOOK.md10.9 KB
View

Install symbolic-execution-tools

Download and extract the skill files to your .claude/skills/ directory.

Quick Setup:

  1. Copy the skill folder to .claude/skills/
  2. Claude will automatically detect and use the skill