32、基于神经网络的可执行代码追溯性研究

基于神经网络的可执行代码追溯性研究

1. 背景与相关工作

在软件验证中,可执行代码(对象代码)的追溯性至关重要,因为软件评估常基于源代码分析,需确保编译过程未引入安全漏洞、后门或不良行为。此前一些研究尝试探寻源代码与对象代码的关系,如有人用源代码大小和每千行缺陷数来研究与对象代码的联系,但未解决对象代码追溯性问题。

Buttle利用对象代码的程序逻辑结构(控制流图)与源代码匹配,而我们在使用程序流特征的基础上,还考虑源代码和对象代码间可能共存的其他关系以实现更好匹配。

在二进制差异分析方面,已有大量工作用于审查同一软件的不同版本、分析同一高级语言的恶意软件变体以及安全更新。多数工作采用图匹配比较二进制文件,不过尚未有针对追溯性问题的研究,但这些二进制差异分析的结果可借鉴用于追溯性问题。

在安全领域,部分研究使用神经网络进行密码学相关工作,如提出基于超混沌细胞神经网络的数字图像加密算法。在软件验证、验证和可靠性方面,也有基于人工智能的方法,如用神经网络进行软件可靠性预测、预测Web应用中的易出错模块等。

2. 提出的方法

我们的软件追溯方法包含两个步骤:
- 步骤一 :使用软件分析工具提取源代码和二进制代码的一些特征,这些特征可以是简单的,如大小,也可以是复杂的,如从控制流图或调用图导出的特征。
- 步骤二 :使用非线性非确定性仲裁器确定源代码和二进制代码之间的对应关系。这里使用四个特征(大小、调用图的过程数、控制流图的顶点数和边数)和人工神经网络作为仲裁器。

2.1 提取过程

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值