Most gadget tools infer a gadget’s effect from a hand-written instruction model. ropnroll runs every gadget on an emulated CPU with several input vectors and fits a closed-form relation — constant, copy, affine, bitwise — to the outputs. If the relation holds on every trial, it’s exact, and it’s correct for every architecture Unicorn supports, quirks included.
On top of that sits a best-first (A*) chain synthesizer that builds minimum-gadget call chains against the MS x64, cdecl and stdcall conventions, then verifies them under emulation before you ever touch a debugger.
- Semantic search
- Query by effect — rcx=rax+8 — not by instruction text.
- Mitigation report
- DEP, ASLR, CFG, XFG, CET and SafeSEH for any PE.
- Exports
- json, raw, C or pwntools, with placeholders for values only a live process knows.
Python, Unicorn, Capstone, LIEF, x86 / x64 / ARM64