Table of Contents
Fetching ...

Decompile-Bench: Million-Scale Binary-Source Function Pairs for Real-World Binary Decompilation

Hanzhuo Tan, Xiaolong Tian, Hanrui Qi, Jiaming Liu, Zuchen Gao, Siyi Wang, Qi Luo, Jing Li, Yuqun Zhang

TL;DR

Decompile-Bench delivers the first large-scale, real-world binary–source benchmark, compiling two million function-level pairs from 100 million raw pairs across permissively licensed GitHub projects. The authors introduce the Compile-Trace-Filter framework to automate builds, produce precise binary–source mappings via Source-Trace, and filter data for high quality, yielding a compact dataset suitable for LLM training. They pair this with Decompile-Bench-Eval, a leakage-resistant evaluation suite built from HumanEval/MBPP translations and post-2025 GitHub binaries, and show that fine-tuning decompilers on Decompile-Bench substantially improves re-executability and readability compared with baselines. The work demonstrates strong cross-metric gains across re-executability, readability, and similarity, and enables new tasks such as binary–source search, underscoring the dataset's practical impact for advancing real-world binary decompilation. The dataset and tooling are publicly released to promote transparency and broader adoption in the research community.

Abstract

Recent advances in LLM-based decompilers have been shown effective to convert low-level binaries into human-readable source code. However, there still lacks a comprehensive benchmark that provides large-scale binary-source function pairs, which is critical for advancing the LLM decompilation technology. Creating accurate binary-source mappings incurs severe issues caused by complex compilation settings and widespread function inlining that obscure the correspondence between binaries and their original source code. Previous efforts have either relied on used contest-style benchmarks, synthetic binary-source mappings that diverge significantly from the mappings in real world, or partially matched binaries with only code lines or variable names, compromising the effectiveness of analyzing the binary functionality. To alleviate these issues, we introduce Decompile-Bench, the first open-source dataset comprising two million binary-source function pairs condensed from 100 million collected function pairs, i.e., 450GB of binaries compiled from permissively licensed GitHub projects. For the evaluation purposes, we also developed a benchmark Decompile-Bench-Eval including manually crafted binaries from the well-established HumanEval and MBPP, alongside the compiled GitHub repositories released after 2025 to mitigate data leakage issues. We further explore commonly-used evaluation metrics to provide a thorough assessment of the studied LLM decompilers and find that fine-tuning with Decompile-Bench causes a 20% improvement over previous benchmarks in terms of the re-executability rate. Our code and data has been released in HuggingFace and Github. https://github.com/albertan017/LLM4Decompile

Decompile-Bench: Million-Scale Binary-Source Function Pairs for Real-World Binary Decompilation

TL;DR

Decompile-Bench delivers the first large-scale, real-world binary–source benchmark, compiling two million function-level pairs from 100 million raw pairs across permissively licensed GitHub projects. The authors introduce the Compile-Trace-Filter framework to automate builds, produce precise binary–source mappings via Source-Trace, and filter data for high quality, yielding a compact dataset suitable for LLM training. They pair this with Decompile-Bench-Eval, a leakage-resistant evaluation suite built from HumanEval/MBPP translations and post-2025 GitHub binaries, and show that fine-tuning decompilers on Decompile-Bench substantially improves re-executability and readability compared with baselines. The work demonstrates strong cross-metric gains across re-executability, readability, and similarity, and enables new tasks such as binary–source search, underscoring the dataset's practical impact for advancing real-world binary decompilation. The dataset and tooling are publicly released to promote transparency and broader adoption in the research community.

Abstract

Recent advances in LLM-based decompilers have been shown effective to convert low-level binaries into human-readable source code. However, there still lacks a comprehensive benchmark that provides large-scale binary-source function pairs, which is critical for advancing the LLM decompilation technology. Creating accurate binary-source mappings incurs severe issues caused by complex compilation settings and widespread function inlining that obscure the correspondence between binaries and their original source code. Previous efforts have either relied on used contest-style benchmarks, synthetic binary-source mappings that diverge significantly from the mappings in real world, or partially matched binaries with only code lines or variable names, compromising the effectiveness of analyzing the binary functionality. To alleviate these issues, we introduce Decompile-Bench, the first open-source dataset comprising two million binary-source function pairs condensed from 100 million collected function pairs, i.e., 450GB of binaries compiled from permissively licensed GitHub projects. For the evaluation purposes, we also developed a benchmark Decompile-Bench-Eval including manually crafted binaries from the well-established HumanEval and MBPP, alongside the compiled GitHub repositories released after 2025 to mitigate data leakage issues. We further explore commonly-used evaluation metrics to provide a thorough assessment of the studied LLM decompilers and find that fine-tuning with Decompile-Bench causes a 20% improvement over previous benchmarks in terms of the re-executability rate. Our code and data has been released in HuggingFace and Github. https://github.com/albertan017/LLM4Decompile
Paper Structure (34 sections, 1 equation, 7 figures, 10 tables, 1 algorithm)

This paper contains 34 sections, 1 equation, 7 figures, 10 tables, 1 algorithm.

Figures (7)

  • Figure 1: Different types of binary–source benchmarks.
  • Figure 2: The CTF framework which (a) automates compilation, (b) precisely traces binary–source mappings, and (c) rigorously filters out low-quality data.
  • Figure 3: (a) Filter statistics. (b) Length-frequency histogram. “Clean src” denotes filtered code, while “raw asm” denotes unfiltered output. (c) Sample functions excluded by the filters.
  • Figure 4: A case study on a bitmap function with (a) source code and the decompilation results from (b) IDA Pro, (c) GPT4.1-mini, (d) LLM4Decompile-End, and (e) LLM4Decompile-DCBench
  • Figure 5: Code complexity for the executable subset of ExeBench and GitHub data. Note that the Halstead Difficulty is normalized by factor of 10 for better visulization.
  • ...and 2 more figures