arXiv paper· software security / program analysis· benchmark / empirical study

When LLM Decompilers Recompile More and Preserve Less

Chang Liu, Edward Raff, Kristopher Micinski

cs.CR · cs.AI

Quick verdict

Shows passing shipped tests can mask behavioral divergence in LLM decompilers; rigorous fuzzing-based oracle, evidence broad but selection-biased.

Summary

The paper argues that LLM-based decompilers are judged almost solely by recompilability and passing shipped input/output tests, metrics that can reward outputs which build cleanly but behave differently from the original on unseen inputs. The authors present Decompile-Diverge, a differential-testing oracle: for each function it synthesizes a driver, uses AFL++ to grow an input corpus from the reference, then re-executes decompiled candidates on identical inputs, comparing crashes, hangs, and a relocation-masked digest of the bounded observable post-state. They evaluate eight systems in nine configurations — refinement (LLM4Decompile, SK2Decompile, Idioms, DeGPT-Qwen) and end-to-end (AutoDecompiler, Nova, SLaDe, GLM-5.2) — over four established corpora plus 300 GitHub library functions and 287 CVE-grounded functions. Among 12,133 candidates passing every shipped test, 4.9% diverge on the generated corpus; on GitHub, LLM4Decompile lifts Ghidra's build rate from 75% to 90% while Matched falls from 74% to 62% (McNemar p=.002); on CVEs, 25 of LLM4Decompile's 183 builds (8.7%, 95% CI 6.0-12.5%) silently remove the reference crash. Source analysis ties divergence to introduced fields, types, and callees. Limitations: oracle-compatible function selection excludes pointer- and struct-heavy code, modest fuzz budgets bound coverage (74-99% line), and the invention-divergence link is correlational.

Review complete

Assessment at a glance

software security / program analysis

4

risk flags identified

● high 0

● medium 2

● low 2

Reproducibility readinessmedium
Code & data availablenot stated
Review confidencehigh
AI text signal0/20 passages flagged
Deep research viable

5 strengths · 5 weaknesses · 5 author questions

AI text signal = Binoculars zero-shot detector score over 20 sampled passages (Fast-DetectGPT co-reported) — absence does not prove human authorship, and a flag does not imply misconduct.

Levels reflect verification complexity — not a quality score. Evolve never rates your paper.

Key claims under review

  • Recompilability and passing shipped tests do not establish behavioral agreement: 4.9% of 12,133 shipped-test passers diverge on the fuzzing-generated corpus, with pass-then-diverge rates up to 13% for a single configuration.
  • On real code, build-rate gains trade off against behavioral agreement: LLM4Decompile lifts Ghidra's GitHub build rate from 75% to 90% while Matched falls from 74% to 62% (exact McNemar p=.002).
  • Refinement LLMs can silently erase disclosed vulnerabilities: 25 of LLM4Decompile's 183 CVE-track builds (8.7%, 95% CI [6.0%, 12.5%]) exhibit Crash Absence.
  • Divergence and Crash Absence are associated with introduced fields, types, callees, and guards replacing visible front-end placeholders (OR 4.6, Fisher p<10^-6 on GitHub), shifting failures from inherited front-end errors to newly introduced ones.

Strengths

  • Novel test-free behavioral oracle

    Section 4.1 combines synthesized per-function drivers, AFL++ corpus growth from the reference, ASan crash/hang detection, and an -O0 comparison of a relocation-masked digest of the bounded observable post-state (return value, written bytes, globals, .data/.bss), with a four-rerun flakiness guard; Matched is honestly framed as an upper bound and Divergence as a lower bound.

  • Compelling motivating evidence

    Figure 1's decode6 case: all three systems pass 10/10 shipped ExeBench tests, yet match only 100/100 (Hex-Rays), 70/100 (SK2Decompile), and 66/100 (LLM4Decompile) stress inputs; Section 3 reports shipped suites miss 3-45% of behavioral divergence.

  • Unusually broad evaluation surface

  • Security-relevant new failure mode

  • Statistical care in headline comparisons

Weaknesses

  • Selection limits external validity

  • Backend substitution muddies system comparability

  • Mechanistic claim is correlational

  • Near-floor systems yield little signal

  • Modest fuzzing budgets

Full Review Report

$1.99 · one-time

Unlock the complete preliminary analysis Evolve produced for this paper.

Report preview

Scope & Claims

This benchmark-and-measurement paper from Syracuse University and CrowdStrike argues that LLM-based decompilers are judged by the wrong proxies: recompilability (does it build) and re-executability on shipped input/output tests. Three headline claims are supported. First, passing shipped tests does not establish behavioral agreement: across the four established corpora, 4.9% of the 12,133 candidates passing every shipped test still diverge on the fuzzing-generated corpus (77% of them via silent output changes with no crash), and the per-configuration pass-then-diverge rate (Div|P, Table 2) reaches 13% for Nova on HumanEval. Second, on 291 real GitHub library functions, build rate and behavioral agreement rank systems differently: LLM4Decompile lifts Ghidra's build rate from 75% to 90% while Matched falls from 74% to 62%, with exact McNemar p=.002 on the paired counts. Third, on 287 CVE-grounded functions, refinement can silently erase disclosed vulnerabilities: 25 of LLM4Decompile's 183 builds lose the reference crash (8.7% of the track, 95% CI [6.0%, 12.5%]). A fourth, mechanistic claim links divergence to introduced fields, types, callees, and constants replacing visible front-end placeholders (Table 4).

The remaining sections cover Methodology Assessment, Statistical Evidence, Results & Reproducibility, Limitations & Risks, and Verdict & Recommendations.

  • All 5 strengths & 5 weaknesses, analyzed in detail
  • 4 risk flags with severity, section & reviewer questions
  • Methods & statistical evidence assessment
  • 5 questions a peer reviewer would ask
  • Full six-dimension evaluation report & recommendations

One-time purchase · this paper only

One-time purchase, this paper only. AI-generated preliminary analysis — not peer review.

Frequently asked questions

What is Decompile-Diverge?

A behavioral evaluation oracle for decompilers: it synthesizes a test driver for each function, grows a fuzzing input corpus from the reference implementation with AFL++, and re-executes decompiled candidates on the same inputs. It labels each candidate Matched, Diverged, or Crash Absence by comparing crashes, hangs, and a relocation-masked digest of the bounded observable post-state - no hand-written tests needed.

Why is recompilability a misleading metric for LLM decompilers?

Because a function can compile and pass every shipped input/output test yet behave differently on other legitimate inputs. In the paper, 4.9% of 12,133 candidates that passed all shipped tests still diverged on the fuzzing-generated corpus, and the motivating example shows systems passing 10/10 shipped tests while matching only 66-70 of 100 stress inputs.

What is Crash Absence?

A new CVE-track failure label in the paper: a decompiled version of a vulnerable function that no longer crashes on the vulnerability-triggering input, silently hiding the disclosed vulnerability. 25 of LLM4Decompile's 183 CVE-track builds (8.7%) lost the reference crash, while raw Ghidra showed no such cases.

Which decompilation systems were evaluated?

Eight systems in nine configurations: refinement systems LLM4Decompile, SK2Decompile, Idioms, and DeGPT (with a Qwen3.6 backend replacing gpt-3.5-turbo); end-to-end systems AutoDecompiler, Nova, SLaDe, and GLM-5.2; plus raw Ghidra and Hex-Rays front ends as baselines, over four established corpora, 300 GitHub library functions, and 287 CVE functions.

About this review

This is an AI-generated preliminary review by Evolve.Pub, produced from the openly available text of the paper. It is not peer review and does not represent the authors' views. The canonical record of the paper is at the publisher link above.

  • The extraction ends at the reference list's final entry (Zou et al. 2024, D-Helix) at the true end of the provided text; any references or appendices beyond that point were unavailable.
  • Figure 1 and Figure 2 content reached the extraction only as inline prose; visual layout and arrow annotations were not available, though the figures' full textual content was present.

Go deeper on this paper

Reproduce ResultsNot feasible for this paper — the core results cannot be re-derived by sandboxed code simulation.

Wrote a paper? Stress-test it before reviewers do.

Upload your manuscript for the same structured scrutiny — reasoning, statistics, evidence, figures, and reproducibility.

Scan your paper
When LLM Decompilers Recompile More and Preserve Less | Evolve.Pub