CN112733137B - 一种面向漏洞检测的二进制代码相似性分析方法 - Google Patents
一种面向漏洞检测的二进制代码相似性分析方法 Download PDFInfo
- Publication number
- CN112733137B CN112733137B CN202011555496.0A CN202011555496A CN112733137B CN 112733137 B CN112733137 B CN 112733137B CN 202011555496 A CN202011555496 A CN 202011555496A CN 112733137 B CN112733137 B CN 112733137B
- Authority
- CN
- China
- Prior art keywords
- instruction
- binary
- vector
- binary file
- vulnerability
- 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.)
- Active
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/55—Detecting local intrusion or implementing counter-measures
- G06F21/56—Computer malware detection or handling, e.g. anti-virus arrangements
- G06F21/562—Static detection
- G06F21/563—Static detection by source code analysis
-
- 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
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/41—Compilation
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Computer Security & Cryptography (AREA)
- Computer Hardware Design (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computing Systems (AREA)
- Health & Medical Sciences (AREA)
- General Health & Medical Sciences (AREA)
- Virology (AREA)
- Stored Programmes (AREA)
Abstract
本发明是一种面向漏洞检测的二进制代码相似性分析方法。本发明涉及漏洞检测技术领域,本发明选定源代码漏洞库;将源代码漏洞库中代码进行编译,形成二进制文件;根据得到的二进制文件,通过词嵌入模型对二进制文件进行训练,生成指令的嵌入向量;对指令嵌入向量进行分析,生成基本块嵌入向量;对生成的基本块嵌入向量进行相似性检测,确定二进制文件是否包含漏洞。本发明通过采用不同的优化级别和编译选项将漏洞库中源代码编译为二进制文件,以提高检测的准确度和覆盖率。
Description
技术领域
本发明涉及漏洞检测技术领域,是一种面向漏洞检测的二进制代码相似性分析方法。
背景技术
在静态分析领域中,BinDiff是商用二进制区分工具,它对调用图和控制流图(CFG)执行多对多图同构检测,并利用启发式(例如,函数名、图边MD索引)来匹配函数和基本块。其他基于静态分析的技术对生成的控制和数据流图执行匹配或将图形分解成片段。这些方法大多只考虑指令的语法,而不考虑语义,这在分析过程中非常关键,尤其是在处理不同的编译器优化技术时。而且像匈牙利算法这样的图匹配算法价格昂贵,不能保证最优匹配。
另一个研究领域是动态分析。这些技术通过直接执行给定的代码,对给定的二进制文件执行动态切片或污染,并基于执行期间收集的信息检查语义级别的等价性来执行分析。一般来说,这些技术擅长提取代码的语义,并对编译器优化和代码混淆具有良好的弹性,但由于动态分析的性质,其通常具有较差的可扩展性和不完整的代码覆盖。
利用机器学习的进步来解决二进制相似性问题。已经提出了各种利用图表示学习技术,并将代码信息结合到嵌入中(即高维数值向量)。然后使用这些嵌入进行相似性检测。还有方法进一步依赖NLP技术来自动提取语义信息并为区分生成嵌入。与传统的静态和动态方法相比,这些方法有两个主要优势:1)更高的准确性,因为它们通过使用手动工程特征或基于深度学习的自动方法将代码的独特特征结合到分析中;2)更好的可扩展性,因为它们避免了繁重的图形匹配算法或动态执行。更重要的是,GPU可以显著加快学习过程。现有的基于学习的二进制相似性检测技术虽然取得了一些效果,但是仍然存在没有一些局限性:1)没有能够在细粒度的基本块级别上执行有效的程序范围的二进制区分。2)没有在分析过程中同时考虑程序范围的依赖信息和基本块语义信息。而本方法针对于上述不足进行改进,在细粒度的基本块上执行二进制相似性检测并结合上下文信息。
发明内容
本发明为通过检测给定的二进制文件中是否含有指定源代码漏洞库中所包含的漏洞,本发明适用于二进制代码相似性分析允许在不访问相应源代码的情况下分析二进制代码。它广泛用于漏洞发现、代码克隆检测、用户端崩溃分析等,本发明提供了一种面向漏洞检测的二进制代码相似性分析方法,本发明提供了以下技术方案:
一种面向漏洞检测的二进制代码相似性分析方法,包括以下步骤:
步骤1:选定源代码漏洞库;
步骤2:将源代码漏洞库中代码进行编译,形成二进制文件;
步骤3:根据得到的二进制文件,通过词嵌入模型对二进制文件进行训练,生成指令的嵌入向量;
步骤4:对指令嵌入向量进行分析,生成基本块嵌入向量;
步骤5:对生成的基本块嵌入向量进行相似性检测,确定二进制文件是否包含漏洞。
优选地,所述步骤1中选用OpenSSL作为源代码漏洞库。
优选地,所述步骤2具体为:将源代码漏洞库中代码通过不同的优化级别和编译选项编译成对应的二进制文件。
优选地,所述步骤3具体为:
步骤3.1:利用词嵌入模型对二进制文件进行训练,生成指令的嵌入向量,一个汇编指令是由一个操作码和两个操作数组成的序列:ins=Opcode,Operand1,Operand2;空操作数由特殊标记EMPTY代替,所有操作码和操作数组成一个集合,每个操作码和操作数都被分配一个索引号;一条指令抽象为三个整数的序列,其中每个整数代表一个操作码或操作数的索引,一个基本块是一个汇编指令序列b=ins1,ins2,...,insn,即包含三个有序整数的序列;
一个汇编函数是一组基本块f={b1,b2,...,bm},当两个汇编函数对所有的输入产生完全相同的输出,那么就是相同的;
步骤3.2:基于PV-DM模型设计的词嵌入模型,PV-DM模型基于文档中的标记学习文档表示,文档是按顺序布局的,通过汇编函数表示为控制流图CFG,将控制流图建模为多个序列,每个序列对应于一个潜在的执行轨迹,所述轨迹包含线性布局的汇编指令,给定一个二进制文件,使用angr对二进制文件进行反汇编,提取出一个汇编函数列表、基本块和控制流图;对于函数fs中的每个序列bi,神经网络从一开始就遍历指令,对于每一条指令insj,通过利用前一个指令insj-1和下一个指令insj+1和指令所在的函数向量,最大化在其当前指令处的概率,来预测当前指令tc,通过下式表示概率:
邻居指令提供的向量捕捉词汇语义关系,函数的向量记住了给定上下文中无法预测的内容;对每个操作数和操作码构建词典,将操作数平均后与操作码拼接形成指令的向量表示。
优选地,所述步骤4具体为:
对指令嵌入向量进行分析,生成基本块嵌入向量,通过anger生成函数的ICFG,通过为字符串和库函数创建虚拟节点,并从调用点向这些虚拟节点绘制边,使得两个图形在终端虚拟节点上合并成一个,将合成的图和基本块的嵌入输入TADW算法中,通过交替最小二乘ALS算法最小化损失函数,多次迭代优化后,生成基本块的嵌入。
优选地,所述步骤5具体为:
基于基本块嵌入向量进行相似性检测,将两个函数所对应的向量进行余弦相似度比较,对相似度大于阈值0.5的函数,再分别对每对基本块的向量进行余弦相似度度量,最后得到二进制文件包含的top K个漏洞。
本发明具有以下有益效果:
本发明通过采用不同的优化级别和编译选项将漏洞库中源代码编译为二进制文件,以提高检测的准确度和覆盖率。本发明在可执行文件中的地址可以任意改变,而不影响逻辑,只要它们以相同的方式连接。即使没有明确表达连接信息,但也不会丢失这些信息,因为基本块的一些指令,如call、jump等,都隐含了连接信息。
附图说明
图1为指令嵌入模型示意图;
图2为面向漏洞检测的二进制代码相似性分析流程图。
具体实施方式
以下结合具体实施例,对本发明进行了详细说明。
具体实施例一:
根据图1-图2所示,本发明提供一种面向漏洞检测的二进制代码相似性分析方法,包括以下步骤:
一种面向漏洞检测的二进制代码相似性分析方法,包括以下步骤:
步骤1:选定源代码漏洞库;所述步骤1中选用OpenSSL作为源代码漏洞库。
步骤2:将源代码漏洞库中代码进行编译,形成二进制文件;所述步骤2具体为:将源代码漏洞库中代码通过不同的优化级别和编译选项编译成对应的二进制文件。
步骤3:根据得到的二进制文件,通过词嵌入模型对二进制文件进行训练,生成指令的嵌入向量;
所述步骤3具体为:
步骤3.1:利用词嵌入模型对二进制文件进行训练,生成指令的嵌入向量,一个汇编指令是由一个操作码和两个操作数组成的序列:ins=Opcode,Operand1,Operand2;空操作数由特殊标记EMPTY代替,所有操作码和操作数组成一个集合,每个操作码和操作数都被分配一个索引号;一条指令抽象为三个整数的序列,其中每个整数代表一个操作码或操作数的索引,一个基本块是一个汇编指令序列b=ins1,ins2,...,insn,即包含三个有序整数的序列;
一个汇编函数是一组基本块f={b1,b2,...,bm},当两个汇编函数对所有的输入产生完全相同的输出,那么就是相同的;
步骤3.2:基于PV-DM模型设计的词嵌入模型,PV-DM模型基于文档中的标记学习文档表示,文档是按顺序布局的,通过汇编函数表示为控制流图CFG,将控制流图建模为多个序列,每个序列对应于一个潜在的执行轨迹,所述轨迹包含线性布局的汇编指令,给定一个二进制文件,使用angr对二进制文件进行反汇编,提取出一个汇编函数列表、基本块和控制流图;对于函数fs中的每个序列bi,神经网络从一开始就遍历指令,对于每一条指令insj,通过利用前一个指令insj-1和下一个指令insj+1和指令所在的函数向量,最大化在其当前指令处的概率,来预测当前指令tc,通过下式表示概率:
邻居指令提供的向量捕捉词汇语义关系,函数的向量记住了给定上下文中无法预测的内容;对每个操作数和操作码构建词典,将操作数平均后与操作码拼接形成指令的向量表示。
步骤4:对指令嵌入向量进行分析,生成基本块嵌入向量;
所述步骤4具体为:
对指令嵌入向量进行分析,生成基本块嵌入向量,通过anger生成函数的ICFG,通过为字符串和库函数创建虚拟节点,并从调用点向这些虚拟节点绘制边,使得两个图形在终端虚拟节点上合并成一个,将合成的图和基本块的嵌入输入TADW算法中,通过交替最小二乘ALS算法最小化损失函数,多次迭代优化后,生成基本块的嵌入。
步骤5:对生成的基本块嵌入向量进行相似性检测,确定二进制文件是否包含漏洞。
所述步骤5具体为:
基于基本块嵌入向量进行相似性检测,将两个函数所对应的向量进行余弦相似度比较,对相似度大于阈值0.5的函数,再分别对每对基本块的向量进行余弦相似度度量,最后得到二进制文件包含的top K个漏洞。
具体实施例二:
本发明的目的是通过检测给定的二进制文件中是否含有指定源代码漏洞库中所包含的漏洞。本文主要通过将源代码漏洞库编译成为二进制漏洞库,利用机器学习的方法检测给定二进制文件和漏洞库中文件的相似性,进而确定出top K个匹配漏洞。
步骤一:选定源代码漏洞库,为了尽可能检测出二进制文件中是否包含漏洞,需要选定有代表性的有权威的漏洞库,尽可能包含常见的漏洞,故本方法选定OpenSSL作为本方法实验时的漏洞库。
步骤二:将源代码漏洞库中代码通过不同的优化级别和编译选项编译成对应的二进制文件。因为各种各样的编译器优化和混淆技术使得逻辑上相似的汇编函数看起来有很大的不同。优化或模糊的汇编函数破坏了控制流和基本块的完整性,很难将这些语义相似,但结构和语法不同的函数识别为相似,因此本方法通过采用不同的优化级别和编译选项将漏洞库中源代码编译为二进制文件,以提高检测的准确度和覆盖率。
步骤三:利用词嵌入模型对二进制文件进行训练,生成指令的嵌入向量。一个汇编指令是由一个操作码和两个操作数组成的序列:ins=Opcode,Operand1,Operand2。空操作数由特殊标记EMPTY代替。所有操作码和操作数组成一个集合,每个操作码和操作数都被分配一个索引号。因此,一条指令可以抽象为三个整数的序列,其中每个整数代表一个操作码或操作数的索引。一个基本块是一个汇编指令序列b=ins1,ins2,...,insn,即包含三个有序整数的序列。一个汇编函数是一组基本块f={b1,b2,...,bm}。需要注意的是,它不是一个序列,因为它们中没有顺序。它们在可执行文件中的地址可以任意改变,而不影响逻辑,只要它们以相同的方式连接。即使没有明确表达连接信息,但也不会丢失这些信息,因为基本块的一些指令,如call、jump等,都隐含了连接信息。如果两个汇编函数对所有可能的输入产生完全相同的输出,那么它们就是相同的。
一个二进制,经过反汇编后,用某种汇编语言来表示。这启发了我们可以从自然语言处理(NLP)中学习二进制代码分析的方法,这是一个专注于有效、高效地处理自然语言体例的富有成果的领域。而且,这两个看似遥远的领域——二进制代码分析和NLP——实际上有很多类似的主题,比如从代码/文本中提取语义,段落/函数的总结,代码/文章的分类,以及代码/文本的相似性比较。因此,可以将NLP中的思想、方法和技术用于解决二进制代码分析问题。
本方法基于PV-DM模型设计的词嵌入模型。PV-DM模型基于文档中的标记学习文档表示。但是,文档是按顺序布局的,这不同于汇编代码,因为汇编代码可以表示为控制流图(CFG),并且有特定的语法。汇编函数可以表示为控制流图(CFG)。本方法将控制流图建模为多个序列。每个序列对应于一个潜在的执行轨迹,该轨迹包含线性布局的汇编指令。给定一个二进制文件,使用angr对二进制文件进行反汇编,提取出一个汇编函数列表、它们的基本块和控制流图。对于函数fs中的每个序列bi,神经网络从一开始就遍历指令,对于每一条指令insj,通过利用它的前一个指令insj-1和它的下一个指令insj+1(忽略越界的指令)和该指令所在的函数向量,最大化在其当前指令处的概率,来预测当前指令tc,其概率表示为公式1所示。其流程图如图1所示。邻居指令提供的向量捕捉词汇语义关系,函数的向量记住了给定上下文中无法预测的内容。
其中,对每个操作数和操作码构建词典,将操作数平均后与操作码拼接形成指令的向量表示。
步骤四:对指令嵌入向量进行分析,生成基本块嵌入向量。为了学习上下文的语义关系,利用anger生成函数的ICFG,然后通过为字符串和库函数创建虚拟节点,并从调用点向这些虚拟节点绘制边,使得两个图形在终端虚拟节点上合并成一个,然后将合成的图和基本块的嵌入输入TADW算法中,通过交替最小二乘(ALS)算法最小化损失函数,多次迭代优化后,生成基本块的嵌入。
步骤五:基于基本块嵌入向量进行相似性检测。为了提高检测效率,首先将两个函数所对应的向量进行余弦相似度比较,对相似度大于阈值0.5的函数,再分别对每对基本块的向量进行余弦相似度度量,最后得到二进制文件可能包含的top K个漏洞。
以上所述仅是一种面向漏洞检测的二进制代码相似性分析方法的优选实施方式,一种面向漏洞检测的二进制代码相似性分析方法的保护范围并不仅局限于上述实施例,凡属于该思路下的技术方案均属于本发明的保护范围。应当指出,对于本领域的技术人员来说,在不脱离本发明原理前提下的若干改进和变化,这些改进和变化也应视为本发明的保护范围。
Claims (5)
1.一种面向漏洞检测的二进制代码相似性分析方法,其特征是:包括以下步骤:
步骤1:选定源代码漏洞库;
步骤2:将源代码漏洞库中代码进行编译,形成二进制文件;
步骤3:根据得到的二进制文件,通过词嵌入模型对二进制文件进行训练,生成指令的嵌入向量;
所述步骤3具体为:
步骤3.1:利用词嵌入模型对二进制文件进行训练,生成指令的嵌入向量,一个汇编指令是由一个操作码和两个操作数组成的序列:ins=Opcode,Operand1,Operand2;空操作数由特殊标记EMPTY代替,所有操作码和操作数组成一个集合,每个操作码和操作数都被分配一个索引号;一条指令抽象为三个整数的序列,其中每个整数代表一个操作码或操作数的索引,一个基本块是一个汇编指令序列b=ins1,ins2,...,insn,即包含三个有序整数的序列;
一个汇编函数是一组基本块f={b1,b2,...,bm},当两个汇编函数对所有的输入产生完全相同的输出,那么就是相同的;
步骤3.2:基于PV-DM模型设计的词嵌入模型,PV-DM模型基于文档中的标记学习文档表示,文档是按顺序布局的,通过汇编函数表示为控制流图CFG,将控制流图建模为多个序列,每个序列对应于一个潜在的执行轨迹,所述轨迹包含线性布局的汇编指令,给定一个二进制文件,使用angr对二进制文件进行反汇编,提取出一个汇编函数列表、基本块和控制流图;对于函数fs中的每个序列bi,神经网络从一开始就遍历指令,对于每一条指令insj,通过利用前一个指令insj-1和下一个指令insj+1和指令所在的函数向量,最大化在其当前指令处的概率,来预测当前指令tc,通过下式表示概率:
邻居指令提供的向量捕捉词汇语义关系,函数的向量记住了给定上下文中无法预测的内容;对每个操作数和操作码构建词典,将操作数平均后与操作码拼接形成指令的向量表示;
步骤4:对指令嵌入向量进行分析,生成基本块嵌入向量;
步骤5:对生成的基本块嵌入向量进行相似性检测,确定二进制文件是否包含漏洞。
2.根据权利要求1所述的一种面向漏洞检测的二进制代码相似性分析方法,其特征是:所述步骤1中选用OpenSSL作为源代码漏洞库。
3.根据权利要求1所述的一种面向漏洞检测的二进制代码相似性分析方法,其特征是:所述步骤2具体为:将源代码漏洞库中代码通过不同的优化级别和编译选项编译成对应的二进制文件。
4.根据权利要求1所述的一种面向漏洞检测的二进制代码相似性分析方法,其特征是:所述步骤4具体为:
对指令嵌入向量进行分析,生成基本块嵌入向量,通过anger生成函数的ICFG,通过为字符串和库函数创建虚拟节点,并从调用点向这些虚拟节点绘制边,使得两个图形在终端虚拟节点上合并成一个,将合成的图和基本块的嵌入输入TADW算法中,通过交替最小二乘ALS算法最小化损失函数,多次迭代优化后,生成基本块的嵌入。
5.根据权利要求1所述的一种面向漏洞检测的二进制代码相似性分析方法,其特征是:所述步骤5具体为:
基于基本块嵌入向量进行相似性检测,将两个函数所对应的向量进行余弦相似度比较,对相似度大于阈值0.5的函数,再分别对每对基本块的向量进行余弦相似度度量,最后得到二进制文件包含的top K个漏洞。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011555496.0A CN112733137B (zh) | 2020-12-24 | 2020-12-24 | 一种面向漏洞检测的二进制代码相似性分析方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011555496.0A CN112733137B (zh) | 2020-12-24 | 2020-12-24 | 一种面向漏洞检测的二进制代码相似性分析方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112733137A CN112733137A (zh) | 2021-04-30 |
CN112733137B true CN112733137B (zh) | 2021-11-16 |
Family
ID=75615694
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011555496.0A Active CN112733137B (zh) | 2020-12-24 | 2020-12-24 | 一种面向漏洞检测的二进制代码相似性分析方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112733137B (zh) |
Families Citing this family (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113254934B (zh) * | 2021-06-29 | 2021-09-24 | 湖南大学 | 基于图匹配网络的二进制代码相似性检测方法及系统 |
CN113535229B (zh) * | 2021-06-30 | 2022-12-02 | 中国人民解放军战略支援部队信息工程大学 | 基于软件基因的抗混淆二进制代码克隆检测方法 |
CN113569251B (zh) * | 2021-07-05 | 2024-05-31 | 哈尔滨工业大学 | 一种基于汇编指令序列的二进制可执行文件脆弱性检测方法 |
CN113703773B (zh) * | 2021-08-26 | 2022-07-19 | 北京计算机技术及应用研究所 | 一种基于nlp的二进制代码相似性比对方法 |
CN113836023B (zh) * | 2021-09-26 | 2023-06-27 | 南京大学 | 一种基于体系结构交叉检查的编译器安全性测试方法 |
CN114077741B (zh) * | 2021-11-01 | 2022-12-09 | 清华大学 | 软件供应链安全检测方法和装置、电子设备及存储介质 |
CN114443476A (zh) * | 2022-01-11 | 2022-05-06 | 阿里云计算有限公司 | 一种代码评审方法及装置 |
CN115168856B (zh) * | 2022-07-29 | 2023-04-21 | 山东省计算中心(国家超级计算济南中心) | 二进制代码相似性检测方法及物联网固件漏洞检测方法 |
CN115033895B (zh) * | 2022-08-12 | 2022-12-09 | 中国电子科技集团公司第三十研究所 | 一种二进制程序供应链安全检测方法及装置 |
CN115758164A (zh) * | 2022-10-12 | 2023-03-07 | 清华大学 | 二进制代码相似度检测方法、模型训练方法及装置 |
CN115934090B (zh) * | 2023-01-05 | 2023-05-23 | 山东省计算中心(国家超级计算济南中心) | 一种由二进制代码转换源代码的方法 |
CN115951931B (zh) * | 2023-03-14 | 2023-05-16 | 山东大学 | 基于bert的二进制代码相似性检测方法 |
CN116663004B (zh) * | 2023-07-27 | 2023-09-29 | 湖南大学 | 基于图Transformers的二进制函数相似性检测方法及系统 |
CN117608539A (zh) * | 2023-11-02 | 2024-02-27 | 清华大学 | 二进制代码的表示向量生成方法、装置、设备及存储介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2001051919A2 (en) * | 2000-01-07 | 2001-07-19 | Transform Pharmaceuticals, Inc. | High-throughput formation, identification, and analysis of diverse solid-forms |
US8495733B1 (en) * | 2009-03-25 | 2013-07-23 | Trend Micro Incorporated | Content fingerprinting using context offset sequences |
CN111639344A (zh) * | 2020-07-31 | 2020-09-08 | 中国人民解放军国防科技大学 | 一种基于神经网络的漏洞检测方法及装置 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111338692B (zh) * | 2018-12-18 | 2024-04-16 | 北京奇虎科技有限公司 | 基于漏洞代码的漏洞分类方法、装置及电子设备 |
CN110704103B (zh) * | 2019-09-04 | 2020-09-29 | 中国人民解放军战略支援部队信息工程大学 | 基于软件基因的二进制文件语义相似性比较方法及装置 |
CN111552969A (zh) * | 2020-04-21 | 2020-08-18 | 中国电力科学研究院有限公司 | 基于神经网络的嵌入式终端软件代码漏洞检测方法及装置 |
CN111475820B (zh) * | 2020-04-28 | 2023-08-01 | 张皓天 | 基于可执行程序的二进制漏洞检测方法、系统及存储介质 |
CN112100626B (zh) * | 2020-09-24 | 2023-06-09 | 成都信息工程大学 | 一种提高源代码审计漏洞命中率开发方法 |
-
2020
- 2020-12-24 CN CN202011555496.0A patent/CN112733137B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2001051919A2 (en) * | 2000-01-07 | 2001-07-19 | Transform Pharmaceuticals, Inc. | High-throughput formation, identification, and analysis of diverse solid-forms |
US8495733B1 (en) * | 2009-03-25 | 2013-07-23 | Trend Micro Incorporated | Content fingerprinting using context offset sequences |
CN111639344A (zh) * | 2020-07-31 | 2020-09-08 | 中国人民解放军国防科技大学 | 一种基于神经网络的漏洞检测方法及装置 |
Non-Patent Citations (2)
Title |
---|
Mining Source Code Improvement Patterns from Similar Code Review Works;Yuki Ueda et al;《IEEE》;20190314;第13-19页 * |
面向源代码的软件漏洞静态检测综述;李珍 等;《网络与信息安全学报》;20190131;第5卷(第1期);第1-14页 * |
Also Published As
Publication number | Publication date |
---|---|
CN112733137A (zh) | 2021-04-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112733137B (zh) | 一种面向漏洞检测的二进制代码相似性分析方法 | |
CN111639344B (zh) | 一种基于神经网络的漏洞检测方法及装置 | |
CN111125716B (zh) | 一种以太坊智能合约漏洞检测方法及装置 | |
Redmond et al. | A cross-architecture instruction embedding model for natural language processing-inspired binary code analysis | |
CN108446540B (zh) | 基于源代码多标签图神经网络的程序代码抄袭类型检测方法与系统 | |
CN111459799B (zh) | 一种基于Github的软件缺陷检测模型建立、检测方法及系统 | |
CN112733156B (zh) | 基于代码属性图的软件脆弱性智能检测方法、系统及介质 | |
CN113900923B (zh) | 一种跨指令集架构的二进制函数相似性检查系统及方法 | |
CN113010209A (zh) | 一种抗编译差异的二进制代码相似性比较技术 | |
CN111177733A (zh) | 一种基于数据流分析的软件补丁检测方法及装置 | |
CN114625844B (zh) | 一种代码搜索方法、装置及设备 | |
CN110147235A (zh) | 一种源代码与二进制代码间的语义比对方法和装置 | |
US20100199355A1 (en) | Method of protecting digital documents against unauthorized uses | |
CN108027748A (zh) | 指令集模拟器及其模拟器生成方法 | |
CN115309451A (zh) | 代码克隆检测方法、装置、设备、存储介质及程序产品 | |
CN113987405A (zh) | 一种基于ast的数学表达式计算算法 | |
CN116340952A (zh) | 一种基于操作码程序依赖图的智能合约漏洞检测方法 | |
CN114254323A (zh) | 基于PCODE和Bert的软件脆弱性分析方法及系统 | |
CN115373737B (zh) | 一种基于特征融合的代码克隆检测方法 | |
CN115878498A (zh) | 一种基于机器学习预测程序行为的关键字节提取方法 | |
CN114691151A (zh) | 一种基于深度学习的优化代码反编译方法和系统 | |
CN116628695A (zh) | 基于多任务学习的漏洞挖掘方法及装置 | |
Shao et al. | A survey of available information recovery of binary programs based on machine learning | |
CN113076089A (zh) | 一种基于对象类型的api补全方法 | |
Ouyang et al. | Binary vulnerability mining based on long short-term memory 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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |