Augmenting Decompiler Output with Learned Variable Names and Types
Not on the map. Why?
Abstract (arXiv)
A common tool used by security professionals for reverse-engineering binaries found in the wild is the decompiler. A decompiler attempts to reverse compilation, transforming a binary to a higher-level language such as C. High-level languages ease reasoning about programs by providing useful abstractions such as loops, typed variables, and comments, but these abstractions are lost during compilation. Decompilers are able to deterministically reconstruct structural properties of code, but comments, variable names, and custom variable types are technically impossible to recover. In this paper we present DIRTY (DecompIled variable ReTYper), a novel technique for improving the quality of decompiler output that automatically generates meaningful variable names and types. Empirical evaluation on a novel dataset of C code mined from GitHub shows that DIRTY outperforms prior work approaches by a sizable margin, recovering the original names written by developers 66.4% of the time and the original types 75.8% of the time.
Key facts. Cited by 23 papers in the map (data through 14 Oct 2026). First posted on arXiv 13 Aug 2021.
Builds on
No reference list yet.
Built on by
Citing papers per year: 2022: 1; 2023: 4; 2024: 6; 2025: 3; 2026: 9.
23 papers.
Sort:
By area:
- 2024LLM4Vuln: A Unified Evaluation Framework for Decoupling and Enhancing LLMs' Vulnerability Reasoningcited by 59
- 2023Binary Code Summarization: Benchmarking ChatGPT/GPT-4 and Other Large Language Modelscited by 13
- 2023Nova: Generative Language Models for Assembly Code with Hierarchical Attention and Contrastive Learningcited by 12
- 2024Assemblage: Automatic Binary Dataset Construction for Machine Learningcited by 12
- 2024Source Code Foundation Models are Transferable Binary Analysis Knowledge Basescited by 8
- 2024CodeArt: Better Code Models by Attention Regularization When Symbols Are Lackingcited by 7
- 2022Pre-Training Representations of Binary Code Using Contrastive Learningcited by 6
- 2023Exploring the Limits of ChatGPT in Software Security Applicationscited by 6
- 2024BLens: Contrastive Captioning of Binary Functions using Ensemble Embeddingcited by 3
- 2025Fast, Fine-Grained Equivalence Checking for Neural Decompilerscited by 2
- 2023Revisiting Deep Learning for Variable Type Recoverycited by 1
- 2025A Deep Dive into Function Inlining and its Security Implications for ML-based Binary Analysiscited by 1
11 more
- 2026Fool Me If You Can: On the Robustness of Binary Code Similarity Detection Models against Semantics-preserving Transformationscited by 1
- 2026REBENCH: A Procedural, Fair-by-Construction Benchmark for LLMs on Stripped-Binary Types and Names (Extended Version)cited by 1
- 2026Decaf: Improving Neural Decompilation with Automatic Feedback and Searchcited by 1
- 2026REFORGE: A Method for Benchmarking LLMs' Reverse Engineering Capabilities in Decompiled Binary Function Namingcited by 1
- 2024JaxDecompiler: Redefining Gradient-Informed Software Designcited by 0
- 2025Asm2SrcEval: Evaluating Large Language Models for Assembly-to-Source Code Translationcited by 0
- 2026PCodeTrans: Translate Decompiled Pseudocode to Compilable and Executable Equivalentcited by 0
- 2026SoK: AI-Augmented Binary Reversingcited by 0
- 2026Beyond Text Matching: Towards Reference-Free Evaluation for Human-Oriented Binary Reverse Engineeringcited by 0
- 2026Reveree: Diagnosing LLM Reverse-Engineering Agentscited by 0
- 2026When LLM Decompilers Recompile More and Preserve Lesscited by 0
- 2026When LLM Decompilers Recompile More and Preserve Less4 Sep 2026
- 2026Reveree: Diagnosing LLM Reverse-Engineering Agents1 Sep 2026
- 2026Beyond Text Matching: Towards Reference-Free Evaluation for Human-Oriented Binary Reverse Engineering7 Aug 2026
- 2026REFORGE: A Method for Benchmarking LLMs' Reverse Engineering Capabilities in Decompiled Binary Function Naming7 Jul 2026
- 2026SoK: AI-Augmented Binary Reversing16 Jun 2026
- 2026Decaf: Improving Neural Decompilation with Automatic Feedback and Search12 May 2026
- 2026REBENCH: A Procedural, Fair-by-Construction Benchmark for LLMs on Stripped-Binary Types and Names (Extended Version)30 Apr 2026
- 2026PCodeTrans: Translate Decompiled Pseudocode to Compilable and Executable Equivalent16 Mar 2026
- 2026Fool Me If You Can: On the Robustness of Binary Code Similarity Detection Models against Semantics-preserving Transformations13 Feb 2026
- 2025A Deep Dive into Function Inlining and its Security Implications for ML-based Binary Analysis16 Dec 2025
- 2025Asm2SrcEval: Evaluating Large Language Models for Assembly-to-Source Code Translation28 Nov 2025
- 2025Fast, Fine-Grained Equivalence Checking for Neural Decompilers8 Jan 2025
11 more
- 2024BLens: Contrastive Captioning of Binary Functions using Ensemble Embedding12 Sep 2024
- 2024Source Code Foundation Models are Transferable Binary Analysis Knowledge Bases30 May 2024
- 2024Assemblage: Automatic Binary Dataset Construction for Machine Learning7 May 2024
- 2024JaxDecompiler: Redefining Gradient-Informed Software Design14 Mar 2024
- 2024CodeArt: Better Code Models by Attention Regularization When Symbols Are Lacking19 Feb 2024
- 2024LLM4Vuln: A Unified Evaluation Framework for Decoupling and Enhancing LLMs' Vulnerability Reasoning29 Jan 2024
- 2023Binary Code Summarization: Benchmarking ChatGPT/GPT-4 and Other Large Language Models15 Dec 2023
- 2023Exploring the Limits of ChatGPT in Software Security Applications8 Dec 2023
- 2023Nova: Generative Language Models for Assembly Code with Hierarchical Attention and Contrastive Learning22 Nov 2023
- 2023Revisiting Deep Learning for Variable Type Recovery7 Apr 2023
- 2022Pre-Training Representations of Binary Code Using Contrastive Learning11 Oct 2022
- 2026Reveree: Diagnosing LLM Reverse-Engineering Agentscited by 0
- 2026Reveree: Diagnosing LLM Reverse-Engineering Agents1 Sep 2026
- 2023Binary Code Summarization: Benchmarking ChatGPT/GPT-4 and Other Large Language Modelscited by 13
- 2023Nova: Generative Language Models for Assembly Code with Hierarchical Attention and Contrastive Learningcited by 12
- 2024Assemblage: Automatic Binary Dataset Construction for Machine Learningcited by 12
- 2024Source Code Foundation Models are Transferable Binary Analysis Knowledge Basescited by 8
- 2024CodeArt: Better Code Models by Attention Regularization When Symbols Are Lackingcited by 7
- 2022Pre-Training Representations of Binary Code Using Contrastive Learningcited by 6
- 2023Exploring the Limits of ChatGPT in Software Security Applicationscited by 6
- 2024BLens: Contrastive Captioning of Binary Functions using Ensemble Embeddingcited by 3
- 2025Fast, Fine-Grained Equivalence Checking for Neural Decompilerscited by 2
- 2023Revisiting Deep Learning for Variable Type Recoverycited by 1
- 2025A Deep Dive into Function Inlining and its Security Implications for ML-based Binary Analysiscited by 1
- 2026Fool Me If You Can: On the Robustness of Binary Code Similarity Detection Models against Semantics-preserving Transformationscited by 1
12 most cited of 21 All 21 (JSON)
- 2026When LLM Decompilers Recompile More and Preserve Less4 Sep 2026
- 2026Beyond Text Matching: Towards Reference-Free Evaluation for Human-Oriented Binary Reverse Engineering7 Aug 2026
- 2026REFORGE: A Method for Benchmarking LLMs' Reverse Engineering Capabilities in Decompiled Binary Function Naming7 Jul 2026
- 2026SoK: AI-Augmented Binary Reversing16 Jun 2026
- 2026Decaf: Improving Neural Decompilation with Automatic Feedback and Search12 May 2026
- 2026REBENCH: A Procedural, Fair-by-Construction Benchmark for LLMs on Stripped-Binary Types and Names (Extended Version)30 Apr 2026
- 2026PCodeTrans: Translate Decompiled Pseudocode to Compilable and Executable Equivalent16 Mar 2026
- 2026Fool Me If You Can: On the Robustness of Binary Code Similarity Detection Models against Semantics-preserving Transformations13 Feb 2026
- 2025A Deep Dive into Function Inlining and its Security Implications for ML-based Binary Analysis16 Dec 2025
- 2025Asm2SrcEval: Evaluating Large Language Models for Assembly-to-Source Code Translation28 Nov 2025
- 2025Fast, Fine-Grained Equivalence Checking for Neural Decompilers8 Jan 2025
- 2024BLens: Contrastive Captioning of Binary Functions using Ensemble Embedding12 Sep 2024
12 newest of 21 All 21 (JSON)