Tool
decomp-permuter
Randomly or systematically permutes one C function, recompiling each variant and scoring it against a target object file to search for matching compiler output. PERM macros specify manual alternatives, and the optional permuter@home mode distributes runs to other workers.
Requirements and limitations
- Each input directory needs a single-function .c file, the target .o, a project-specific compile script and a settings .toml; import.py can generate them for configured Make or Ninja projects. The README lists MIPS (IDO, possibly GCC), PowerPC and ARM32 assembly.
- Requires Python 3 and toml; pynacl and Levenshtein are optional. permuter@home needs access granted by an existing network member, supports a limited compiler list and does not run on native Windows; workers also need Docker.
- A zero score means the scored disassembly matches, not that the C is plausible. The README warns that random passes often find nonsensical changes, so a human must still choose readable, non-overfitted code; the tool does not recover names, types or semantics.
- MIT license. No packaged release; last commit at review: 2026-10-06.
About this entry
- Type
- Tool
- Category
- Game analysis tools
- Relationship
- Foundation tool
- Targets
- Binary · Game
Sources reviewed
The description was reviewed against primary sources. This does not establish runtime testing, security auditing or verified compatibility.