Trim My View: An LLM-Based Code Query System for Module Retrieval in Robotic Firmware

2025年03月05日
  • 简介
    软件编译过程往往会掩盖系统的原始设计,使得通过检查生成的二进制代码来识别各个组件及其功能变得困难。尽管反编译技术试图从机器代码中恢复高层次的源代码,但它们无法完全还原原始函数的语义。此外,二进制文件通常会被剥离元数据,这使得逆向工程复杂的二进制软件变得更加困难。 在本文中,我们展示了如何结合二进制分解技术、反编译步骤以及基于大型语言模型(LLM)的功能摘要生成,构建一个经济高效的引擎,用于在被剥离元数据的二进制文件中识别模块,并将其与高层次的自然语言描述关联起来。我们使用三个开源的大型语言模型——CodeQwen、DeepSeek-Coder 和 CodeStral 实现了这一技术,并评估了其在机器人固件中识别模块的有效性。这项实验评估涉及来自 ArduPilot 软件套件中四个设备的 467 个模块,结果显示,表现最佳的后端 LLM CodeStral 平均 F1 分数达到了 0.68,且在线运行时间仅需几秒钟。
  • 图表
  • 解决问题
    该论文试图解决从剥离元数据的二进制文件中识别和理解软件模块的问题。由于编译过程会隐藏系统原始设计,使得直接通过二进制代码难以识别组件及其功能,现有反编译技术也无法完全恢复原始语义。这是一个长期存在的问题,特别是在逆向工程复杂二进制软件时。
  • 关键思路
    论文的关键思路是结合二进制分解技术、反编译步骤以及大型语言模型(LLM)驱动的功能总结,构建一个经济高效的引擎来识别剥离元数据的二进制文件中的模块,并将其与高级自然语言描述关联起来。这种方法利用了LLM的强大自然语言处理能力,以弥补传统反编译技术的不足,从而更准确地理解二进制代码。
  • 其它亮点
    论文使用了三个开源的LLM——CodeQwen、DeepSeek-Coder和CodeStral进行实验,结果表明CodeStral在识别机器人固件模块方面表现最佳,平均F1得分为0.68,且在线运行时间仅需几秒钟。实验设计涉及467个来自ArduPilot软件套件的四个设备的模块。此外,这项研究展示了如何将LLM应用于逆向工程领域,为未来的研究提供了新的方向。
  • 相关研究
    最近在这个领域内的相关研究包括: 1. "Automated Binary Code Analysis Using Deep Learning Techniques" - 探讨了深度学习在二进制代码分析中的应用。 2. "Improving Decompilation with Neural Machine Translation" - 尝试用神经机器翻译改进反编译。 3. "Learning to Disassemble: A Data-Driven Approach to Binary Analysis" - 提出了一种基于数据驱动的方法来进行二进制分析。 这些研究都旨在提高对二进制代码的理解和逆向工程的能力,但本论文通过引入LLM进一步推进了这一领域的进展。
PDF
原文
点赞 收藏 评论 分享到Link

沙发等你来抢

去评论