当源代码不可用时,反编译是分析和理解软件的强大技术。它是计算机安全领域的一个关键问题。随着神经机器翻译(NMT)的成功,与传统的反编译方法相比,基于神经网络的反编译器的研究取得了很好的效果。
之前,反编译程序是受人类专家启发手工设计的。因此,对于每一对编程语言(如 C++ 和汇编),领域专家会编写大量的规则,这是一个耗时的过程,需要花费数年的时间,在棘手的情况下需要投入更多的注意力,进行更仔细的操作。源语言的升级,例如从 C++ 03 升级到 C++ 11,维护工作也随之升级。
针对上述问题,Facebook AI、UCSD STABLE 实验室提出了一个基于神经的反编译框架 N-Bref,该框架可以提高传统反编译系统的准确率。该研究对基于神经的反编译器设计的每个组件如何影响跨不同数据集配置的程序恢复的整体准确率进行了全面分析。
N-Bref 完成了从数据集生成到神经网络训练和评估的设计流程自动化,不需要人类工程师的参与。在实际的代码反编译任务中,这是首个重利用 SOTA 神经网络(如神经机器翻译中用到的 Transformer)来处理高度结构化的输入和输出数据的尝试。N-Bref 可处理汇编代码,该汇编代码来自于对 C++ 程序的编译,这些程序经常调用标准库(例如 < string.h>,
N-Bref 的性能优于传统的反编译器 (如:REWARD [2]),尤其是输入程序很长且有复杂的控制流时。值得注意的是,该系统可以从标准 C 库 (e.g.,
更多信息可以戳原文。
参考链接: https://ai.facebook.com/blog/introducing-n-bref-a-neural-based-decompiler-framework/ https://www.marktechpost.com/2021/01/28/facebook-ai-introduces-n-bref-a-neural-based-decompiler-framework/
来源:机器之心
内容中包含的图片若涉及版权问题,请及时与我们联系删除
评论
沙发等你来抢