DecBench Scoreboard

DecBench Scoreboard

leaderboard

Decompilers have advanced significantly over
the last 30 years, quickly approaching the
point where they can recover the exact source code from various binaries. This
benchmark ranks decompilers by their ability to recover exact source code,
measured across three metrics. All metrics are shown as the percentage of
functions on which a decompiler achieves a perfect score. Decompilers are
initially ranked by Union — their ability to score perfectly on
at least one of those metrics. Click a column to sort.

AI can also compete on these metrics, as seen on the
sample-set leaderboard
where Codex and Claude Code take on the traditional decompilers. You can find
more information about these metrics, datasets, and methodology on the
about page. You can also view some sample results
on the view page.

data

Benchmark-run data beyond the leaderboard’s perfect rates:
distance from perfection per metric,
how often decompiled output compiles again,
pipeline health (what our own tooling loses), and the
cost of producing each decompiler’s output.

distance

When a decompiler can’t yet achieve a perfect score on a function, it can be
helpful to understand the distance it is from perfection. For each
metric, we measure distance as the number of edits required to convert that
form of data into its source-code equivalent. For GED, that
is the number of edits to control-flow structures. For
types, that is the number of type-flips needed to reach
ground truth. For recompilation, that is the number of
assembly lines that must change to convert the recompiled assembly into the
ground-truth assembly.

Each cell shows the mean, the median, and how many functions
are already at distance 0 (perfect), averaged over the functions each
decompiler was scored on.

Over the selected dataset
(mean · median · #at-0 / #measured).

compiles

The share of each decompiler’s byte_match-measured functions whose output
actually recompiled after the uniform compilability-fixup pass — a
fairness control, not a metric (type recovery is scored separately). The
denominator is per-decompiler: functions where byte_match was measurable, so
ARM / PE targets with no host recompiler never count against it. This rate moves
with the selected dataset, like the columns on the leaderboard.

pipeline health (our own tooling)

GED depends on Joern parsing both the source and the decompiler output.
When Joern fails on the source, that’s our tooling — those
functions are excluded from GED for every decompiler (never counted against
them). When Joern fails on a single decompiler’s output,
that’s reported here (per decompiler), not folded into the headline score.

cost

What each decompiler’s output costs to produce. The two halves of the table
are not directly comparable: traditional decompilers are timed from
whole-binary batch decompilation (a binary’s wall time divided by its function
count), while the LLM coding agents are timed per function — one agentic call
each, including all their tool use (objdump runs, reasoning, retries). The
dollar figures are estimates: recorded token usage from the sample-set run,
priced at public list prices at render time — not billed amounts. - means
not applicable or no data (traditional decompilers have no per-token cost;
an unpriced model shows n/a rather than $0.00).

view

Original source next to a decompiler’s output. Difficulty is
derived from structural (GED) agreement across decompilers:
easy — most decompilers recover the control flow
perfectly; hard — the functions farthest from perfect
for everyone (the old hall of shame); medium — in
between. Pick a difficulty, a decompiler, and a metric to highlight.






On Key

Related Posts

DecBench Scoreboard

DecBench Scoreboard

leaderboard Decompilers have advanced significantly over the last 30 years, quickly approaching the point where they can recover the exact source code from various binaries.