CN115878498A - 一种基于机器学习预测程序行为的关键字节提取方法 - Google Patents

一种基于机器学习预测程序行为的关键字节提取方法 Download PDF

Info

Publication number
CN115878498A
CN115878498A CN202310195368.7A CN202310195368A CN115878498A CN 115878498 A CN115878498 A CN 115878498A CN 202310195368 A CN202310195368 A CN 202310195368A CN 115878498 A CN115878498 A CN 115878498A
Authority
CN
China
Prior art keywords
program
neural network
target program
input
test set
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN202310195368.7A
Other languages
English (en)
Inventor
毛得明
唐娜
吴春明
李芒
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
CETC 30 Research Institute
Original Assignee
CETC 30 Research Institute
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by CETC 30 Research Institute filed Critical CETC 30 Research Institute
Priority to CN202310195368.7A priority Critical patent/CN115878498A/zh
Publication of CN115878498A publication Critical patent/CN115878498A/zh
Pending legal-status Critical Current

Links

Images

Landscapes

  • Stored Programmes (AREA)

Abstract

本发明公开了一种基于机器学习预测程序行为的关键字节提取方法,其包括:将输入的种子文件在目标程序上运行,通过模糊测试变异算法生成大量的测试集X,对目标程序进行代码插桩得到程序PI,在程序PI上运行测试集X,得到测试集Y;将测试集X‑Y数据对作为训练数据,对神经网络模型进行训练,直至训练得到的神经网络模型能够预测目标程序的行为为止;基于训练得到的神经网络模型,构建显著图,并从中提取关键字节;其中,所述关键字节是对目标程序行为造成影响的输入。本发明有效的节省了程序行为跟踪的时间开销和性能开销。

Description

一种基于机器学习预测程序行为的关键字节提取方法
技术领域
本发明涉及计算机信息安全技术领域,特别是一种基于机器学习预测程序行为的关键字节提取方法。
背景技术
关键字节指的是会对目标程序行为造成影响的输入,基于一组给定的输入,观察程序行为,反向推导出输入中影响程序行为的字节,即关键字节的提取。提取后的关键字节可以广泛的应用在***隐私数据泄露、漏洞检测以及引导模糊测试等领域。在跟踪程序数据流,观察程序行为,提取关键字节方面,通常使用的是污点分析技术,该技术通过对***中敏感数据进行标记,跟踪标记数据在程序中的传播,以检测***的安全问题然而,随着程序规模的扩大,由于需要跟踪负责程序中从污点源到污点汇聚点的信息流,污点分析带来的时间花费也是呈指数倍增加。
目前大部分程序行为跟踪工具都是基于Valgrind、Pin和Qemu等污点分析工具实现。James Newsome发布了基于Valgrind开发的TaintCheck,实现对缓冲区溢出漏洞的检测,但忽略了对控制流的跟踪。王江提出基于QEMU的二进制程序离线动态污点分析方法,通过修改QEMU的译码和执行机制实现对二进制程序运行轨迹的提取,同时利用HOOK技术完成对程序输入的标记,并建立漏洞模型,在程序虚拟重放的同时,按照传播策略和漏洞模型生成的安全检查策略完成离线程序轨迹分析和程序脆弱点检查。但上述方法均存在时间消耗过大的问题。
机器学***台的信息传播规则的方法。TaintInduce基于模板来学习信息传播规则,并使用一种算法将任务简化为只用学习不同的输入集和信息传播标签的先决条件。TaintInduce通过机器学习的方法学习信息传播规则,增加了单个传播规则的准确性,但是由于其基于传播的设计,在程序行为跟踪过程中,仍然具有高误报和高开销的问题。
发明内容
鉴于此,本发明提供一种基于机器学习预测程序行为的关键字节提取方法,以解决上述技术问题。
本发明公开了一种基于机器学习预测程序行为的关键字节提取方法,其包括以下步骤:
步骤1:将输入的种子文件在目标程序上运行,通过模糊测试变异算法生成大量的测试集X,对目标程序进行代码插桩得到程序PI,在程序PI上运行测试集X,得到测试集Y;
步骤2:将测试集X-Y数据对作为训练数据,对神经网络模型进行训练,直至训练得到的神经网络模型能够预测目标程序的行为为止;其中,测试X为神经网络的输入数据,测试集Y为神经网络的标签数据;所述测试集X-Y数据对由测试集X和测试集Y构成;
步骤3:基于训练得到的神经网络模型,构建显著图,并从中提取关键字节;其中,所述关键字节是对目标程序行为造成影响的输入。
进一步地,所述步骤1包括:
步骤11:模糊测试以提供的种子文件为输入,在目标程序上运行大量的变异操作,检查运行后是否会引起相关结果;其中,所述相关结果包括目标程序崩溃、发现新的执行路径;
步骤12:对目标程序进行基本块级代码插桩,得到程序PI,在程序PI上运行测试集X,得到目标程序的执行路径,即测试集Y。
进一步地,在步骤11中,为保证测试集X的长度不变,选取bitflip、arithmetic和interet这三种模糊测试变异算法来生成大量的测试集X。
进一步地,所述步骤12包括:
步骤121:定义进行***的函数IFunc,***在每个基本块之前,当在目标程序执行过程中经过基本块时,首先调用函数IFunc输出基本块的编号以及该基本块所在的函数;
步骤122:获取目标程序;
步骤123:初始化基本块的编号值num,编号值从1开始;
步骤124:遍历目标程序的函数F;
步骤125:遍历函数F中的每一个基本块;
步骤126:调用***的函数IFunc;
步骤127:基本块的编号值num加1;
步骤128:判断函数F遍历是否结束,若未结束,则执行步骤125,若结束,则执行步骤129;
步骤129:使用程序PI执行测试集X,程序PI输出执行到的基本块的位置、编号以及其所在的文件名,得到目标程序的执行路径,即测试集Y。
进一步地,在所述步骤2中:
神经网络模型通过观察目标程序执行轨迹中的大量测试集X-Y数据对,以学习不同输入在目标程序中的数据流传播过程,模拟目标程序的处理逻辑;所述神经网络模型以程序输入为模型输入,预测目标程序的执行路径。
进一步地,给定所述测试集X-Y数据对中的
Figure SMS_1
和相应的目标程序执行路径/>
Figure SMS_2
时,神经网络模型的输出为/>
Figure SMS_3
Figure SMS_4
(1)
Figure SMS_5
(2)
其中,
Figure SMS_7
表示测试集X中的第i个数据,/>
Figure SMS_10
表示测试集Y中的第i个数据,/>
Figure SMS_13
表示神经网络隐藏层的输出向量,/>
Figure SMS_8
代表ReLU函数,/>
Figure SMS_11
、/>
Figure SMS_14
代表每一层的可训练参数,k表示层的索引号,/>
Figure SMS_15
表示测试数据为/>
Figure SMS_6
时的神经网络模型,/>
Figure SMS_9
表示神经网络模型的可训练权重参数,/>
Figure SMS_12
代表sigmod函数。/>
进一步地,所述神经网络模型包括输入层、隐藏层和输出层;输入层通过隐藏层与输出层连接。
进一步地,所述步骤3包括:
步骤31:计算训练好的神经网络模型预测的执行路径相对于测试集X的偏导数;
步骤32:基于所述偏导数,构建显著图;
步骤33:从所述显著图中提取关键字节。
进一步地,所述步骤31具体为:
F
Figure SMS_16
)表示输入/>
Figure SMS_17
在目标程序执行期间,输出变量的值,计算输入/>
Figure SMS_18
的导数,定义如下:
Figure SMS_19
(3)
其中,X表示神经网络的输入数据,即测试集X,
Figure SMS_20
表示输入/>
Figure SMS_21
中的第n个字节,偏导数/>
Figure SMS_22
构成神经网络函数的雅克比矩阵,矩阵中每个元素表示输出/>
Figure SMS_23
相对于输入
Figure SMS_24
每个字节的梯度。
进一步地,所述步骤32具体为:
显著图
Figure SMS_25
的定义如下:
Figure SMS_26
(4)
其中,
Figure SMS_27
是/>
Figure SMS_28
在神经网络模型中的预测输出/>
Figure SMS_29
对所有输入/>
Figure SMS_30
中第n个字节的求导和,表示第n个字节对当前执行的目标程序行为的影响,其数值越大,代表影响越大;
所述步骤33具体为:
Figure SMS_31
(5)
其中,
Figure SMS_32
是输入字段中会对目标程序执行路径造成影响的重要字节,即关键字节;top_k表示从向量中选择k个最大元素的函数,arg表示返回所选元素索引的函数。
由于采用了上述技术方案,本发明具有如下的优点:
本发明可以借助机器学习模型模拟,学习程序的不同表示来预测程序的行为,实现了轻量级、精确到端到端的信息流跟踪。与传统的使用污点分析工具来跟踪程序的方法相比,本方法有效的节省了程序行为跟踪的时间开销和性能开销。使用本方法训练得到的模型来指导后续的模糊测试、漏洞挖掘等工作,可以大大提高工作效率,节省分析时间。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明实施例中记载的一些实施例,对于本领域普通技术人员来讲,还可以根据这些附图获得其他的附图。
图1为本发明实施例的一种基于机器学习预测程序行为的关键字节提取方法的流程示意图;
图2为本发明实施例的插桩逻辑示意图;
图3为本发明实施例的插桩流程图示意图;
图4为本发明实施例的神经网络模型架构图;
图5为本发明实施例的关键字节示意图。
具体实施方式
结合附图和实施例对本发明作进一步说明,显然,所描述的实施例仅是本发明实施例一部分实施例,而不是全部的实施例。本领域普通技术人员所获得的所有其他实施例,都应当属于本发明实施例保护的范围。
本发明要解决的技术问题如下:
(1)关键字节提取的准确率问题
在使用污点分析进行关键字节提取时,往往会将与程序行为没有数据和控制依赖关系的变量标记为污点,产生误报;如s=a+b,t=s-b,如果b被标记为污点,对于基于规则的传播,通常s和t也会被标记为污点。然而实际上,b并不能影响到t,这种情况会导致输入中过多的字节被定义为关键字节,产生误报;或者,将与程序行为有数据和控制依赖关系的变量未标记为污点变量,产生误报,如if b>1 then a = 5,如果b被标记为污点,且b的值大于1时,由于a未与b发生直接的数据交流,a不会被标记为污点,然而实际上,a的值取决于b,这种情况会导致输入中本应为关键字节的字节被忽略,产生漏报。上述两种情况都影响到了关键字节提取的准确率。
(2)***资源和时间开销过大
在使用污点分析进行关键字节提取时,在不破坏目标程序原有逻辑的基础上***一些采集信息的代码,从而获得程序运行的相关信息。并在原数据的基础上增加一个影子内存来表示寄存器及内存的污染情况。上述方法通过在程序中插桩以获得程序执行中的具体信息,分析精度高,但频繁的插桩操作和影子内存的设计会占用大量的***资源,增加时间开销,随着程序规模的扩大,开销也会呈指数倍增加。
参见图1,本发明提供了一种基于机器学习预测程序行为的关键字节提取方法的实施例;本发明实施例使用了神经网络的机器学习模型,污点分析技术以大量的时间和资源代价来跟踪标记数据在程序中的传播,神经网络可以通过学习程序的不同表示来预测程序的行为,利用梯度分析,计算程序中污点源对污点汇集点的影响,实现轻量级的端到端的信息流跟踪。
整体框架逻辑围绕模型进行展开,主要可分为3个步骤,
步骤1:将输入的种子文件在目标程序上运行,通过模糊测试变异算法生成大量的测试集X,对目标程序进行代码插桩得到程序PI,在程序PI上运行测试集X,得到测试集Y;
模糊测试以提供的种子文件为输入,进行大量的变异操作,检查运行后是否会引起目标程序崩溃、发现新的执行路径等结果。模糊测试的变异操作一般包括如下6种:
表1 模糊测试变异操作
序号 名称 说明 长度变化
1 bitflip 按位翻转,1变0变1 无变化
2 arithmetic 整数加/减算术运算 无变化
3 interet 把一些特殊内容替换到原文件中 无变化
4 dictionary 把自动生成或用户提供的token替换/***到原文件中 有变化
5 havoc 对原文件进行大量变异 有变化
6 splice 将两个文件拼接起来得到一个新的文件 有变化
为了保证测试集X的长度不变,选取bitflip、arithmetic和interet这三种模糊测试变异算法来生成大量的测试集,然后对目标程序进行代码插桩,在插桩后的程序上运行测试集X,得到程序的路径执行情况,收集测试集Y。
代码插桩逻辑如图2所示,在目标程序的汇编代码上中,针对想要观察或处理的指令,在指令前后***执行某些功能的代码。一般可以从指令级、基本块级和函数级3个粒度来进行代码插桩。本专利选择对目标程序进行基本块级的代码插桩。
基本块是一段只有一个入口和一个出口的程序执行语句,函数一般由“CMP”等跳转指令分割成多个基本块,如果一个基本块的第一条指令被执行,说明基本块剩下的指令也将会被执行。与指令级粒度的插桩相比,针对基本块的插桩可以节省时间和缩短程序规模;与函数级粒度的插桩相比,针对基本块的插桩可以提高精确度。针对基本块进行插桩的流程如图 3所示。步骤如下:
1)定义进行***的函数IFunc,IFunc的作用是定义了一个输出函数,***在每个基本块之前,当在程序执行过程中经过了基本块时,会首先调用该函数输出基本块的编号以及该基本块所在的函数;
2)获取目标程序;
3)初始化基本块的编号值num,编号值从1开始;
4)遍历目标程序的函数F
5)遍历函数F中的每一个基本块;
6)调用***的函数IFunc;
7)基本块的编号值num加1;
8)遍历函数结束后,输出程序每个函数对应的基本块数量信息。
使用插桩后的程序执行测试集X,程序会输出执行到了的基本块的位置和信息,由此得到包含程序执行路径信息的测试集Y,为模型的训练提供X-Y数据对的测试集。
步骤2:将测试集X-Y数据对作为训练数据,对神经网络模型进行训练,直至训练得到的神经网络模型能够预测目标程序的行为为止;其中,测试X为神经网络的输入数据,测试集Y为神经网络的标签数据;所述测试集X-Y数据对由测试集X和测试集Y构成;
测试集X为目标程序的输入,测试集Y为目标程序的执行路径,目标程序的输入通常是用户输入、文件或用户隐私字符串,为了方便模型的理解和识别,本方法将这类字节序列转换为范围为[0,255]的有界数值向量。测试集Y中包含的是程序执行过的基本块信息,本方法对这些信息进行处理,用二进制数据规范化执行路径变量,1表示执行了该基本块,0表示未执行过基本块,将测试集Y统一归一化处理为相同长度的01字符串,以保证模型的快速收敛。
本方法采用神经网络构建训练模型,模型由3个完全联通的层构成,分别为输入层、隐藏层和输出层。隐藏层使用ReLU作为4096个隐藏单元的激活函数,输出层使用sigmod作为激活函数来预测变量。
模型通过观察程序执行轨迹中的大量X-Y对来学习信息流的传播过程。该模型以程序输入为模型输入,预测程序执行路径,详细架构如图4所示。给定特定程序的一组具体的输入
Figure SMS_33
和相应的程序执行路径/>
Figure SMS_34
,模型预测执行路径为/>
Figure SMS_35
,公式如下:
Figure SMS_36
(1)
Figure SMS_37
(2)
其中,
Figure SMS_39
表示测试集X中的第i个数据,/>
Figure SMS_42
表示测试集Y中的第i个数据,/>
Figure SMS_45
表示神经网络隐藏层的输出向量,/>
Figure SMS_40
代表ReLU函数,/>
Figure SMS_43
、/>
Figure SMS_46
代表每一层的可训练参数,k表示层的索引号,/>
Figure SMS_47
表示测试数据为/>
Figure SMS_38
时的神经网络模型,/>
Figure SMS_41
表示神经网络模型的可训练权重参数,/>
Figure SMS_44
代表sigmod函数。
训练好神经网络模型之后,本方法将通过构造显著图来分析目标程序中的信息流,详见步骤3。
步骤3:基于训练得到的神经网络模型,构建显著图,并从中提取关键字节;其中,所述关键字节是对目标程序行为造成影响的输入。
关键字节指的是会对目标程序行为造成影响的输入,如图 5所示,红色部分为一个pdf文件的关键字节示意图,假设目标程序的输入x的长度为m,关键字节就是这m长度的数据中,会影响到程序执行路径的部分。本专利使用梯度分析和显著图计算污点数据中的关键字节。显著图是一种基于梯度的归因方法,与其他基于梯度的方法相比,显著图关注的是神经网络输出对每个特征的敏感性,即神经网络输出相对于输入的微小变化是如何变化的。在本方法中,想要通过神经网络推断输入中的哪个字节会影响目标程序的执行路径,即对神经网络的输出产生最大的敏感性,所以选择使用显著图方法。
为了提取关键字节,首先计算训练好的神经网络模型预测的执行路径相对于测试集X的偏导数。设
Figure SMS_48
表示输入/>
Figure SMS_49
在目标程序执行期间,输出变量的值,计算关于给定输入/>
Figure SMS_50
的导数,定义如下:
Figure SMS_51
(3)
其中,X表示神经网络的输入数据,即测试集X,
Figure SMS_52
表示输入/>
Figure SMS_53
中的第n个字节,偏导数/>
Figure SMS_54
构成神经网络函数的雅克比矩阵,矩阵中每个元素表示输出/>
Figure SMS_55
相对于输入
Figure SMS_56
每个字节的梯度。然后,基于神经网络模型的偏导数,构建显著图,显著图/>
Figure SMS_57
为一个向量,其定义如下:
Figure SMS_58
(4)/>
公式中
Figure SMS_59
是/>
Figure SMS_60
在神经网络模型中的预测输出/>
Figure SMS_61
对所有输入中第n个字节的求导和,表示第n个字节对当前执行的程序行为的影响,影响值通过数字表示,数字越大,代表影响越大。使用显著图可以对程序执行信息流进行分析。生成了显著图之后,最后,来提取关键字节,公式如下,/>
Figure SMS_62
表示从向量中选择/>
Figure SMS_63
个最大元素的函数,/>
Figure SMS_64
表示返回所选元素索引的函数:
Figure SMS_65
(5)
其中,
Figure SMS_66
是输入字段中会对目标程序执行路径造成影响的重要字节,即关键字节。
现实世界中大量的程序都是解析器,它们接受指定的文件类型并检查其格式,这类解析器程序的大多数程序行为是有指定输入位置的字节决定的,即文件格式头文件所在的固定位置,而不是由文件内容决定。通过分析了多种文件格式后,发现文件解析类程序的关键字节总数在250到500之间,占总输入字节的5%左右。实际使用时,可选取5%的阈值计算关键字节的
Figure SMS_67
的数量,亦可根据实际情况进行修改。
最后应当说明的是:以上实施例仅用以说明本发明的技术方案而非对其限制,尽管参照上述实施例对本发明进行了详细的说明,所属领域的普通技术人员应当理解:依然可以对本发明的具体实施方式进行修改或者等同替换,而未脱离本发明精神和范围的任何修改或者等同替换,其均应涵盖在本发明的权利要求保护范围之内。

Claims (10)

1.一种基于机器学习预测程序行为的关键字节提取方法,其特征在于,包括以下步骤:
步骤1:将输入的种子文件在目标程序上运行,通过模糊测试变异算法生成大量的测试集X,对目标程序进行代码插桩得到程序PI,在程序PI上运行测试集X,得到测试集Y;
步骤2:将测试集X-Y数据对作为训练数据,对神经网络模型进行训练,直至训练得到的神经网络模型能够预测目标程序的行为为止;其中,测试X为神经网络的输入数据,测试集Y为神经网络的标签数据;所述测试集X-Y数据对由测试集X和测试集Y构成;
步骤3:基于训练得到的神经网络模型,构建显著图,并从中提取关键字节;其中,所述关键字节是对目标程序行为造成影响的输入。
2.根据权利要求1所述的方法,其特征在于,所述步骤1包括:
步骤11:模糊测试以提供的种子文件为输入,在目标程序上运行大量的变异操作,检查运行后是否会引起相关结果;其中,所述相关结果包括目标程序崩溃、发现新的执行路径;
步骤12:对目标程序进行基本块级代码插桩,得到程序PI,在程序PI上运行测试集X,得到目标程序的执行路径,即测试集Y。
3.根据权利要求2所述的方法,其特征在于,在步骤11中,为保证测试集X的长度不变,选取bitflip、arithmetic和interet这三种模糊测试变异算法来生成大量的测试集X。
4.根据权利要求2所述的方法,其特征在于,所述步骤12包括:
步骤121:定义进行***的函数IFunc,***在每个基本块之前,当在目标程序执行过程中经过基本块时,首先调用函数IFunc输出基本块的编号以及该基本块所在的函数;
步骤122:获取目标程序;
步骤123:初始化基本块的编号值num,编号值从1开始;
步骤124:遍历目标程序的函数F;
步骤125:遍历函数F中的每一个基本块;
步骤126:调用***的函数IFunc;
步骤127:基本块的编号值num加1;
步骤128:判断函数F遍历是否结束,若未结束,则执行步骤125,若结束,则执行步骤129;
步骤129:使用程序PI执行测试集X,程序PI输出执行到的基本块的位置、编号以及其所在的文件名,得到目标程序的执行路径,即测试集Y。
5.根据权利要求1所述的方法,其特征在于,在所述步骤2中:
神经网络模型通过观察目标程序执行轨迹中的大量测试集X-Y数据对,以学习不同输入在目标程序中的数据流传播过程,模拟目标程序的处理逻辑;所述神经网络模型以程序输入为模型输入,预测目标程序的执行路径。
6.根据权利要求5所述的方法,其特征在于,给定所述测试集X-Y数据对中的
Figure QLYQS_1
和相应的目标程序执行路径/>
Figure QLYQS_2
时,神经网络模型的输出为/>
Figure QLYQS_3
Figure QLYQS_4
(1)
Figure QLYQS_5
(2)/>
其中,
Figure QLYQS_7
表示测试集X中的第i个数据,/>
Figure QLYQS_10
表示测试集Y中的第i个数据,/>
Figure QLYQS_14
表示神经网络隐藏层的输出向量,/>
Figure QLYQS_8
代表ReLU函数,/>
Figure QLYQS_11
、/>
Figure QLYQS_13
代表每一层的可训练参数,k表示层的索引号,
Figure QLYQS_15
表示测试数据为/>
Figure QLYQS_6
时的神经网络模型,/>
Figure QLYQS_9
表示神经网络模型的可训练权重参数,/>
Figure QLYQS_12
代表sigmod函数。
7.根据权利要求1-6任一项所述的方法,其特征在于,所述神经网络模型包括输入层、隐藏层和输出层;输入层通过隐藏层与输出层连接。
8.根据权利要求6所述的方法,其特征在于,所述步骤3包括:
步骤31:计算训练好的神经网络模型预测的执行路径相对于测试集X的偏导数;
步骤32:基于所述偏导数,构建显著图;
步骤33:从所述显著图中提取关键字节。
9.根据权利要求8所述的方法,其特征在于,所述步骤31具体为:
F
Figure QLYQS_16
)表示输入/>
Figure QLYQS_17
在目标程序执行期间,输出变量的值,计算输入/>
Figure QLYQS_18
的导数,定义如下:
Figure QLYQS_19
(3)
其中,X表示神经网络的输入数据,即测试集X,
Figure QLYQS_20
表示输入/>
Figure QLYQS_21
中的第n个字节,偏导数
Figure QLYQS_22
构成神经网络函数的雅克比矩阵,矩阵中每个元素表示输出/>
Figure QLYQS_23
相对于输入/>
Figure QLYQS_24
每个字节的梯度。
10.根据权利要求9所述的方法,其特征在于,所述步骤32具体为:
显著图
Figure QLYQS_25
的定义如下:
Figure QLYQS_26
(4)
其中,
Figure QLYQS_27
是/>
Figure QLYQS_28
在神经网络模型中的预测输出/>
Figure QLYQS_29
对所有输入/>
Figure QLYQS_30
中第n个字节的求导和,表示第n个字节对当前执行的目标程序行为的影响,其数值越大,代表影响越大;
所述步骤33具体为:
Figure QLYQS_31
(5)
其中,
Figure QLYQS_32
是输入字段中会对目标程序执行路径造成影响的重要字节,即关键字节;top_k表示从向量中选择k个最大元素的函数,arg表示返回所选元素索引的函数。/>
CN202310195368.7A 2023-03-03 2023-03-03 一种基于机器学习预测程序行为的关键字节提取方法 Pending CN115878498A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202310195368.7A CN115878498A (zh) 2023-03-03 2023-03-03 一种基于机器学习预测程序行为的关键字节提取方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202310195368.7A CN115878498A (zh) 2023-03-03 2023-03-03 一种基于机器学习预测程序行为的关键字节提取方法

Publications (1)

Publication Number Publication Date
CN115878498A true CN115878498A (zh) 2023-03-31

Family

ID=85761904

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202310195368.7A Pending CN115878498A (zh) 2023-03-03 2023-03-03 一种基于机器学习预测程序行为的关键字节提取方法

Country Status (1)

Country Link
CN (1) CN115878498A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116775127A (zh) * 2023-05-25 2023-09-19 哈尔滨工业大学 一种基于RetroWrite框架的静态符号执行插桩方法

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103440201A (zh) * 2013-09-05 2013-12-11 北京邮电大学 动态污点分析装置及其在文件格式逆向解析中的应用
CN112463638A (zh) * 2020-12-11 2021-03-09 清华大学深圳国际研究生院 基于神经网络的模糊测试方法及计算机可读存储介质

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103440201A (zh) * 2013-09-05 2013-12-11 北京邮电大学 动态污点分析装置及其在文件格式逆向解析中的应用
CN112463638A (zh) * 2020-12-11 2021-03-09 清华大学深圳国际研究生院 基于神经网络的模糊测试方法及计算机可读存储介质

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
DONGDONG SHE等: "Neutaint: Efficient Dynamic Taint Analysis with Neural Networks", 《2020 IEEE SYMPOSIUM ON SECURITY AND PRIVACY (SP)》 *

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116775127A (zh) * 2023-05-25 2023-09-19 哈尔滨工业大学 一种基于RetroWrite框架的静态符号执行插桩方法
CN116775127B (zh) * 2023-05-25 2024-05-28 哈尔滨工业大学 一种基于RetroWrite框架的静态符号执行插桩方法

Similar Documents

Publication Publication Date Title
CN112733137B (zh) 一种面向漏洞检测的二进制代码相似性分析方法
US7340475B2 (en) Evaluating dynamic expressions in a modeling application
CN109977682A (zh) 一种基于深度学习的区块链智能合约漏洞检测方法及装置
CN111125716A (zh) 一种以太坊智能合约漏洞检测方法及装置
CN105808438B (zh) 一种基于函数调用路径的测试用例复用方法
CN114297654A (zh) 一种源代码层级的智能合约漏洞检测方法及***
CN110162972B (zh) 一种基于语句联合编码深度神经网络的uaf漏洞检测方法
CN110096439A (zh) 一种面向solidity语言的测试用例生成方法
CN112364352A (zh) 可解释性的软件漏洞检测与推荐方法及***
CN115878498A (zh) 一种基于机器学习预测程序行为的关键字节提取方法
CN115455382A (zh) 一种二进制函数代码的语义比对方法及装置
CN116150757A (zh) 一种基于cnn-lstm多分类模型的智能合约未知漏洞检测方法
WO1999023555A1 (en) Method for the generation of isa simulators and assemblers from a machine description
CN116305158A (zh) 一种基于切片代码依赖图语义学习的漏洞识别方法
CN113127933A (zh) 一种基于图匹配网络的智能合约庞氏骗局检测方法及***
CN116340952A (zh) 一种基于操作码程序依赖图的智能合约漏洞检测方法
CN115033895A (zh) 一种二进制程序供应链安全检测方法及装置
CN117573142B (zh) 基于模拟执行的java代码反混淆器
CN116702157B (zh) 一种基于神经网络的智能合约漏洞检测方法
CN110162472A (zh) 一种基于fuzzing测试的测试用例生成方法
Zhao et al. Suzzer: A vulnerability-guided fuzzer based on deep learning
CN117725592A (zh) 一种基于有向图注意力网络的智能合约漏洞检测方法
CN117591913A (zh) 基于改进的R-Transformer的语句级软件缺陷预测方法
CN110955892B (zh) 一种基于机器学习和电路行为级特征的硬件木马检测方法
CN116910753A (zh) 一种恶意软件检测和模型构建方法、装置、设备及介质

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
RJ01 Rejection of invention patent application after publication
RJ01 Rejection of invention patent application after publication

Application publication date: 20230331