将源代码预训练语言模型扩展至汇编代码反编译摘要
通过发表首个开源的用于反编译的大型语言模型 (LLMs),以及引入考虑重新编译和重新执行性能的第一个数据集 Decompile-Eval,本研究从程序语义的角度评估了反编译模型。实验证明,LLM4Decompile 能够准确反编译 21% 的汇编代码,这相较于 GPT-4 有了 50% 的改进。
Mar, 2024
用于二进制恶意软件总结的 MALSIGHT 框架使用大型语言模型生成恶意软件的描述,通过迭代输入伪代码函数到 MalT5 模型来获得总结,同时引入了新的评估指标 BLEURT-sum。
Jun, 2024
使用神经机器翻译技术进行反编译,可以使得反编译的支持范围更广,但过度的语言特定领域知识会增加支持新语言的负担。因此,研究者提出了一种使用神经机器翻译将程序汇编语言和源码语言看作纯文本的方案,并成功地应用于多种语言的反编译中。在参数调整和评估中,该方案相比其他基于神经机器翻译的反编译技术,在较少领域知识的情况下实现了相当的反编译精度。
Dec, 2022
利用大规模源代码语料库中的领域知识(例如变量名称和注释)构建人工智能模型,以捕获二进制代码的可操作性,以此来帮助人类理解二进制代码,并使用人类理解的度量标准来评估模型的性能。
Oct, 2022
本文采用系统性和深入分析方法,分析了 5 种最先进的神经代码自动摘要模型在 6 种广泛使用的 BLEU 变量、4 种预处理操作及其组合以及 3 种广泛使用的数据集上的评估结果,发现评估代码摘要模型的三个主要因素 ——BLEU 评估指标、代码预处理选择和数据集特征 —— 对模型的性能和排名有重要影响。文章提出了可行建议来评估代码自动摘要和在不同情景下选择最佳方法,并建立了一个共享代码自动摘要工具箱促进未来研究。
Jul, 2021
人类导向的二进制逆向工程(HOBRE)通过建立二进制与源代码之间相互关联的可读内容,填补了二进制与源代码之间的语义鸿沟。我们提出了一种新颖的探测和恢复框架,结合了二进制和源代码的编码器 - 解码器模型以及黑盒语言模型进行二进制分析,实现了对零样本二进制摘要和二进制函数命名恢复的显著改进,自动化并提升了二进制代码分析的效果。
May, 2024
该研究提出了一个检索增强框架 REDCODER,用于检索相关的代码或摘要,作为代码生成或总结模型的补充,实现了与检索数据库的交互。这个机制可以扩展检索技术的功能,适用于含有不同模态的检索数据库,并在 Java 和 Python 的代码生成和摘要的基准数据集上得到了良好的实验结果。
Aug, 2021
本文介绍了一种新的学习方法,称为 NeurDP,以处理被编译优化的二进制文件的反编译问题,并以图神经网络模型将低级程序语言转换为中间表示,从而实现更好的翻译性能,经评估结果表明,NeurDP 可以比最先进的神经反编译框架的准确率高出 45.21%。
Jan, 2023
该研究介绍了 DIRTY 模型,它是一种基于 Transformer 的编码器 - 解码器结构,能够利用反编译器生成的变量数据增加反编译代码的可读性。作者通过 Ghidra 反编译器生成数据集并重新训练 DIRTY 模型,证明了 Ghidra 反编译器可以达到类似的重新输入性能,鼓励更多学者采用 Ghidra 反编译器以加强研究项目的可读性。
Apr, 2023
在这项工作中,我们开始探讨使用深度神经网络对二进制代码理解进行训练的可能性。具体而言,网络将以直接从二进制中派生的特征作为输入,并输出英文功能描述,以帮助逆向工程师调查闭源软件的功能,无论是恶意的还是良性的。我们发现嵌入距离相关性(EDC)测试对于评估数据集值非常有诊断能力,表明我们收集的数据集和一些现有的开源数据集质量较低。
Apr, 2024