Self-Constructed Context Decompilation with Fined-grained Alignment Enhancement
This work addresses decompilation for software analysis when source code is unavailable, representing an incremental advance with specific performance gains.
The paper tackled decompilation of compiled code into high-level source code by proposing two methods: Self-Constructed Context Decompilation for in-context learning without fine-tuning and Fine-grained Alignment Enhancement for statement-level alignment during fine-tuning, achieving a 3.90% improvement in Re-Executability and setting a new state-of-the-art of 52.41% on the Decompile-Eval benchmark.
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.