Kuna, an LLM-written decompiler, closes in on IDA Pro
The author released an experimental decompiler called Kuna, built while working as a visiting faculty researcher at the Air Force Research Lab (AFRL) and a research fellow at Metalware over the summer. Nearly every line of Kuna's code was written by an LLM rather than by hand. On a benchmark of control-flow structuring for C programs, Kuna achieves perfect structuring on 44.4% of functions, versus 45.7% for the industry-standard IDA Pro 9.2, a gap the author calls close enough to count as rivaling the established tool.
The result came from a process the author calls autonomous refinement: the LLM studies functions where Kuna performs worse than IDA Pro on structuring metrics that have only been defined in the last few years, then learns to close the gap through trial and error. The refinement experiment also compared Kuna against Ghidra and against the angr decompiler, where the author spent their entire PhD as a core developer. Through this process the LLM reimplemented more than 20 features from angr, features the author says took years of prior work to design.
Kuna is technically a Rust port of the NSA's Ghidra, reworked to follow angr's pipeline more closely. The author is not abandoning angr: it remains their first choice for developing frontier decompilation algorithms, since it was designed for that purpose, while Kuna is framed as an experiment in what high-level scientific feedback alone can produce. The author lists three limitations. First, Kuna exists only because of decades of prior decompiler research embodied in Ghidra and angr; it depends on that work rather than replacing it. Second, the autonomous refinement itself required human-led scientific insight, including new structuring metrics and an understanding of what aligns with how humans judge reverse-engineered code, so the process is not automatic research. Third, structuring is only one part of decompilation; Kuna still needs work on types, optimizations, recompilability, and variable identification. The author is asking for contributors to help with that remaining work and plans a more technical follow-up post on Kuna's internals.
Key facts
- Kuna, an experimental decompiler almost entirely written by an LLM, achieves perfect control-flow structuring on 44.4% of C functions, versus 45.7% for IDA Pro 9.2.
- Kuna is a Rust port of Ghidra, reworked to follow the angr decompiler's pipeline; the author was a core angr developer throughout their PhD.
- Autonomous refinement let the LLM reimplement more than 20 features from angr by studying where Kuna underperformed IDA Pro, Ghidra, and angr on structuring benchmarks.
- The author, a visiting faculty researcher at AFRL and research fellow at Metalware, says the refinement still required human-devised benchmarks and metrics rather than being automatic research.
- Kuna still lags on types, optimizations, recompilability, and variable identification; the author is seeking contributors for further work.
Why it matters
Kuna is a concrete data point on how far an LLM can be pushed to write real systems software rather than glue code: nearly all of its code came from an LLM, yet it lands within 1.3 percentage points of IDA Pro 9.2, an established commercial decompiler, on control-flow structuring for C programs. The author frames it explicitly as more than slop: a method where the LLM is pointed at benchmarks against IDA Pro, Ghidra, and angr, studies where it falls short, and learns to close the gap through trial and error, reimplementing over 20 features from angr in the process.
Who it affects
Reverse engineers, binary analysis and security researchers who use or evaluate decompilers, and the angr and Ghidra developer communities whose work Kuna builds on directly. It also matters to anyone tracking what agentic, LLM-driven development can achieve on hard systems problems outside typical web or app code.
How to use it
Kuna is released as code the author invites people to check out, alongside a promised more technical follow-up post on its internals and how the automatic improvement process works. No pricing, licensing terms, or product tiers are mentioned; the author is explicitly asking for contributors to help push the remaining work forward.
How solid is it
The headline comparison is a single benchmark, perfect control-flow structuring rate on C programs, where Kuna scores 44.4% against IDA Pro 9.2's 45.7%. The author is careful to note the refinement process is not automatic research: it depended on the author's own prior work defining new structuring metrics and understanding what aligns with human reversing judgment, built up over years. No results are given yet for other stages of decompilation such as types or variable naming.
Risks and caveats
The comparison covers structuring only; the author states plainly that decompilation is more than structuring, and Kuna still needs improvement on types, optimizations, recompilability, and variable identification. The method leans on benchmarks and metrics that took years of separate human research to develop, so it is not a from-scratch automatic pipeline. The author also still relies on angr, not Kuna, for developing frontier decompilation algorithms, underscoring that Kuna is an early-stage experiment rather than a finished replacement.
“this decompiler rivals the industry standard, IDA Pro (9.2), in control flow structuring on C programs: in recent benchmark results, Kuna achieves perfect structuring on 44.4% of functions, compared with IDA's 45.7%”
— Kuna release post