CN114969755A - 一种跨语言的未知可执行程序二进制漏洞分析方法 - Google Patents
一种跨语言的未知可执行程序二进制漏洞分析方法 Download PDFInfo
- Publication number
- CN114969755A CN114969755A CN202210578652.8A CN202210578652A CN114969755A CN 114969755 A CN114969755 A CN 114969755A CN 202210578652 A CN202210578652 A CN 202210578652A CN 114969755 A CN114969755 A CN 114969755A
- Authority
- CN
- China
- Prior art keywords
- vulnerability
- program
- language
- executable program
- unknown
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/57—Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
- G06F21/577—Assessing vulnerabilities and evaluating computer system security
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/30—Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
- G06F16/35—Clustering; Classification
- G06F16/353—Clustering; Classification into predefined classes
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/41—Compilation
- G06F8/42—Syntactic analysis
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/53—Decompilation; Disassembly
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/045—Combinations of networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/048—Activation functions
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2221/00—Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/03—Indexing scheme relating to G06F21/50, monitoring users, programs or devices to maintain the integrity of platforms
- G06F2221/033—Test or assess software
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Software Systems (AREA)
- General Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Computing Systems (AREA)
- General Health & Medical Sciences (AREA)
- Mathematical Physics (AREA)
- Computational Linguistics (AREA)
- Molecular Biology (AREA)
- Biophysics (AREA)
- Biomedical Technology (AREA)
- Artificial Intelligence (AREA)
- Evolutionary Computation (AREA)
- Life Sciences & Earth Sciences (AREA)
- Health & Medical Sciences (AREA)
- Computer Hardware Design (AREA)
- Computer Security & Cryptography (AREA)
- Databases & Information Systems (AREA)
- Debugging And Monitoring (AREA)
Abstract
本发明涉及一种跨语言的未知可执行程序二进制漏洞分析方法,属于计算机安全领域,包括对已知漏洞样本进行动静态分析结合,基于机器学习构建不同语言对应的漏洞特征库,进而对比确定未知程序的特征以及编写语言,未知程序可分为远程未知二进制可执行程序(不可静态分析),以及本地未知二进制程序,再利用特定语言对应的样本数据对未知程序进行特定类型的漏洞测试,以提高漏洞挖掘的效率。
Description
技术领域
本发明属于计算机安全领域,涉及一种跨语言的未知可执行程序二进制漏洞分析方法。
背景技术
计算机高级语言编译为可执行文件后,如果对可执行程序进行加壳或代码混淆,很难通过一般的方式判断其语言种类,很大程度上使基于反编译器的静态分析难度增大。
同时当分析样本为远程的服务器上的可执行文件时,由于无法获取目标程序的二进制文件,导致对程序进行静态分析可能性几乎为零。
因此,我们提出一种跨语言的针对未知可执行程序的二进制漏洞分析方法,主要对未知可执行程序进行模糊测试,并与基于机器学习的动静态分析结合构建的不同语言对应的漏洞特征库对比,确定未知程序的特征以及编写语言,再利用特定语言对应的样本数据对未知程序进行特定类型的漏洞测试,以提高漏洞挖掘的效率。
由于需要提取不同语言特定漏洞的特征,我们分析了C语言以及Java语言等常见语言的多发漏洞,归纳总结出其内在特征,并且通过动静结合的方式将特征进行提取。
如C语言常见漏洞--缓冲区溢出:C语言缺少对数组下标越界的检查,当计算机向缓冲区填充数据时超过了缓冲区的容量,就会占用相邻的存储空间,有时会覆盖其他存储单元的内容。常见错误包括但不限于以下几种:
在数组使用中,经常会出现下标错误导致‘多1’或者‘少1’的一字节溢出问题。
在C语言中,字符串是以‘\0’来结束的,在这种情况下容易造成缓冲区溢出。
库函数中还有一些涉及字符串操作的函数等容易造成缓冲区溢出。该类漏洞是很典型的控制流相关的,所以可以采用静态分析中的流敏感语义分析方法进行检测。
C语言常见漏洞--指针的非法使用:C语言允许对内存直接操作,在提高了工作效率的同时,也大大增加了风险。因此指针使用稍有不慎,就会导致程序出错乃至崩溃。常见错误包括但不限于以下几种:
若C语言中,指针在没有对其初始化之前就开始引用,那么它的指向是随机的,容易出现引用错误,导致程序崩溃。
使用已释放的指针。在使用free()释放动态申请的内存空间时,释放掉的只是指针指向的一片内存空间,而并没有释放其对应的指针。此时指针的地址没有改变,指向的是一片不合法的内存空间。
在一个函数体内,使用malloc()动态申请内存,在函数结束调用时,有可能忘记用free()释放掉内存。这会导致内存空间一直处于占用状态,从而导致其他函数无法使用。随着程序不断运行,内存空间越来越少,直至系统宕机。在动态申请分配内存时,malloc()与free()必须成对出现,否则将发生内存泄漏。
如Java易发漏洞介绍--反序列化漏洞。Java提供一种对象序列化的机制,一个对象可以被表示为一个字节序列,来序列化包括对象的数据,类型信息等,以便保存在内存,文件,数据库中。
Java序列化和反序列化本身不存在问题,但是如果Java对攻击者输入,即不可信或恶意构造的数据做了反序列化处理,那么就可能产生非预期的对象,有概率导致任意代码执行。
本发明进行特征提取主要运用到的技术如下:
静态分析。通过反汇编技术,对程序的静态特征进行分析,包括程序的函数调用,数据流控制,代码语义等信息,从而获取程序的静态特征,继而通过模式匹配,挖掘程序漏洞。
主要的匹配方式如下:
同源性分析。利用同源性分析的方式分析程序反汇编代码是否与已知漏洞库中的漏洞代码同源。该方法重点比较了目标程序与漏洞库中程序的汇编代码相似性,结合汇编程序的语义特征,主要应用于不同架构的二进制程序的静态分析。但是局限之处在于无法对于程序漏洞进行定位,因此通常与基于控制流图的方法相结合进行。
控制流图分析。获取程序的控制流图,对于其结构进行分析,通常结合图论中的同构问题来进行图匹配,通过图匹配判断目标程序是否与漏洞库相似,从而进行漏洞挖掘。
动态分析。主要步骤为对目标程序进行模糊测试,收集致使程序异常中断的输入信号或程序异常中断时对于异常输入做出的响应。
发明内容
有鉴于此,本发明的目的在于通过动静结合的漏洞特征分析,对未知二进制可执行文件进行其编写语言的分类,再根据不同语言的漏洞特征对于可执行文件进行下一轮模糊测试,有利于提高模糊测试的效率。
为达到上述目的,本发明提供如下技术方案:
通过模糊测试获取程序的漏洞或编写语言等相关信息,建立不同语言对应特征的样本分析库,并将获得的信息与分析库进行对比,确认编写程序时使用的计算机语言。
建立不同语言对应漏洞特征的样本分析库,利用漏洞样本库,再次对目标程序进行基于特定语言漏洞特征的有针对性的测试,进一步分析程序漏洞。本方法使用的样本分析库建立具体步骤如下:
本方法建立的基于语言的漏洞特征分析库分为动态漏洞分析库以及静态漏洞分析库两个大类,其中又以不同语言为单位细分成不同分支,如C语言漏洞特征库,Java语言漏洞特征库等。
动态漏洞特征库主要用于处理远程未知二进制可执行程序,而静态漏洞特征库主要用于处理本地未知二进制可执行程序。
以下是本方法建立基于动态分析的漏洞分析库的具体步骤:
确定已知漏洞类型及语言种类的样本程序,对其进行基于编写语言的分类后,分别对不同语言的样本程序采用模糊测试技术,提供非预期的输入并监视异常结果,其主要分为两个部分,一个是目标程序的执行与跟踪,另一个是测试样例的生成。这部分包括每次测试中从种子队列中选择合适的种子,再根据不同的种子变异策略产生畸形输入供目标程序执行。每轮模糊测试结束后,如果覆盖新路径则将本次输入保存到种子池中去,否则丢弃本次输入,最后结束一轮测试,准备下一轮测试。持续循环这样的流程直到在某次测试中程序发生异常崩溃或发生错误,记录触发崩溃的输入然后继续循环,在循环结束后收集导致程序异常中止的输入数据或报错信息。
对于上述数据,利用机器学习建立对应的特征库。
以下是本方法建立基于静态分析的漏洞分析库的具体步骤:
提取不同语言的漏洞样本的危险代码特征,本方法使用的步骤如下:
对于不同的计算机语言,生成可执行文件需要使用对应不同语言的编译器,从而将高级语言转化为机器可以识别的机器码。而汇编语言介于机器码与高级语言之间,具有可读性且符合该语言基本特征。
因此,我们提出一种新的基于编译语法规则的提取计算机语言特征的方法,将二进制文件进行反汇编后,生成汇编代码,提取编译过程中编译器使用的语法规则,进行语言特征的提取。
收集上步骤的语言特征数据,使用机器学习建立语言特征库。
附图说明
为了使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明作详细描述,其中:
图1是未知二进制可执行程序处理流程。
图2是静态可执行程序漏洞提取流程
图3是目标程序测试流程
图4是模糊测试的具体执行过程
图5是本发明的总体程序结构示意图。
图6为深度学习模型流程。
具体实施方式
提取漏洞静态代码特征,进而采用特征匹配的方法对漏洞进行定位。本方法采用的代码漏洞特征库的构建如下:
对于不同的计算机语言,生成可执行文件需要使用对应不同语言的编译器,从而将高级语言转化为机器可以识别的机器码。而汇编语言介于机器码与高级语言之间,具有可读性且符合该语言基本特征。
因此,我们提出一种新的基于编译语法规则的提取计算机语言特征的方法,对含有特定漏洞的二进制程序进行反汇编。
生成汇编代码,提取编译过程中编译器使用的语法规则,进行语言特征的提取。在对大量漏洞样本分析及漏洞触发机理刻画的基础上,据此进一步分析出其相关属性信息描述。
收集以上步骤的语言特征数据,使用机器学习建立语言特征库。并根据模型,进行特征检测。首先建立不安全函数特征库,用作后续匹配识别。其次遍历函数调用图,获取所有函数的调用点起始地址以及其他信息,并与已建立的不安全函数库进行匹配。若匹配成功则该函数可能会引发缓冲区漏洞。
收集匹配成功的调用信息,使用神经网络学习其语义特征,建立静态漏洞分类模型。
对于上述样本,利用模糊测试二次动态分析,提取特征样本,使用神经网络学习其语义特征,建立动态漏洞分类模型。
整理样本,对不同代码语言编写的样本程序的漏洞特征进行分类,将程序的语言特征与漏洞特征关联,建立基于语言特征的漏洞特征库。
确定需要检测的目标未知二进制程序,确认其类型为本地未知二进制可执行程序或远程未知二进制可执行程序。
若为本地未知二进制可执行程序,则利用静态分析提取其代码特征,并基于机器学习的技术与建立的静态漏洞特征库对比。
若为远程未知二进制可执行程序,则对其进行两轮模糊测试,获取漏洞类型。
具体实施的步骤如下:
通过模糊测试得到目标程序的Crash log。若无法获得目标二进制可执行程序所在服务器的具体文件,则选择致使程序异常中断的输入信息。
通过机器学习(贝叶斯网络、随机森林等)算法推测目标程序使用的源语言类型,或者用普适性聚类算法(K-Means、DBSCAN、Agglomerative等)将具有相同语言类型的Crashlog或输入数据聚类,并与漏洞特征库对比以确定漏洞类型,具体实现方式如下:
S101:选择目标程序,并监控目标程序状态;
S102:循环模糊测试中智能构造Fuzzing数据不断测试目标程序,若异常报错则收集目标程序产生的Crash log或输入数据然后Fuzzing输入变异、进入下一轮循环;
S103:在程序动态运行时,跟踪计算程序执行时的路径约束表达式,对不同路径约束条件中的某个分支条件进行取反,生成新的路径条件从而用约束求解器求解;
S104:收集目标程序所有测试的Crash log或输入数据提取漏洞特征向量。
S105:将特征向量输入漏洞特征库,判定目标程序使用的开发语言之后,执行对应的漏洞特征检测算法规则,经过机器学习得到的模型推测漏洞的具体类型。
具体的模糊测试步骤见图5,在构造Fuzzing步骤中,对目标程序原始的二进制代码或可执行文件进行插桩,将修改部分的二进制代码生成的文件副本存储在新的内存区域中,在模糊测试时仅执行修改部分的目标代码。目标程序经过每一个模糊测试循环体,主要包括四个过程:程序执行、异常检测、Fuzzing输入变异、记录异常。在循环体之内,首先会将上一轮变异后的Fuzzing输入作为这一轮程序执行的输入,在程序执行过程中,检测是否发生异常,如未有异常发生,则对这一轮程序的Fuzzing输入进行变异,进入下一轮循环;如有异常发生,则对这一轮程序的输入进行记录,记录之后再对输入进行变异,进入下一轮循环。
记录Crash log或输入数据后通过符号执行,动态计算程序运行时路径的约束表达式,求解新的路径条件获得新分支,这些新的分支极有可能未被模糊测试探索到,因此加入到模糊测试的队列中,在之后通过Fuzzing对新路径生成的有针对性样本进行测试。
收集的Crash log或输入数据通常是一些字符的集合,因此使用离散化编码方式对某些特征使用Word2Vec算法生成特征化向量;通过机器学习或深度学习等推测漏洞的具体类型,如栈溢出漏洞(Stack-Overflow)、堆溢出漏洞(Heap-Overflow)、释放后重引用漏洞(Use-after-Free)、双重释放漏洞(Double-Free)、越界访问漏洞(Out-of-Bounds)等;具体的实现方式如下:
提取程序运行时动态特征,通过Word2Vec算法进行特征向量化。
通过深度学习进行文本分类得到分类结果。
二进制漏洞检测可以认为是一种文本分类任务,因此在Word2Vec算法中选用Skip-Gram模型,目的是学习底层语言词与词之间,即每条底层语言指令中的上下文关系。对于文本分类问题,使用文本卷积就可达到很高的预测正确率,漏洞特征检测深度学习模型实现如下:
嵌入层:用随机权重进行初始化,并将学习训练数据集中所有单词嵌入;
激活函数:采用ReLU能够有效缓解梯度消失问题,从而直接以监督的方式训练深度祌经网络,无需依赖无监督的逐层预训练;
丢弃层:训练过程中每次更新参数时按一定概率随机断开输入神经元。
优化器:采用梯度下降的一类优化算法;
嵌入层是要从数据中自动学习到分布式表示,将样本序列的每个数据投影到固定维度的向量空间中,每个数据由一个固定维度的词向量表示,即原先输入的维度为[样本个数,序列长度],经过嵌入层后,变为[样本个数,序列长度,词向量维度];
激活函数的作用主要是提供非线性建模能力与传统的Sigmoid激活函数相比,ReLU能够有效缓解梯度消失问题;丢弃层这种方式可以认为是一种模型平均,不同的样本就对应不同的模型从而能有效地避免过拟合问题;优化器选用Adam优化器。
Adam本质上是带有动量项的RMSproop优化器,它利用梯度的一阶矩估计和二阶矩估计动态调整每个参数的学习率,适用于大多非凸优化,以及大数据集和高维空间。
通过第一轮模糊测试,保存测试结果,将可执行文件以语言特征分类,准备进行第二轮模糊测试。
确定目标文件,监控文件状态,进行第二轮模糊测试主循环。
若收到中止信号,则结束模糊测试,记录并保存执行结果,结束流程。
将测试结果通过深度学习进行文本分类得到分类结果。
将特征向量输入漏洞特征库,通过判定目标程序使用的开发语言、执行对应的漏洞特征检测算法规则并对比通过机器学习得到的漏洞特征库,推测漏洞的具体类型。
本文中应用了具体实施例对本文的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本文的方法及其核心思想;同时,对于本领域的一般技术人员,依据本文的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本文的限制。
Claims (11)
1.一种跨语言的未知可执行程序二进制漏洞分析方法,其特征在于:提取漏洞静态代码特征,进而采用特征匹配的方法对漏洞进行定位。对含有特定漏洞的二进制程序进行反汇编,将其汇编代码转换为中间表示(Intermediate Representations,IR)。在对大量漏洞样本分析及漏洞触发机理刻画的基础上,据此进一步分析出其相关属性信息描述。提取程序反汇编代码中的不安全函数调用,构建静态特征模型。
2.根据权利要求1所述的一种跨语言的未知可执行程序二进制漏洞分析方法,其特征在于:根据模型,进行特征检测。首先建立不安全函数特征库,用作后续匹配识别。其次遍历函数调用图,获取所有函数的调用点起始地址以及其他信息,并与已建立的不安全函数库进行匹配。若匹配成功则该函数可能会引发缓冲区漏洞。
3.根据权利要求1所述的一种跨语言的未知可执行程序二进制漏洞分析方法,其特征在于:收集匹配成功的调用信息,使用机器学习学习其语义特征,建立静态漏洞分类模型。
4.根据权利要求1所述的一种跨语言的未知可执行程序二进制漏洞分析方法,其特征在于:对于上述样本,利用模糊测试动态分析,提取特征样本,使用神经网络学习其语义特征,建立基于程序运行后Crash log或引发程序中断、崩溃的异常输入的动态漏洞分类模型。
5.根据权利要求1所述的一种跨语言的未知可执行程序二进制漏洞分析方法,其特征在于:整理样本,基于不同代码语言对样本程序的漏洞特征进行分类,将程序的语言特征与漏洞特征关联,建立基于语言特征的漏洞特征库。
6.根据权利要求1所述的一种跨语言的未知可执行程序二进制漏洞分析方法,其特征在于:确定需要检测的目标未知二进制可执行程序,将程序分类为远程未知二进制可执行程序和本地未知二进制可执行程序。
7.根据权利要求1所述的一种跨语言的未知可执行程序二进制漏洞分析方法,其特征在于:对于远程未知二进制可执行程序,通过模糊测试、符号执行、Fuzzing等得到目标程序的Crash log或引发程序中断、崩溃的异常输入。
8.根据权利要求1所述的一种跨语言的未知可执行程序二进制漏洞分析方法,其特征在于:通过机器学习算法推测目标程序使用的源语言类型,或者普适性聚类算法(K-Means、DBSCAN、Agglomerative等)将具有相同语言类型的Crash log引发程序中断、崩溃的异常输入聚类,并与漏洞特征库对比以确定漏洞类型。
9.根据权利要求1所述的一种跨语言的未知可执行程序二进制漏洞分析方法,其特征在于:记录Crash log或引发程序中断、崩溃的异常输入后,通过符号执行,动态计算程序运行时路径的约束表达式,求解新的路径条件获得新分支,这些新的分支极有可能未被模糊测试探索到,因此加入到模糊测试的队列中,在之后通过Fuzzing对新路径生成有针对性样本后进行测试。
10.根据权利要求1所述的一种跨语言的未知可执行程序二进制漏洞分析方法,其特征在于:收集的Crash log或引发程序中断、崩溃的异常输入通常是一些字符的集合,因此使用离散化编码方式对某些特征进行One-Hot、Label Encoding编码提取特征向量;通过机器学习或深度学习等方法推测漏洞的具体类型,如栈溢出漏洞(Stack-Overflow)、堆溢出漏洞(Heap-Overflow)、释放后重引用漏洞(Use-after-Free)、双重释放漏洞(Double-Free)、越界访问漏洞(Out-of-Bounds)等。
11.根据权利要求1所述的一种跨语言的未知可执行程序二进制漏洞分析方法,其特征在于:对于本地二进制可执行程序,利用静态分析的方式,提取其代码以及语言特征,将其以不同语言分类后,对其进行危险代码特征的分析,并与建立的不同语言静态漏洞特征库进行对比,确定可执行程序漏洞类型。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210578652.8A CN114969755A (zh) | 2022-05-26 | 2022-05-26 | 一种跨语言的未知可执行程序二进制漏洞分析方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210578652.8A CN114969755A (zh) | 2022-05-26 | 2022-05-26 | 一种跨语言的未知可执行程序二进制漏洞分析方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114969755A true CN114969755A (zh) | 2022-08-30 |
Family
ID=82955292
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210578652.8A Pending CN114969755A (zh) | 2022-05-26 | 2022-05-26 | 一种跨语言的未知可执行程序二进制漏洞分析方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114969755A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112507292A (zh) * | 2020-12-09 | 2021-03-16 | 重庆邮电大学 | 一种支持运行环境检测及完整性检测的加壳保护方法 |
CN116501378A (zh) * | 2023-06-27 | 2023-07-28 | 武汉大数据产业发展有限公司 | 一种逆向工程还原源代码的实现方法、装置和电子设备 |
-
2022
- 2022-05-26 CN CN202210578652.8A patent/CN114969755A/zh active Pending
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112507292A (zh) * | 2020-12-09 | 2021-03-16 | 重庆邮电大学 | 一种支持运行环境检测及完整性检测的加壳保护方法 |
CN112507292B (zh) * | 2020-12-09 | 2024-01-26 | 重庆邮电大学 | 一种支持运行环境检测及完整性检测的加壳保护方法 |
CN116501378A (zh) * | 2023-06-27 | 2023-07-28 | 武汉大数据产业发展有限公司 | 一种逆向工程还原源代码的实现方法、装置和电子设备 |
CN116501378B (zh) * | 2023-06-27 | 2023-09-12 | 武汉大数据产业发展有限公司 | 一种逆向工程还原源代码的实现方法、装置和电子设备 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Tann et al. | Towards safer smart contracts: A sequence learning approach to detecting security threats | |
Dam et al. | A deep tree-based model for software defect prediction | |
Dam et al. | Automatic feature learning for predicting vulnerable software components | |
Dam et al. | Automatic feature learning for vulnerability prediction | |
Saccente et al. | Project achilles: A prototype tool for static method-level vulnerability detection of Java source code using a recurrent neural network | |
CN112800423B (zh) | 一种二进制代码授权漏洞检测方法 | |
Ghadhab et al. | Augmenting commit classification by using fine-grained source code changes and a pre-trained deep neural language model | |
WO2017181286A1 (en) | Method for determining defects and vulnerabilities in software code | |
Lee et al. | Classifying false positive static checker alarms in continuous integration using convolutional neural networks | |
CN114969755A (zh) | 一种跨语言的未知可执行程序二进制漏洞分析方法 | |
Koc et al. | An empirical assessment of machine learning approaches for triaging reports of a java static analysis tool | |
Palahan et al. | Extraction of statistically significant malware behaviors | |
CN111475820A (zh) | 基于可执行程序的二进制漏洞检测方法、系统及存储介质 | |
Yang et al. | Aspect-based api review classification: How far can pre-trained transformer model go? | |
Cao et al. | Rule-based specification mining leveraging learning to rank | |
Rabin et al. | Syntax-guided program reduction for understanding neural code intelligence models | |
Demırcı et al. | Static malware detection using stacked bilstm and gpt-2 | |
Partenza et al. | Automatic identification of vulnerable code: Investigations with an ast-based neural network | |
CN116578980A (zh) | 基于神经网络的代码分析方法及其装置、电子设备 | |
Kim et al. | Predictive mutation analysis via the natural language channel in source code | |
Alrabaee et al. | CPA: Accurate cross-platform binary authorship characterization using LDA | |
Huo et al. | EvLog: Identifying Anomalous Logs over Software Evolution | |
Zhao et al. | Suzzer: A vulnerability-guided fuzzer based on deep learning | |
Nguyen et al. | An information-theoretic and contrastive learning-based approach for identifying code statements causing software vulnerability | |
Zhang et al. | A novel approach of data race detection based on CNN-BiLSTM hybrid neural network |
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 |