symbolic-execution-tools

Automate symbolic execution and constraint solving on compiled binaries with angr, Z3, and Unicorn.

1.6k|204|Updated Apr 7, 2026
One-click install
npx skills add https://github.com/yaklang/hack-skills --skill symbolic-execution-tools
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: symbolic-execution-tools
Source: https://github.com/yaklang/hack-skills/tree/main/skills/symbolic-execution-tools
Command: npx skills add https://github.com/yaklang/hack-skills --skill symbolic-execution-tools

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve?

This Skill provides an expert playbook for automating symbolic execution, constraint solving, and emulation to recover secrets, bypass checks, and solve reversing challenges in compiled binaries and custom VMs.

Core Features & Use Cases

  • Angr workflows: Patterns for entry/blank/full_init states, symbolic stdin/argv/file, memory/register handling, and SimProcedure hooks to bypass complex library behavior.
  • Constraint solving with Z3/claripy: Techniques for formulating and solving bitvector and equation systems, optimization, and CTF-style key recovery.
  • Unicorn emulation: Fast concrete emulation recipes for unpacking, decrypting routines, and tracing instruction/memory behavior.
  • Practical cookbook: 15+ ready-to-use angr recipes for common CTF scenarios including printable constraints, hooking scanf/strcmp, veritesting, Unicorn hybrid speedups, and multi-stage binaries.
  • Use cases: CTF flag recovery, automated vulnerability proof-of-concept generation, firmware/function emulation, and deobfuscation aided by symbolic reasoning.

Quick Start

Use symbolic-execution-tools to run angr with the provided cookbook recipes to find an input that makes the target binary print its success string.

Frequently Asked Questions about symbolic-execution-tools

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I use angr to find the correct input for a CTF reversing challenge?

Use angr to automate symbolic execution and find inputs by setting exploration goals to find success strings and avoid failure paths. This Skill provides ready-to-use cookbook recipes for common CTF scenarios to automate this flag recovery process.

What is the best way to bypass complex library checks when running symbolic execution on a binary?

The best way to bypass complex library checks during symbolic execution is by using SimProcedure hooks. This Skill provides patterns to hook functions like scanf and strcmp, allowing you to override and simulate their behavior efficiently.

Can I use Z3 and claripy to recover keys from custom VMs or compiled binaries?

Yes, you can use Z3 and claripy to recover keys by formulating and solving bitvector equation systems. This Skill offers techniques for constraint solving and optimization specifically targeted at CTF-style key recovery and custom VM unpacking.

Does Unicorn emulation work with angr for speeding up concrete execution traces?

Yes, Unicorn emulation works with angr to provide hybrid speedups for concrete execution. You can use Unicorn for fast emulation of unpacking and decrypting routines, tracing instruction behavior while angr handles the symbolic reasoning.

How do I handle symbolic stdin, argv, and file inputs when scripting angr workflows?

Handle symbolic stdin, argv, and files by initializing entry, blank, or full_init states in angr. This Skill details memory and register handling techniques to properly inject symbolic inputs into your scripted angr workflows.

Why does angr struggle with multi-stage binaries and how can I solve it?

Angr may struggle with multi-stage binaries due to state explosion and complex control flow. You can solve this by applying veritesting and Unicorn hybrid speedups, utilizing the specific multi-stage recipes provided in this Skill's cookbook.