A curated collection of learning-based reverse engineering research, focusing on recovering and understanding low-level code using machine learning, deep learning, and large language models (LLMs).
Reverse engineering (RE) has entered a new phase. While traditional RE relies heavily on handcrafted heuristics and symbolic analysis, recent advances in learning-based methods have fundamentally changed how we recover and understand low-level code.
This repository tracks this paradigm shift — from early machine learning approaches, to deep neural models, and most recently, large language models (LLMs) — highlighting how learning-based techniques enable scalable, semantic, and cross-platform reverse engineering.
This repository focuses on research whose primary goal is to recover or enhance human understanding of low-level or opaque code representations using learning-based techniques.
Included topics:
- Structure Recovery, e.g., function boundary identification, control flow graph recovery, and modular decomposition
- Semantic Recovery, e.g., type inference, variable naming, function naming and summarization
- Code Reconstruction, e.g., neural decompilation, decompiler output refinement
Supported representations:
- Native binaries (x86, ARM, MIPS)
- Bytecode (JVM, EVM, .NET, Android/Dalvik)
- WebAssembly (Wasm)
Excluded topics:
- Analysis performed directly on high-level source code
- Vulnerability detection, malware classification, or exploit generation unless program understanding is the primary contribution
- [Decompilation] Oxidizer: Toward Concise and High-fidelity Rust Decompilation. [repo]
- [Data-Code Separation] You Can't Judge a Binary by Its Header: Data-Code Separation for Non-Standard ARM Binaries Using Pseudo Labels.
- [Decompilation] PyLingual: Toward Perfect Decompilation of Evolving High-Level Languages. [repo].
- [Composite Type Inference] TypeForge: Synthesizing and Selecting Best-Fit Composite Data Types for Stripped Binaries.
- [Variable Naming] Len or index or count, anything but v1": Predicting Variable Names in Decompilation Output with Transfer Learning. [repo].
- [Control Flow Recovery] Callee: Recovering Call Graphs for Binaries with Transfer and Contrastive Learning. [repo].
- [Function Naming] XFL: Naming Functions in Binaries with Extreme Multi-label Learning. [repo].
- [Function Naming] Hieronym: Leveraging Hierarchical Multi-Source Information for Function Renaming in Stripped Binary.
- [Instruction Recovery, Function Recovery, Control Flow Recovery] Disa: Accurate Learning-based Static Disassembly with Attentions. [repo].
- [Variable Naming, Type Inference] ReSym: Harnessing LLMs to Recover Variable and Data Structure Symbols from Stripped Binaries. [repo].
- [Function Naming] SymLM: Predicting Function Names in Stripped Binaries via Context-Sensitive Execution-Aware Code Embeddings. [repo].
- [Pretrained-model] PalmTree: Learning an Assembly Language Model for Instruction Embedding. [repo].
- [Function Naming] BLens: contrastive captioning of binary functions using ensemble embedding. [zenodo].
- [Instruction Recovery] Tady: A Neural Disassembler without Structural Constraint Violations. [repo].
- [Type Inference] TYGR: type inference on stripped binaries using graph neural networks. [repo].
- [Variable Naming, Type Inference] Augmenting Decompiler Output with Learned Variable Names and Types. [repo].
- [Instruction Recovery, Function Recovery] DeepDi: Learning a Relational Graph Convolutional Network Model on Instructions for Fast and Accurate Disassembly. [repo].
- [Code Refinement] FidelityGPT: Correcting Decompilation Distortions with Retrieval Augmented Generation. [repo].
- [Decompilation, Composite type inference, Variable Naming] Idioms: Neural Decompilation With Joint Code and Type Definition Prediction. [repo].
- [Variable Naming] Unleashing the Power of Generative Model in Recovering Variable Names from Stripped Binary. [repo].
- [Function Naming] Beyond Classification: Inferring Function Names in Stripped Binaries via Domain Adapted LLMs. [repo].
- [Variable Naming, Binary Summarization, Code Refinement] DeGPT: Optimizing Decompiler Output with LLM. [repo].
- [Instruction Recovery, Function Recovery] XDA: Accurate, Robust Disassembly with Transfer Learning. [repo].
(22)
- [Binary Structure Recovery] Modx: Binary Level Partial Imported Third-Party Library Detection through Program Modularization and Semantic Matching.
- [Variable Naming, Decompilation] DiSCo: Towards Decompiling EVM Bytecode to Source Code using Large Language Models. [online].
- [Binary Summarization] MiSum: Multi-modality Heterogeneous Code Graph Learning for Multi-intent Binary Code Summarization. [repo].
- [Type Inference] Recasting Type Hints from WebAssembly Contracts. [repo].
- [Function Naming] Enhancing Function Name Prediction using Votes-Based Name Tokenization and Multi-task Learning. [repo].
- [Type Inference] DeepInfer: Deep Type Inference from Smart Contract Bytecode. [repo].
- [Function Recovery] FunProbe: Probing Functions from Binary Code through Probabilistic Analysis. [repo].
- [Memory Dependence Analysis] NeuDep: neural binary memory dependence analysis.
- [Type Inference] StateFormer: fine-grained type recovery from binaries using generative state modeling. [repo].
- [Evaluation] Beyond Text Matching: Towards Reference-Free Evaluation for Human-Oriented Binary Reverse Engineering. [artifacts]
- [Binary Structure Recovery] BinStruct: Binary Structure Recovery Combining Static Analysis and Semantics. [online].
- [Code Refinement] PseudoFix: Refactoring Distorted Structures in Decompiled C Pseudocode. [repo].
- [Type Inference] TypeFSL: Type Prediction from Binaries via Inter-procedural Data-flow Analysis and Few-shot Learning. [repo].
- [Decompilation] WaDec: Decompiling WebAssembly Using Large Language Model. [repo].
- [Pretrained-model, Binary Summarization, Function Naming, Variable Naming, etc] HexT5: Unified Pre-Training for Stripped Binary Code Information Inference. [repo].
- [Code Refinement] DecLLM: LLM-Augmented Recompilable Decompilation for Enabling Programmatic Use of Decompiled Code. [online].
- [Pretrained-model, Binary Summarization] CLAP: Learning Transferable Binary Code Representations with Natural Language Supervision. [repo].
- [Binary Structure Recovery] DeLink: Source File Information Recovery in Binaries.
- [Type Inference, Binary Summarization] Multi-modal Learning for WebAssembly Reverse Engineering.
- [Function Naming] A lightweight framework for function name reassignment based on large-scale stripped binaries. [repo].
(22)
- [Type Inference] Finding the Dwarf: Recovering Precise Types from WebAssembly Binaries. [repo].
- [Type Inference, Variable Naming] HyRES: Recovering Data Structures in Binaries via Semantic Enhanced Hybrid Reasoning. [repo].
- [Binary Summarization] ByteCue: enhancing bytecode comment generation with API information. [repo].
- [Type Inference] Beyond the Edge of Function: Unraveling the Patterns of Type Recovery in Binary Code. [repo].
- [Binary Summarization] Automating Comment Generation for Smart Contract from Bytecode. [figshare].
- [Function Naming] llasm: Naming Functions in Binaries by Fusing Encoder-only and Decoder-only LLMs. [repo].
- [Variable Naming] DIRE and its Data: Neural Decompiled Variable Renamings with Respect to Software Class.
- [Function Recovery, Type Inference, Code Refinement] Augmenting Smart Contract Decompiler Output Through Fine-Grained Dependency Analysis and LLM-Facilitated Semantic Recovery. [code].
- [Inline Function Recovery] Learning to Find Usages of Library Functions in Optimized Binaries.
(25)
- [Binary Summarization] Malsight: Exploring Malicious Source Code and Benign Pseudocode for Iterative Binary Malware Summarization.
- [Function Naming, Variable Naming, Decompilation] SK2Decompile: LLM-based Two-Phase Binary Decompilation from Skeleton to Skin. [repo].
- [Decompilation] Nova: Generative Language Models for Assembly Code with Hierarchical Attention and Contrastive Learning. [repo].
(24)
- [Decompilation, Variable Naming, Binary Summarization] StackSight: Unveiling WebAssembly through Large Language Models and Neurosymbolic Chain-of-Thought Decompilation.
- [Decompilation] LLM4Decompile: Decompiling Binary Code with Large Language Models. [repo].
- [Binary Summarization] CP-BCS: binary code summarization guided by control flow graph and pseudo code. [repo].
- [Binary Summarization] AndroByte: LLM-Driven Privacy Analysis through Bytecode Summarization and Dynamic Dataflow Call Graph Generation. [repo].
- [Decompilation] Boosting neural networks to decompile optimized binaries. [repo].
- [Function Naming] BinAdapter: Leveraging Continual Learning for Inferring Function Symbol Names in a Binary. [repo].
- [Function Naming] A Transformer-based Function Symbol Name Inference Model from an Assembly Language for Binary Reversing. [repo].
(23)
- [Binary Summarization] Extending Source Code Pre-Trained Language Models to Summarise Decompiled Binaries. [zenodo].
- [Decompilation] Binary Decompilation LLM with Feedback-Driven Multi-Turn Refinement. [hugging face]
- [Code Refinement] PCodeTrans: Translate Decompiled Pseudocode to Compilable and Executable Equivalent.
- [Code Refinement] From Transactions to Exploits: Automated PoC Synthesis for Real-World DeFi Attacks.
- [Control Flow Recovery] iResolveX: Multi-Layered Indirect Call Resolution via Static Reasoning and Learning-Augmented Refinement.
- [Function Naming] AGNOMIN -- Architecture Agnostic Multi-Label Function Name Prediction. [repo].
- [Decompilation] Beyond C/C++: Probabilistic and LLM Methods for Next-Generation Software Reverse Engineering.
- [Decompilation] The CodeInverter Suite: Control-Flow and Data-Mapping Augmented Binary Decompilation with LLMs. [repo].
- [Control Flow Recovery] Resolving Indirect Calls in Binary Code via Cross-Reference Augmented Graph Neural Networks. [zenodo].
- [Pretrained-model, Decompilation, Function Naming, Variable Naming, Type Inference, Binary Summarization] ReCopilot: Reverse Engineering Copilot in Binary Analysis. [online].
- [Decompilation] ReF Decompile: Relabeling and Function Call Enhanced Decompile. [repo].
- [Decompilation] SALT4Decompile: Inferring Source-level Abstract Logic Tree for LLM-Based Binary Decompilation. [repo].
- [Decompilation] Context-Guided Decompilation: A Step Towards Re-executability.
- [Decompilation] Decompiling Smart Contracts with a Large Language Model.
- [Instruction Recovery] Disassembling Obfuscated Executables with LLM.
- [Type Inference, Variable Naming] STRIDE: Simple Type Recognition In Decompiled Executables.
- [Function Naming, Variable Naming, Code Refinement] Exploring the Efficacy of Large Language Models (GPT-4) in Binary Reverse Engineering. [repo].
- [CNSSE-2026] From Heuristics to Transformers: A Comprehensive Survey of Type Inference from Stripped Binaries.
- [BAR-2022] Beyond the C: Retargetable Decompilation using Neural Machine Translation. [repo].
- [CGO-2024] SLaDe: A Portable Small Language Model Decompiler for Optimized Assembly. [zenodo].
- [CODASPY-2026] Practical Type Inference: High-Throughput Recovery of Real-World Structures and Function Signatures.
- [DTRP-2024] Asm2Seq: Explainable Assembly Code Functional Summary Generation for Reverse Engineering and Vulnerability Analysis. [repo].
- [ESORICS-2023] AttnCall: Refining Indirect Call Targets in Binaries with Attention. [repo].
- [ICSME-2024] Optimizing Decompiler Output by Eliminating Redundant Data Flow in Self-Recursive Inlining. [repo].
- [ICSME-2024] How Far Have We Gone in Binary Code Understanding Using Large Language Models.
- [IJCAI-2025] BinMetric: A Comprehensive Binary Code Analysis Benchmark for Large Language Models.
- [ISC-2025] LLM-DAS: An LLM-Powered Deobfuscation System for ARM Binary Code.
- [ISC-2024] Attention-Based Decompilation Through Neural Machine Translation.
- [NLP4Prog-2021] DIRECT: A Transformer-based Model for Decompiled Variable Name Recovery. [repo].
- [PST-2023] Investigating Neural-based Function Name Reassignment from the Perspective of Binary Code Representation. [repo].
- [SmartSP-2024] RustBound: Function Boundary Detection over Rust Stripped Binaries. [code].
- [TrustCom-2024] SBCM: Semantic-Driven Reverse Engineering Framework for Binary Code Modularization.
- [WWW-2025] SuiGPT MAD: Move AI Decompiler to Improve Transparency and Auditability on Non-Open-Source Blockchain Smart Contract. [code].
- [WWW-2023] Automated WebAssembly Function Purpose Identification With Semantics-Aware Analysis.
- [CSUR-2026] A Survey of Symbol Name Recovery in Sotware Reverse Engineering.
- [Arxiv-2026] SoK: AI-Augmented Binary Reversing.
- [Github-2026] DecBench: An experimental living benchmark to measure how close we are to perfect decompilation on binaries.. [repo]
- [NDSS-2026] Decompiling the Synergy: An Empirical Study of Human–LLM Teaming in Software Reverse Engineering.
- [arXiv-2026] REBENCH: A Procedural, Fair-by-Construction Benchmark for LLMs on Stripped-Binary Types and Names. [zenodo].
- [arXiv-2025] An Empirical Study on the Effectiveness of Large Language Models for Binary Code Understanding. [repo]
- [arXiv-2025] BuildBench: Benchmarking LLM Agents on Compiling Real-World Open-Source Software.
- [arXiv-2025] Decompile-Bench: Million-Scale Binary-Source Function Pairs for Real-World Binary Decompilation. [repo].
- [arXiv-2025] Benchmarking Binary Type Inference Techniques in Decompilers. [repo].
- [IJCAI-2025] BinMetric: A Comprehensive Binary Code Analysis Benchmark for Large Language Models.
- [ASE-2025] R3-Bench: Reproducible Real-world Reverse Engineering Dataset for Symbol Recovery. [repo].
- [arXiv-2025] SoK: Potentials and Challenges of Large Language Models for Reverse Engineering.
- [arXiv-2025] An Empirical Study on the Effectiveness of Large Language Models for Binary Code Understanding.
- [ICSME-2024] How Far Have We Gone in Binary Code Understanding Using Large Language Models.
- [ISSTA-2024] Evaluating the Effectiveness of Decompilers.
- [Security-2024] A taxonomy of C decompiler fidelity issues.
- [arXiv-2023] Binary Code Summarization: Benchmarking ChatGPT/GPT-4 and Other Large Language Models. [repo].
- [Security-2022] RE-Mind: a First Look Inside the Mind of a Reverse Engineer.
- [Security-2022] Decomperson: How Humans Decompile and What We Can Learn From It.
- [arXiv-2022] Pop Quiz! Can a Large Language Model Help With Reverse Engineering?. [repo].
- [SP-2021] SoK: All You Ever Wanted to Know About x86/x64 Binary Disassembly But Were Afraid to Ask. [repo].
This is a living repository. Contributions are welcome!
- Found a relevant paper? Submit a PR
- Disagree with the paper tag? Open an issue
- Have feedback? Create a discussion
This list is released into the public domain.