2026 · Conference paper

Idioms: A Simple and Effective Framework for Turbo-Charging Local Neural Decompilation with Well-Defined Types

Idioms fine-tunes code language models to turn Hex-Rays output for one target function into predicted original C together with definitions of the user-defined structs, unions and typedefs it uses. Input can include neighboring decompiled functions in breadth-first call-graph order, so evidence about a type scattered across callers and callees reaches the model. The authors also build Realtype, 157,163 functions from compiled open-source C repositories with full type definitions. Their CodeGemma-7b-based model passes ExeBench unit tests for 54.4% of functions versus 46.3% for LLM4Decompile and 37.5% for Nova, and scores at least 95% higher on Realtype.

Scope and limitations

This is local, function-level neural decompilation: each prediction covers one target function and its type definitions, not a compilable whole program. Evaluation uses x86-64 Linux gcc binaries from open-source GitHub projects and ExeBench’s “real” subset; O1–O3 builds disable inlining, and keeping only functions that decompiled at every level removes 21% of the Hex-Rays and 76% of the Ghidra test sets. ExeBench unit tests are an optimistic proxy; Realtype has no tests, so dependency-graph equivalence and exact name and type matches serve as conservative proxies, and a Realtype user-defined type counts as correct only if all of its fields, 17.6 on average when counted recursively, match. The main models use proprietary Hex-Rays output and context windows of 2,048 or 4,096 tokens. Predicted names and types are statistical, not recovered originals. Pretraining leakage from GitHub remains possible, and obfuscated code and malware were not evaluated.

Why it fits this collection

Adds neural decompilation that jointly predicts code and user-defined type definitions with interprocedural context, and introduces a type-rich benchmark, complementing assembly-to-source models and type and symbol recovery research.

Publication and review details

Venue
NDSS 2026
Status
Conference paper
Publication / posting date
2026 (exact date not verified)
Date source
The official NDSS paper and the Internet Society’s Crossref deposit establish publication year 2026. The February 23–27 symposium dates are not used as a publication day.
First arXiv submission
February 6, 2025
arXiv
2502.04536
Reviewed arXiv version
v2
DOI
10.14722/ndss.2026.240795

The NDSS page, final PDF and Crossref agree on the published title, three-author order and DOI; Crossref lists no pages. arXiv:2502.04536 v1 (2025-02-06) is titled “Idioms: Neural Decompilation With Joint Code and Type Prediction” and v2 (2025-06-17) “Idioms: Neural Decompilation With Joint Code and Type Definition Prediction”; the repository README still uses the v1 title. The paper links Zenodo version 10.5281/zenodo.15683630, while the README links its concept DOI 10.5281/zenodo.14797016; both resolve to the same open 2025-06-17 record of about 11.8 GB, including a 10.1 GB models archive, and the Zenodo metadata names no license. The reviewed 2025-12-03 repository snapshot has no license file, and GitHub detects none, so no open-source license is asserted. Its env.yml pins Python 3.11, CUDA 12.1, transformers 4.46.3 and peft 0.17.0; training also needs unsloth on GPUs with compute capability 7.0 or greater, dataset building runs GHCC builds in Docker that can take weeks, and the main decompilation step needs IDA Pro’s Hex-Rays. ExeBench tests run in a provided Docker image. No code, models or datasets were run or downloaded.

Sources reviewed

Source review only; experiments were not rerun for this collection. Cite the original authors using the linked paper or BibTeX.

Primary sources

  1. https://www.ndss-symposium.org/ndss-paper/idioms-a-simple-and-effective-framework-for-turbo-charging-local-neural-decompilation-with-well-defined-types/
  2. https://www.ndss-symposium.org/wp-content/uploads/2026-f795-paper.pdf
  3. https://api.crossref.org/works/10.14722/ndss.2026.240795
  4. https://arxiv.org/abs/2502.04536v1
  5. https://arxiv.org/abs/2502.04536v2
  6. README.md GitHub · squaresLab/idioms · Revision d087912
  7. env.yml GitHub · squaresLab/idioms · Revision d087912
  8. https://zenodo.org/records/15683630
  9. https://zenodo.org/api/records/15683630