Self-Constructed Context Decompilation with Fined-grained Alignment Enhancement
Yunlong Feng, Dechuan Teng, Yang Xu, Honglin Mu, Xiao Xu, Libo Qin, Qingfu Zhu, Wanxiang Che
TL;DR
The paper tackles decompilation from assembled machine code back to high-level source by introducing two techniques: Self-Constructed Context Decompilation (sc$^2$dec), a tuning-free method that reuses decompiled results to form effective in-context demonstrations, and Fine-grained Alignment Enhancement (FAE), a targeted fine-tuning strategy using step-by-step and end-to-end objectives guided by debugging information to align assembly with source at the statement level. Together, these methods improve re-executability on the Decompile-Eval benchmark to a new state-of-the-art of $52.41\%$, with an overall gain of about $3.90\%$ over prior approaches. The authors provide a detailed data pipeline, implement a LoRA-based fine-tuning setup on the llm4decompile-6.7b model, and demonstrate that context construction and fine-grained alignment are orthogonal and complementary in boosting decompilation performance. This work advances automated decompilation by leveraging compilability signals and precise assembly-source alignment, with practical impact on software analysis when source code is unavailable.
Abstract
Decompilation transforms compiled code back into a high-level programming language for analysis when source code is unavailable. Previous work has primarily focused on enhancing decompilation performance by increasing the scale of model parameters or training data for pre-training. Based on the characteristics of the decompilation task, we propose two methods: (1) Without fine-tuning, the Self-Constructed Context Decompilation (sc$^2$dec) method recompiles the LLM's decompilation results to construct pairs for in-context learning, helping the model improve decompilation performance. (2) Fine-grained Alignment Enhancement (FAE), which meticulously aligns assembly code with source code at the statement level by leveraging debugging information, is employed during the fine-tuning phase to achieve further improvements in decompilation. By integrating these two methods, we achieved a Re-Executability performance improvement of approximately 3.90% on the Decompile-Eval benchmark, establishing a new state-of-the-art performance of 52.41%. The code, data, and models are available at https://github.com/AlongWY/sccdec.
