Search papers, labs, and topics across Lattice.
This paper introduces STILL, a structured semantic interface that enhances LLM-assisted C++ decompilation by predicting function-level STL container semantics from stripped control-flow graphs. The approach addresses the limitations of traditional decompilers in recovering source-level semantics, significantly improving the executability of decompiled code. Experimental results on StlBench and HumanEval demonstrate that STILL can boost executability rates from 8.9% to 28.4% when integrated with LLM refinement, showcasing its effectiveness across different model backbones.
Predicting STL semantics from stripped control-flow graphs can triple the executability of decompiled C++ code using LLMs.
LLM-assisted decompilation improves readability and re-executability, but still underperforms on stripped C++ functions that use the Standard Template Library (STL). Compilation, optimization, and symbol stripping remove or obscure source-level semantics such as container types and library-call structure, while traditional decompiler output often fails to recover them. We present STILL, a structured semantic interface that predicts function-level STL container semantics from stripped control-flow graphs and renders them as compact hints for LLM refinement. On StlBench, STILL predicts common container-level STL semantics, with the strongest cross-dataset results for stable string and vector slices. On stripped HumanEval decompilation, these hints enable DeepSeek-chat refinement to reach 28.4% executability, compared with 17.4% for no-hint refinement and 8.9% for raw Ghidra decompilation; hint utility is downstream-backbone-dependent, with decompilation-specialized models requiring lightweight adaptation to benefit from the same interface.