公开预览 · 注册及正式收款尚未开放。
Anti-AIClonePILOT

日志日期 · 周五

Hieronym:用 LLM 为剥离符号的二进制恢复函数名

Hieronym 结合全局、调用与函数自身语义,用生成式 LLM 为剥离符号的函数命名,报告显著优于现有方法。

当天发生了什么

2026-09-11(UTC),Xiaoling Zhang 等九位作者在 arXiv 提交了论文 Hieronym 的 v1。论文关注剥离符号二进制中的函数重命名:函数含义需要从随指令集、架构和优化级别变化的底层代码中推断,再表达为简短可读的名字。作者认为现有方法要么遗漏大量语义,要么难以泛化到未见过的二进制。Hieronym 是一个生成式大语言模型框架,采用分层、以摘要驱动的领域适配,并结合全局二进制上下文、局部调用上下文与函数自身语义。论文还提出了词元级和整名级的评估框架。在 x64、x86、ARM、MIPS 及 O0 到 O3 的测试中,作者报告词元级精确率、召回率和 F1 分别提升 50.12%、41.75% 和 45.10%,整名准确率提升 79.94%,并在真实恶意样本上做了实验。

对保护应用逻辑的人意味着什么

去除符号长期被视为最基础的保护步骤。这类研究的目标正是把名字所承载的含义重新推断出来,而且它利用的线索来自上下文:调用了哪些库函数、被谁调用、处理了什么常量和字符串。对开发者而言,去符号依然值得做,因为它去掉了最直接的答案;但不应把它描述为隐藏了函数意图。需要注意边界:论文报告的是相对现有方法的提升,数字来自作者自己的评估;摘要没有说明在经过混淆的代码上的表现,因此不能据此判断它对强化后二进制的效果。

可以做的检查

第一,继续在发布构建中剥离符号,并确认构建流水线确实执行了这一步。第二,审视会泄露上下文的内容:日志字符串、错误信息、断言文本和调试开关,发布构建中尽量去除或替换为编号。第三,检查导入的系统 API 和第三方库组合是否已足以透露模块用途,必要时把敏感处理移到服务端。第四,用你自己的分析工具查看发布二进制,确认去符号后还剩下哪些可读线索。

行动清单

  • 确认发布流水线实际执行了去符号
  • 清理日志、错误信息等泄露上下文的字符串
  • 检查导入 API 组合是否暴露模块用途

原始资料

全部原始资料与转载状态 ↗