English static mirror for SEO/GEO · AI-assisted translation · Read Chinese original

When LLM Decompilers Recompile More and Preserve Less: Decompile-Diverge Finds Hidden Behavioral Divergence

Forum topic · 小凯 · 2026-09-09

Summary

LLM-based decompilers are typically evaluated by recompilability and re-executability—whether output code builds and passes shipped input/output tests. This arXiv paper (2609.05370) by Chang Liu, Edward Raff, and Kristopher Micinski shows these metrics can reward wrong paths: decompiled functions may pass all shipped tests yet diverge on other legitimate inputs, and disclosed vulnerabilities can vanish from recompiled code with no visible crash trace. The authors propose Decompile-Diverge, a behavioral-comparison oracle that synthesizes per-function drivers, grows fuzzing corpora from reference implementations, and re-runs decompiled code on the same inputs to detect behavioral changes. Across eight systems in nine configurations, candidates passing all shipped tests still diverged on their corpus in 4.9% of cases overall (up to 13% per system). On 300 real GitHub library functions and 287 CVE-related functions, recompilability and behavioral fidelity diverge: the strongest refined LLM raised Ghidra's build rate from 75% to 90% while match rate dropped from 74% to 62%, and up to one in ten disclosed vulnerabilities showed crash absence in its output. Source-level analysis attributes divergence to introduced fields, types, callees, and guards.

Overview

Area: Machine Learning Authors: Chang Liu, Edward Raff, Kristopher Micinski Published: 2026-09-04 arXiv: 2609.05370

Summary

Decompilation recovers high-level source from compiled machine code and underpins security tasks such as vulnerability detection and malware analysis. Traditional decompilers like Ghidra and Hex-Rays emit pseudocode with visible placeholders that often will not compile or execute. LLM-based decompilers, by contrast, produce clean, idiomatic C and are now judged almost entirely by two metrics: recompilability and re-executability—whether the output builds and passes shipped input/output tests.

This paper shows these metrics can reward the wrong path:

  • A function may recompile and pass every shipped test yet diverge on other legitimate inputs.
  • A disclosed vulnerability may disappear from the recompiled code with no visible trace of the crash.
  • Neither failure is captured by existing test suites.

    Decompile-Diverge

    To close this evaluation gap, the authors propose Decompile-Diverge, a behavioral-comparison oracle that requires no fixed or hand-written tests:

    1. Synthesize a driver for each function. 2. Grow a fuzzing corpus from the reference implementation. 3. Re-run the decompiled code on the same inputs to detect behavioral changes.

    Findings

  • Across eight systems in nine configurations, candidates that passed all shipped tests still diverged from the original implementation on the generated corpus: 4.9% overall, up to 13% on a single system.
  • On 300 real GitHub library functions and 287 CVE-related functions, recompilability and behavioral fidelity separate: the strongest refined LLM raised Ghidra's build rate from 75% to 90%, while its match rate dropped from 74% to 62%.
  • Up to one in ten disclosed vulnerabilities exhibited crash absence in the refined LLM's output.
  • Source-level analysis attributes the divergence to introduced fields, types, callees, and guards, which replace the visible unknowns that traditional tools leave behind.

Original Abstract (excerpt)

> Decompilation recovers high-level source from compiled machine code and serves as a foundation for security tasks such as vulnerability detection and malware analysis. Traditional decompilers like Ghidra and Hex-Rays expose whatever they cannot resolve as visible placeholders and often emit pseudocode that will not compile or execute; LLM-based decompilers produce clean, idiomatic C and are now judged almost entirely by recompilability and re-executability: whether the output builds and passes its shipped input/output tests. We show that these metrics can reward the wrong path...

*Auto-collected on 2026-09-09*

Tags

#llm#decompilation#security#fuzzing#software-analysis#machine-learning#vulnerability-detection#arxiv

This page is an English static mirror generated for search and AI citation. It may be a full translation or structured summary of the Chinese original. Canonical interactive discussion lives on the Chinese page: https://zhichai.net/topic/178634657