论文

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

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

上下文与知识上下文工程

摘要

LLM 辅助反编译提高了可读性和可重新执行性,但在使用标准模板库 (STL) 的剥离 C++ 函数上仍然表现不佳。编译、优化和符号剥离会删除或模糊源级语义,例如容器类型和库调用结构,而传统的反编译器输出通常无法恢复它们。我们提出了 STILL,一个结构化语义接口,它可以从剥离的控制流图预测函数级 STL 容器语义,并将它们呈现为 LLM 细化的紧凑提示。在 StlBench 上,STILL 可以预测常见的容器级 STL 语义,并为稳定的字符串和向量切片提供最强的跨数据集结果。在剥离 HumanEval 反编译时,这些提示使 DeepSeek 聊天细化的可执行性达到 28.4%,而无提示细化的可执行性为 17.4%,原始 Ghidra 反编译的可执行性为 8.9%;提示实用程序依赖于下游主干,反编译专用模型需要轻量级调整才能从相同的接口中受益。