STILL: 恢复LLM辅助C++反编译中的STL语义

STILL: Recovering Lowered STL Semantics for LLM-assisted C++ Decompilation

精选理由

STILL让LLM能从剥离的C++代码中恢复STL容器语义,反编译准确率提升60%以上。

AI 摘要

STILL是一个结构化语义接口,能从剥离的控制流图中预测函数级STL容器语义。在StlBench基准测试中,STILL对稳定字符串和向量切片的跨数据集结果最佳。在剥离的HumanEval反编译任务中,使用STILL提示的DeepSeek-chat模型达到28.4%可执行性,显著高于无提示的17.4%和原始Ghidra反编译的8.9%。

原文 · arXiv: DeepSeek

STILL: Recovering Lowered STL Semantics for LLM-assisted C++ Decompilation

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.