CN107704501B - 一种识别同源二进制文件的方法及系统 - Google Patents
一种识别同源二进制文件的方法及系统 Download PDFInfo
- Publication number
- CN107704501B CN107704501B CN201710750221.4A CN201710750221A CN107704501B CN 107704501 B CN107704501 B CN 107704501B CN 201710750221 A CN201710750221 A CN 201710750221A CN 107704501 B CN107704501 B CN 107704501B
- Authority
- CN
- China
- Prior art keywords
- file
- files
- character string
- signature
- database
- 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
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2455—Query execution
- G06F16/24553—Query execution of query operations
- G06F16/24554—Unary operations; Data partitioning operations
- G06F16/24556—Aggregation; Duplicate elimination
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/22—Indexing; Data structures therefor; Storage structures
- G06F16/2228—Indexing structures
- G06F16/2255—Hash tables
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Computational Linguistics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明提供一种从数据库中识别同源二进制文件的方法和系统,所述数据库中包含复数个二进制的基础文件,所述方法包括:根据最小哈希算法,分别获得待识别文件的签名以及各基础文件的签名;对任意一个签名,根据分桶法对该签名进行分桶处理;根据倒排索引法和所有基础文件的分桶后的签名,获得与桶一一对应的字典,每个所述字典包含至少一个键值对;根据待识别文件的每个桶中的字符串,遍历对应的字典,根据匹配的键所对应的值,获得所述待识别文件的同源二进制文件。本发明采用最小哈希算法求取签名并采用局部敏感哈希算法进行分桶,能够显著地减少计算量,采用倒排索引的方法,对所有的签名建立索引表,提高识别同源二进制文件的速度。
Description
技术领域
本发明涉及针对嵌入式设备的漏洞挖掘技术领域,更具体地,涉及识别同源二进制文件的方法及系统。
背景技术
近年来,物联网设备以近乎成倍的速度接入网络,极大地方便了人们的生活。但这些智能设备因生产厂商安全意识不足广泛使用共享代码模块和第三方SDK而面临被攻击的风险。
例如,2016年10月21日,黑客利用网络摄像头等设备采用分布式拒绝服务攻击(DDoS)方式攻击DNS提供商Dyn,破坏了一系列互联网大型网站,包括Spotify,Twitter,PayPal,Netflix等。媒体称这种攻击“历史上最严重的DDos攻击”,物联网设备的安全性受到更多的关注。当紧急安全事件发生时,现有技术只能通过修复相关的固件来抵御攻击。为了能够提前预知有漏洞的固件,有必要寻找一种能够识别同源二进制文件的匹配方法。
现有的二进制文件比对方法是直接读入二进制数据进行比较,该方法较为直接,但缺少对程序整体逻辑的理解,只适用于若干字节变化的比较,基于汇编指令的比对方法以汇编指令作为分析对象,将二进制文件反汇编后进行对比。但该方法缺乏对程序逻辑的理解,只适合小文件的检索。
发明内容
本发明提供一种克服上述问题或者至少部分地解决上述问题的识别同源二进制文件的方法及系统。
根据本发明的一个方面,提供一种从数据库中识别同源二进制文件的方法,所述数据库中包含复数个二进制的基础文件,所述方法包括:
S1、根据最小哈希算法,分别获得待识别文件的签名以及各基础文件的签名;
S2、对任意一个签名,根据分桶法对该签名进行分桶处理,其中,所有桶中含有字符个数相同的字符串;
S3、根据倒排索引法和所有基础文件的分桶后的签名,获得与桶一一对应的字典,每个所述字典包含至少一个键值对,其中键为所述数据库中所有基础文件所对应的桶中去重后的字符串,值为包含该键的基础文件的标识;
S4、根据所述待识别文件的每个桶中的字符串,遍历对应的字典,根据匹配的键所对应的值,获得所述待识别文件的同源二进制文件。
优选地,所述步骤S1包括:
S1.1、对待识别文件以及所有基础文件中的任意一个文件,根据运行最小哈希算法的最小哈希计算工具,获得该文件每一行代码的签名,其中,所有文件每一行代码的签名具有相同的字符数;
S1.2、将所述每一行代码的签名均分为M个子签名,以使得该文件表示为行数为该文件的代码的行个数,列数为M的矩阵;
S1.3、对该矩阵的每一列以相同规则获得一个子签名,以获得M个子签名的签名,作为该文件的签名。
优选地,所述步骤S3包括:
S3.1、创建与桶个数一致的复数个字典,且每个字典的编号与桶的编号一一对应;
S3.2、统计所有基础文件对应任意一个桶的字符串,并对该同中的字符串进行去重处理;
S3.3、将进行去重处理后的每个桶中的每个字符串,作为对应该桶编号的字典的一个键,将包含该字符串的基础文件的标识作为该键的值,以获得一个键值对。
优选地,所述步骤1之前还包括对所述任意一个文件进行特征过滤处理,所述特征过滤处理包括:
获得所述任意一个文件的字符串集合,所述字符串集合由复数个可打印的字符串组成;
对所述字符串集合依次进行代码段字符串过滤和库符号表字符串过滤。
优选地,对所述字符串集合进行代码段字符串过滤的步骤,进一步包括:
检测所述可打印的字符串集合是否存在ELF头;
若不存在,则过滤掉所述可打印的字符串集合中长度较短的字符串。
优选地,对所述字符串集合进行库符号表字符串过滤的步骤包括:
将用于被系统程序和用户程序调用的底层库函数名和变量信息作为内核级符号表字符串;
将用于被用户程序调用的高层库函数名及变量信息作为系统级符号表字符串;
将经过代码段字符串过滤的字符串集合中的所述内核级符号表字符串和系统级符号表字符串进行过滤。
优选地,所述获得所述任意一个文件的字符串集合的步骤,包括通过字符串提取工具strings获得任意一个文件的字符串集合。
优选地,所述可打印的字符串集合中长度较短的字符串为字符数小于6个的字符串。
根据本发明的另一个方面,还提供一种从数据库中识别同源二进制文件的系统,所述数据库中包含复数个二进制的基础文件,所述系统包括:
签名获得模块,用于根据最小哈希算法,分别获得待识别文件的签名以及各基础文件的签名;
分桶模块,用于对任意一个签名,根据分桶法对该签名进行分桶处理,其中,所有桶中含有字符个数相同的字符串;
键值对获得模块,用于根据倒排索引法和所有基础文件的分桶后的签名,获得与桶一一对应的字典,每个所述字典包含至少一个键值对,其中键为所有基础文件所对应的桶中去重后的字符串,值为包含该键的基础文件的标识;
识别模块,用于根据所述待识别文件的每个桶中的字符串,遍历对应的字典,根据匹配的键所对应的值,获得所述待识别文件的同源二进制文件。
本申请提出的一种从数据库中识别同源二进制文件的方法和系统采用最小哈希算法求取签名并采用局部敏感哈希算法进行分桶,能够显著地减少计算量,采用倒排索引的方法,对所有的签名建立索引表,提高识别同源二进制文件的速度。
附图说明
图1为根据本发明实施例的从数据库中识别同源二进制文件的流程示意图;
图2为根据本发明实施例的步骤S1的流程示意图;
图3为根据本发明实施例的步骤S3的流程示意图;
图4为根据本发明实施例的从数据库中识别同源二进制文件的系统的功能框图。
具体实施方式
下面结合附图和实施例,对本发明的具体实施方式作进一步详细描述。以下实施例用于说明本发明,但不用来限制本发明的范围。
为了克服现有技术的上述问题,本发明提供一种从数据库中识别同源二进制文件的方法,其中数据库中包含复数个二进制的基础文件,本方法参见图1,该方法包括:
S1、根据最小哈希算法,分别获得待识别文件的签名以及各基础文件的签名;
对于步骤S1来说,本发明首先需要对待识别的文件以及数据库中的所有基础文件根据最小哈希算法获得签名,最小哈希算法也是LSH(英文全称:Locality SensitiveHash,中文名称:局部敏感哈希)算法的一种,可以用来快速估算两个集合的相似度。采用最小哈希算法能够将文件的原始内容(在本发明中,各文件的原始内容是指文件的字符串信息)均匀随机地映射为一个MinHash签名,并且相比传统的hash算法,相似内容产生的MinHash签名也具有相似性,即MinHash签名除了提供原始内容是否相等的信息外,还能额外提供不相等的原始内容的差异程度的信息。
S2、对任意一个签名,根据分桶法对该签名进行分桶处理,其中,所有桶中含有字符个数相同的字符串;
对于步骤S2来说,分桶法(bucketmethod)是把一排物品或者平面分成桶,每个桶分别维护自己内部的信息,以达到高效计算的目的的方法。由于签名同样是由字符串表示的,那么将字符串中的字符按顺序平均分配到每个桶中,并且所有文件属于同一个桶内的字符很大程度上是相邻的,从而能够更容易进行近邻查找,显著地减少计算量。
S3、根据倒排索引法和所有基础文件的分桶后的签名,获得与桶一一对应的字典,每个所述字典包含至少一个键值对,其中键为所述数据库中所有基础文件所对应的桶中去重后的字符串,值为包含该键的基础文件的标识;
对于步骤S3来说,倒排索引源于实际应用中需要根据属性的值来查找记录。这种索引表中的每一项都包括一个属性值和具有该属性值的各记录的地址。由于不是由记录来确定属性值,而是由属性值来确定记录的位置,因而称为倒排索引(inverted index)。搜索引擎的通常索引单位是单词,单词字典是由文档集合中出现过的所有单词构成的字符串集合,单词字典内每条索引项记载单词本身的一些信息以及指向“倒排列表”的指针。结合本实施例,将相同编号的桶中去重后的字符串作为键,把包含键的基础文件的标识作为值,就构成了一个字典。
例如,基础文件的个数为5个,分别为A、B、C、D和E,这5个二进制文件对应的1号桶中的字符串分别为1110、1111、1112、1110、1112,那么字典具有3个键值对:{1110:A,D}、{1111:B}、{1112:C,E}。其中1110、1111和1112为去重后的三个字符串,即键,键1110对应的值为A和D,键1111对应的值为B,键1112对应的值为C和E。
S4、根据所述待识别文件的每个桶中的字符串,遍历对应的字典,根据匹配的键所对应的值,获得所述待识别文件的同源二进制文件。
需要说明的是,待识别文件分桶后具体与桶数相等的多个字符串,然后将相同桶编号的字符串与相同变化的字典进行比较,例如,待识别的1号桶的字符串为1110,检索1号字典,发现1号字典中含有3个键值对:{1110:A,D}、{1111:B}、{1112:C,E},进一步匹配发现,与1110相对应的基础文件为基础文件A和D,那么可以获得待识别文件的同源二进制文件为A和D,同理,对所有字典对应搜索完成后,就可以获得所有的同源二进制文件。
需要说明的是,本发明采用最小哈希算法求取签名并采用局部敏感哈希算法进行分桶,能够显著地减少计算量,采用倒排索引的方法,对所有的签名建立索引表,提高识别同源二进制文件的速度。
图2示出了在一个实施例中步骤S1的流程图,如图可知,步骤S1包括:
S1.1、对待识别文件以及所有基础文件中的任意一个文件,根据运行最小哈希算法的最小哈希计算工具,获得该文件每一行代码的签名,其中,所有文件每一行代码的签名具有相同的字符数;
对于步骤S1.1来说,由于本实施例中所有文件均是由一定行数的代码构成,通过对每一行代码采用最小哈希计算工具获得签名,并且每一行签名都具有相同的字符数,使得每个文件都可以用一个矩阵表示,其中矩阵的行数与该文件的行数一致,列数为签名的字符个数。
S1.2、将每一行代码的签名均分为M个子签名,以使得该文件表示为行数为该文件的代码的行个数,列数为M的矩阵;
对于步骤S1.2来说,将每一行代码的签名均分成若干个子签名,相当于减少了矩阵的列数,比如代码的签名具有256个字节,如果均分成16个子签名,相当于矩阵中每一个元素具有16个字节。
S1.3、对该矩阵的每一列以相同规则获得一个子签名,以获得具有M个子签名的签名,作为该文件的签名。
对于步骤S1.3来说,对于从矩阵的每一列中获得一个子签名的方法,可以有很多种,例如,选择该列中Hash值最小一个子签名,或者Hash值最大的一个子签名,还比如以字母排序最靠前的子签名(比如两个子签名的首字母分别为A和B,那么选择首字母为A的子签名,如果两个首字母一致,则比较第二个字母,…,以此类推)。
图3示出了在一个实施例中步骤S3的流程图,如图可知,步骤S3包括:
S3.1、创建与桶个数一致的复数个字典,且每个字典的编号与桶的编号一一对应;
S3.2、统计所有基础文件对应任意一个桶的字符串,并对该同中的字符串进行去重处理;
S3.3、将进行去重处理后的每个桶中的每个字符串,作为对应该桶编号的字典的一个键,将包含该字符串的基础文件的标识作为该键的值,以获得一个键值对。
在上述各实施例的基础上,步骤1之前还包括对任意一个文件进行特征过滤处理,特征过滤处理包括:
获得任意一个文件的字符串集合,字符串集合由复数个可打印的字符串组成;
需要注意的是,本发明中数据库中的基础文件可以对从网上下载或爬取的固件进行解压获得的二进制文件,通过字符串提取工具就可以获得相应文件的字符串集合,对于可打印的字符串来说,简单来说就是在显示器上输出能看见的字符串,目前使用最广泛的西文字符集及其编码是ASCII字符集和ASCII码(ASCII是American Standard Code forInformation Interchange的缩写),它同时也被国际标准化组织(InternationalOrganization for Standardization,ISO)批准为国际标准。
基本的ASCII字符集共有128个字符,其中有96个可打印字符,包括常用的字母、数字、标点符号等,另外还有32个控制字符。标准ASCII码使用7个二进位对字符进行编码,对应的ISO标准为ISO646标准。有些ASCII字符是不可打印的。例如退格、另起一行、警报等。
对字符串集合依次进行代码段字符串过滤和库符号表字符串过滤。
对于代码段来说,代码段(英文名称:code segment/text segment)通常是指用来存放程序执行代码的一块内存区域。这部分区域的大小在程序运行前就已经确定,并且内存区域通常属于只读,某些架构也允许代码段为可写,即允许修改程序。在代码段中,也有可能包含一些只读的常数变量,例如字符串常量等。
库符号表指包含相应库中存放的函数名称和全局变量信息,由于这些信息为众多相关文件所共享,不是单一文件的特定属性,因此将含该库符号表字符串特征过滤文件中相应的行过滤掉。
在上述各实施例的基础上,对字符串集合进行代码段字符串过滤的步骤,进一步包括:
检测可打印的字符串集合是否存在ELF头;
若不存在,则过滤掉可打印的字符串集合中长度较短的字符串。
需要说明的是,针对含有ELF头的原始文件,直接提取出原始文件数据段中的字符串信息作为特征过滤文件。对无ELF头的原始文件,由于数据段通常存放符号表等,有较长的字符串信息,而代码段主要存放不可打印的字符信息并且长度较短。因此,过滤掉特征提取文件中较短的字符串信息。
优选地,对字符串集合进行库符号表字符串过滤的步骤包括:
将用于被系统程序和用户程序调用的底层库函数名和变量信息作为内核级符号表字符串;
将用于被用户程序调用的高层库函数名及变量信息作为系统级符号表字符串;
将经过代码段字符串过滤的字符串集合中的内核级符号表字符串和系统级符号表字符串进行过滤。
需要说明的是,底层库和高层库只是一个相对的概念,比如在linux系统中,/lib目录下的动态链接库为内核级,相应的函数名和变量信息为内核级符号表字符串。/usr/lib目录下的动态链接库为系统级,相应的函数名和变量信息为系统级符号表字符串。
在上述各实施例的基础上,最小哈希计算工具包括但不限于sha512sum、sha256sum等哈希计算工具。
在上述各实施例的基础上,获得任意一个文件的字符串集合的步骤,包括但不限于通过以下工具获得任意一个文件的字符串集合:字符串提取工具strings、TransText提取工具,可参考http://www.jb51.net/article/113363.htm中记载的利用strings工具提取字符串的方法提取文件的字符串。
在上述各实施例的基础上,可打印的字符串集合中长度较短的字符串为字符数小于6个的字符串。
本发明还提供一种从数据库中识别同源二进制文件的系统,数据库中包含复数个二进制的基础文件,参见图4,该系统包括:
签名获得模块,用于根据最小哈希算法,分别获得待识别文件的签名以及各基础文件的签名;
分桶模块,用于对任意一个签名,根据分桶法对该签名进行分桶处理,其中,所有桶中含有字符个数相同的字符串;
键值对获得模块,用于根据倒排索引法和所有基础文件的分桶后的签名,获得与桶一一对应的字典,每个所述字典包含至少一个键值对,其中键为所有基础文件所对应的桶中去重后的字符串,值为包含该键的基础文件的标识;
识别模块,用于根据所述待识别文件的每个桶中的字符串,遍历对应的字典,根据匹配的键所对应的值,获得所述待识别文件的同源二进制文件。
下面结合一个具体的实施例对本发明的从数据库中识别同源二进制文件的方法进行介绍:
1)、运用字串串提取工具提取二进制文件(待识别文件以及数据库中的任意一个基础文件)中可打印的字符串信息,作为特征提取文件;
2)、对特征提取文件进行代码段字符串过滤和库符号表字符串过滤,获得特征过滤文件;
代码段字符串过滤包括:检测特征提取文件是否存在ELF头,若有,则提取出特征提取文件中的字符串信息作为特征过滤文件;反之,则过滤掉特征提取文件中较短的字符串信息,获得特征过滤文件;
库符号表字符串过滤:将内核级和系统级的符号表字符串加入黑名单列表中,对经过代码段字符串过滤后的特征过滤文件运用该黑名单作进一步过滤;
库符号表表示包含相应库中存放的函数名称和全局变量信息,其中内核级符号表包含能被系统程序和用户程序调用的底层库函数名和变量信息,系统级符号表包含能够被用户程序调用的高层库函数名及变量信息。
3)、根据最小哈希算法计算特征过滤文件的Minhash签名
将特征过滤文件中的每一行信息用sha512sum哈希计算工具获取相应的签名256个字节,并均分成16份,其中每份含有16个字节,以此获得n行(假设该特征过滤文件具有n行信息)16列的数组,对每列签名按相同规则提取一份子签名,即可组成一组包含16*16,共256个字符的签名;
对包含256个字符的签名进行分桶,其中桶的个数为64个,将签名中的所有字符按顺序每4个放置在一个桶中。
由于上述签名是一个16*16的矩阵,对于把签名中的字符放置在桶中的步骤,可采用从上往下、从左往右的顺序进行放置,例如,将第1行第1列的子签名中前4个字符放置在1号桶中,然后将第5-8个字符放置在2号桶中,将第9-12个字符放置在3号桶中,将第13-16个字符放置在4号桶中,在第1行第1列的子签名分配后,将第2行第一列的子签名的前4个字符放置在5号桶中,然后将第5-8个字符放置在6号桶中,将第9-12个字符放置在7号桶中,将第13-16个字符放置在8号桶中,依次类推,直至将所有的字符分配至所有的桶中。
4)、建立64个字典,每个字典的编号对应签名文件相应的桶编号,依次将签名文件库中所有同编号的桶中信息排序去重后的字符串信息作为索引表中每个字典的键,包含该键的文件名列表作为值。
5)、对目标文件求取签名并通过索引表获取匹配到的相关文件名。
最后,本申请的方法仅为较佳的实施方案,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (10)
1.一种从数据库中识别同源二进制文件的方法,所述数据库中包含至少两个二进制的基础文件,其特征在于,包括:
S1、对待识别文件以及所有基础文件中的任意一个文件,根据MinHash算法获得所述任意一个文件的签名;
S2、根据分桶法对各文件的签名进行分桶处理,其中,所有桶中含有字符个数相同的字符串;
S3、根据倒排索引法和所有基础文件分桶后的签名,获得与桶一一对应的字典,每个所述字典包含至少一个键值对,其中键为所述数据库中所有基础文件所对应的桶中去重后的字符串,值为包含该键的基础文件的标识;
S4、根据所述待识别文件的分桶后的签名,遍历所有字典,将匹配的键对应的值作为所述待识别文件的同源二进制文件。
2.如权利要求1所述的从数据库中识别同源二进制文件的方法,其特征在于,所述步骤S1包括:
S1.1、对待识别文件以及所有基础文件中的任意一个文件,根据MinHash计算工具,获得所述任意一个文件每一行代码的签名,其中,所有文件每一行代码的签名具有相同的字符数;
S1.2、将所述每一行代码的签名均分为M个子签名,以使得所述任意一个文件表示为行数为所述任意一个文件的代码的行个数,列数为M的矩阵;
S1.3、对该矩阵的每一列以相同规则获得一个子签名,以获得具有M个子签名的签名,作为所述任意一个文件的签名。
3.如权利要求1或2所述的从数据库中识别同源二进制文件的方法,其特征在于,所述步骤S3包括:
S3.1、创建与桶个数一致的至少两个字典,且每个字典的编号与桶的编号一一对应;
S3.2、统计所有基础文件对应任意一个桶的字符串,并对该桶中的字符串进行去重处理;
S3.3、将进行去重处理后的每个桶中的每个字符串,作为对应该桶编号的字典的一个键,将包含该字符串的基础文件的标识作为该键的值,以获得一个键值对。
4.如权利要求3所述的从数据库中识别同源二进制文件的方法,其特征在于,所述步骤S1之前还包括对所述任意一个文件进行特征过滤处理,所述特征过滤处理包括:
获得所述任意一个文件的字符串集合,所述字符串集合由至少两个可打印的字符串组成;
对所述字符串集合依次进行代码段字符串过滤和库符号表字符串过滤。
5.如权利要求4所述的从数据库中识别同源二进制文件的方法,其特征在于,对所述字符串集合进行代码段字符串过滤的步骤,进一步包括:
检测所述可打印的字符串集合是否存在ELF头;
若不存在,则过滤掉所述可打印的字符串集合中长度较短的字符串。
6.如权利要求4所述的从数据库中识别同源二进制文件的方法,其特征在于,对所述字符串集合进行库符号表字符串过滤的步骤包括:
将用于被系统程序和用户程序调用的底层库函数名和变量信息作为内核级符号表字符串;
将用于被用户程序调用的高层库函数名及变量信息作为系统级符号表字符串;
将经过代码段字符串过滤的字符串集合中的所述内核级符号表字符串和系统级符号表字符串进行过滤。
7.如权利要求2所述的从数据库中识别同源二进制文件的方法,其特征在于,所述MinHash计算工具包括但不限于sha512sum哈希计算工具。
8.如权利要求4所述的从数据库中识别同源二进制文件的方法,其特征在于,所述获得所述任意一个文件的字符串集合的步骤,包括但不限于通过字符串提取工具strings获得任意一个文件的字符串集合。
9.如权利要求5所述的从数据库中识别同源二进制文件的方法,其特征在于,所述可打印的字符串集合中长度较短的字符串为字符数小于6个的字符串。
10.一种从数据库中识别同源二进制文件的系统,所述数据库中包含至少两个二进制的基础文件,其特征在于,包括:
签名获得模块,用于对待识别文件以及所有基础文件中的任意一个文件,根据MinHash算法获得所述任意一个文件的签名;
分桶模块,用于根据分桶法对各文件的签名进行分桶处理,其中,所有桶中含有字符个数相同的字符串;
键值对获得模块,用于根据倒排索引法和所有基础文件分桶后的签名,获得与桶一一对应的字典,每个所述字典包含至少一个键值对,其中键为所述数据库中所有基础文件所对应的桶中去重后的字符串,值为包含该键的基础文件的标识;
识别模块,用于根据所述待识别文件的分桶后的签名,遍历所有字典,将匹配的键对应的值作为所述待识别文件的同源二进制文件。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710750221.4A CN107704501B (zh) | 2017-08-28 | 2017-08-28 | 一种识别同源二进制文件的方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710750221.4A CN107704501B (zh) | 2017-08-28 | 2017-08-28 | 一种识别同源二进制文件的方法及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107704501A CN107704501A (zh) | 2018-02-16 |
CN107704501B true CN107704501B (zh) | 2020-04-24 |
Family
ID=61171221
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710750221.4A Active CN107704501B (zh) | 2017-08-28 | 2017-08-28 | 一种识别同源二进制文件的方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107704501B (zh) |
Families Citing this family (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109063055B (zh) * | 2018-07-19 | 2021-02-02 | 中国科学院信息工程研究所 | 同源二进制文件检索方法和装置 |
CN109710570B (zh) * | 2018-12-29 | 2021-08-10 | 核动力运行研究所 | 一种核电厂生产准备文件管理方法及系统 |
CN109918950A (zh) * | 2019-03-24 | 2019-06-21 | 哈尔滨理工大学 | 一种在嵌入式设备中识别二进制函数的应用方法 |
CN110399729B (zh) * | 2019-04-11 | 2021-04-27 | 国家计算机网络与信息安全管理中心 | 一种基于组件特征权重的二进制软件分析方法 |
CN110765756B (zh) * | 2019-10-29 | 2023-12-01 | 北京齐尔布莱特科技有限公司 | 一种文本处理方法、装置、计算设备及介质 |
CN110866151B (zh) * | 2019-11-11 | 2023-09-19 | 腾讯科技(深圳)有限公司 | 一种特征遍历方法及相关设备 |
CN112162977B (zh) * | 2020-10-20 | 2023-01-13 | 北京理工大学 | 一种面向mes的海量数据去冗余方法和系统 |
CN112685399B (zh) * | 2021-01-08 | 2022-10-18 | 北京理工大学 | 一种mes系统的标识数据库去重方法及系统 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101408881A (zh) * | 2004-09-29 | 2009-04-15 | 千兆科技(深圳)有限公司 | 生成二进制文件内容签名的方法及系统 |
CN104866765A (zh) * | 2015-06-03 | 2015-08-26 | 康绯 | 基于行为特征相似性的恶意代码同源性分析方法 |
CN106649218A (zh) * | 2016-11-16 | 2017-05-10 | 中国人民解放军国防科学技术大学 | 一种基于SimHash算法的二进制文件快速比较方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20090313700A1 (en) * | 2008-06-11 | 2009-12-17 | Jefferson Horne | Method and system for generating malware definitions using a comparison of normalized assembly code |
-
2017
- 2017-08-28 CN CN201710750221.4A patent/CN107704501B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101408881A (zh) * | 2004-09-29 | 2009-04-15 | 千兆科技(深圳)有限公司 | 生成二进制文件内容签名的方法及系统 |
CN104866765A (zh) * | 2015-06-03 | 2015-08-26 | 康绯 | 基于行为特征相似性的恶意代码同源性分析方法 |
CN106649218A (zh) * | 2016-11-16 | 2017-05-10 | 中国人民解放军国防科学技术大学 | 一种基于SimHash算法的二进制文件快速比较方法 |
Also Published As
Publication number | Publication date |
---|---|
CN107704501A (zh) | 2018-02-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107704501B (zh) | 一种识别同源二进制文件的方法及系统 | |
KR101627592B1 (ko) | 비밀 정보의 검출 | |
CN108280197B (zh) | 一种识别同源二进制文件的方法及系统 | |
Kirat et al. | Sigmal: A static signal processing based malware triage | |
EP3091450B1 (en) | Method and system for performing binary searches | |
CN105224600B (zh) | 一种样本相似度的检测方法及装置 | |
CN105630765A (zh) | 地名地址识别方法 | |
CN105589894B (zh) | 文档索引建立方法和装置、文档检索方法和装置 | |
US11080398B2 (en) | Identifying signatures for data sets | |
Schnell | An efficient privacy-preserving record linkage technique for administrative data and censuses | |
CN106909575B (zh) | 文本聚类方法和装置 | |
CN112364625A (zh) | 文本筛选方法、装置、设备及存储介质 | |
CN111723371A (zh) | 构建恶意文件的检测模型以及检测恶意文件的方法 | |
Brengel et al. | {YARIX}: Scalable {YARA-based} malware intelligence | |
CN111767364A (zh) | 数据处理方法、装置和设备 | |
CN111666258B (zh) | 信息处理方法和装置、信息查询方法和装置 | |
KR20230170891A (ko) | 메모리 내 효율적인 다단계 검색 | |
US10339297B2 (en) | Determining whether continuous byte data of inputted data includes credential | |
CN116821053B (zh) | 数据上报方法、装置、计算机设备和存储介质 | |
US20150193459A1 (en) | Data file searching method | |
CN111930610B (zh) | 软件同源性检测方法、装置、设备及存储介质 | |
CN112347477A (zh) | 家族变种恶意文件挖掘方法和装置 | |
KR101327865B1 (ko) | 악성코드에 감염된 홈페이지 탐지 장치 및 방법 | |
CN113688240A (zh) | 威胁要素提取方法、装置、设备及存储介质 | |
CN112487427A (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |