CN108446554A - 可执行文件匹配方法、装置及计算机设备 - Google Patents

可执行文件匹配方法、装置及计算机设备 Download PDF

Info

Publication number
CN108446554A
CN108446554A CN201810263931.9A CN201810263931A CN108446554A CN 108446554 A CN108446554 A CN 108446554A CN 201810263931 A CN201810263931 A CN 201810263931A CN 108446554 A CN108446554 A CN 108446554A
Authority
CN
China
Prior art keywords
executable file
operation code
file
vector
executable
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
CN201810263931.9A
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.)
Tencent Technology Shenzhen Co Ltd
Original Assignee
Tencent Technology Shenzhen Co Ltd
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 Tencent Technology Shenzhen Co Ltd filed Critical Tencent Technology Shenzhen Co Ltd
Priority to CN201810263931.9A priority Critical patent/CN108446554A/zh
Publication of CN108446554A publication Critical patent/CN108446554A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/52Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/55Detecting local intrusion or implementing counter-measures
    • G06F21/56Computer malware detection or handling, e.g. anti-virus arrangements
    • G06F21/562Static detection
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/03Indexing scheme relating to G06F21/50, monitoring users, programs or devices to maintain the integrity of platforms
    • G06F2221/033Test or assess software

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Health & Medical Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • Virology (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本申请是关于一种可执行文件匹配方法、装置及计算机设备,涉及计算机应用技术领域。该方法包括:获取第一可执行文件和第二可执行文件;分别提取所述第一可执行文件和所述第二可执行文件的操作码指示向量,所述操作码指示向量用于指示对应的可执行文件中包含的操作码;获取所述第一可执行文件和所述第二可执行文件各自的操作码指示向量之间的相似度;根据所述相似度获取匹配结果,所述匹配结果用于指示所述第一可执行文件和所述第二可执行文件是否为相似文件。本申请通过提取可执行文件中的操作码所对应的操作码指示向量,以操作码指示向量之间的相似性来表示可执行文件的相似性,从而提高两个或者多个可执行文件之间的相似性匹配的准确性。

Description

可执行文件匹配方法、装置及计算机设备
技术领域
本申请涉及计算机应用技术领域,特别涉及一种可执行文件匹配方法、装置及计算机设备。
背景技术
随着软件技术的不断发展,在软件剽窃检测、侵权检测以及病毒检测等方面,可执行文件的匹配技术所起到的作用也越来越高。
在相关技术中,可以基于可执行文件中的汇编指令来确定两个可执行文件是否匹配。比如,以对两个可执行文件进行匹配为例,计算机设备可以分别提取两个可执行文件各自包含的汇编指令,并统计两个可执行文件中包含的相同的汇编指令,这两个可执行文件中包含的相同汇编指令的比例越高,说明这两个可执行文件越匹配(也即这两个可执行文件越相似)。
然而,由于汇编指令的可变性较强,即便是功能相同的可执行文件中的汇编指令的差距也可能会比较大,导致基于汇编指令确定两个可执行文件是否匹配的准确率较低。
发明内容
本申请实施例提供了一种可执行文件匹配方法、装置及计算机设备,可以用于解决相关技术中即便是功能相同的可执行文件中的汇编指令的差距也可能会比较大,导致基于汇编指令确定两个可执行文件是否匹配的准确率较低的问题,技术方案如下:
一方面,提供了一种可执行文件匹配方法,所述方法包括:
获取第一可执行文件和第二可执行文件,所述第一可执行文件和所述第二可执行文件是由操作系统加载并执行的文件;
提取所述第一可执行文件和所述第二可执行文件各自的操作码指示向量,所述操作码指示向量用于指示对应的可执行文件中包含的操作码;
按照预设的向量相似度算法获取所述第一可执行文件和所述第二可执行文件各自的操作码指示向量之间的相似度;
根据所述相似度获取匹配结果,所述匹配结果用于指示所述第一可执行文件和所述第二可执行文件是否为相似文件。
一方面,提供了一种可执行文件匹配装置,所述装置包括:
文件获取模块,用于获取第一可执行文件和第二可执行文件,所述第一可执行文件和所述第二可执行文件是由操作系统加载并执行的文件;
提取模块,用于提取所述第一可执行文件和所述第二可执行文件各自的操作码指示向量,所述操作码指示向量用于指示对应的可执行文件中包含的操作码;
相似度获取模块,用于按照预设的向量相似度算法获取所述第一可执行文件和所述第二可执行文件各自的操作码指示向量之间的相似度;
匹配模块,用于根据所述相似度获取匹配结果,所述匹配结果用于指示所述第一可执行文件和所述第二可执行文件是否为相似文件。
一方面,提供了一种计算机设备,所述计算机设备包含处理器和存储器,所述存储器中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或指令集由所述处理器加载并执行以实现上述可执行文件匹配方法。
一方面,提供了一种计算机可读存储介质,所述存储介质中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或指令集由处理器加载并执行以实现上述可执行文件匹配方法。
本申请提供的技术方案可以包括以下有益效果:
通过提取用于指示可执行文件中操作码的操作码指示向量,并通过操作码指示向量之间的相似性来获取两个可执行文件之间的匹配结果,由于在可执行文件中,操作码的可变性远远低于汇编指令的可变性,因此基于操作码指示向量来对可执行文件进行匹配,能够提高对两个可执行文件进行相似性匹配的准确性。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本申请。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本申请的实施例,并与说明书一起用于解释本申请的原理。
图1是本申请一示例性的实施例提供的可执行文件匹配方法的方法流程图;
图2是图1所示实施例涉及的一种可执行文件匹配的流程图;
图3是本申请一示例性的实施例提供的可执行文件匹配方法的方法流程图;
图4是图3所示实施例涉及的一种反汇编示意图;
图5是图3所示实施例涉及的一种操作码序列提取示意图;
图6是图3所示实施例涉及的一种操作码指示向量的示意图;
图7是图3所示实施例涉及的一种向量夹角示意图;
图8是图3所示实施例涉及的另一种向量夹角示意图;
图9是图3所示实施例涉及的又一种向量夹角示意图;
图10是图3所示实施例涉及的一种确定相似文件的示意图;
图11是本申请一示例性实施例提供的可执行文件匹配流程示意图;
图12是本申请一示例性实施例提供的可执行文件匹配装置的结构方框图;
图13是本申请一个示例性实施例提供的计算机设备的结构框图;
图14是本申请一个示例性实施例提供的计算机设备的结构框图。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本申请相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本申请的一些方面相一致的装置和方法的例子。
本申请所示的方案可以由计算机设备来执行,该计算机设备可以包括用户终端和服务器中的至少一种。其中,用户终端可以包括个人电脑、智能手机、平板电脑或者电子书阅读器等等;而服务器可以是单个服务器,或者,服务器可以是由多个服务器组成的服务器集群,或者,服务器也可以是云计算中心。
其中,本申请所示的方案可以由用户终端单独实现,或者,本申请所示的方案也可以由服务器单独实现,或者,本申请所示的方案也可以由用户终端和服务器配合实现。
在对本申请所示的各个实施例进行说明之前,首先对本申请涉及到的几个概念进行介绍:
1)可执行文件
可执行文件(executable file)是指可以由计算机设备的操作系统进行加载并执行的文件。根据操作系统不同,可执行文件格式也不同,比如Windows系统下的可执行文件是后缀名为.exe、.sys或者.com的文件,Linux系统下的可执行文件是后缀名为.elf的文件,安卓(Android)系统下的可执行文件是后缀名为.dex或者.elf的文件等等。
2)操作码
在计算机科学领域中,操作码(Operation Code,OPCode)被用于描述机器语言指令中,指定要执行某种操作的那部分机器码,构成OPCode的指令格式和规范由处理器的指令规范指定。除了指令本身以外通常还有指令所需要的操作数,(也可能有些指令不需要显示的操作数)。这些操作数可能是寄存器中的值,堆栈中的值,某块内存的值或者IO端口中的值等等。
OPCode在不同的场合中通常具有不同的含义,例如PHP(HypertextPreprocessor,超文本预处理器)虚拟机、java虚拟机以及一些软件保护虚拟机中的最小操作单元都可以称为OPCode。
3)汇编指令
汇编指令是汇编语言中使用的一些操作符和助记符,还包括一些伪指令(如assume,end),用于告诉汇编程序如何进行汇编的指令。典型的汇编指令中包括操作码以及零或多个操作数。
4)N-gram模型
N-gram模型也称为N元模型,经常用于自然语言处理等领域。N-gram模型假设第m个词的出现只与前面的m-1个词相关。比如,假设原始序列为ABCDEFGH,则N-gram处理后可以表示如下:
2-gram:{AB},{BC},{CD},{DE},{EF},{FG},{GH};
3-gram:{ABC},{BCD},{CDE},{DEF},{EFG},{FGH};
4-gram:{ABCD},{BCDE},{CDEF},{DEFG},{EFGH};
5-gram:{ABCDE},{BCDEF},{CDEFG},{DEFGH}。
在一个可执行文件的各种变种文件中,操作码是最稳定,最不容易发生改变的部分,本申请所示的方案,就是在检测两个可执行文件是否为相似文件时,基于两个可执行文件各自对应的操作码进行检测匹配,以提高可执行文件匹配的准确性。
请参考图1,其示出了本申请一个示例性的实施例提供的可执行文件匹配方法的方法流程图。如图1所示,该方法可以由计算机设备执行。该可执行文件匹配方法可以包括如下步骤:
步骤11,获取第一可执行文件和第二可执行文件。
其中,第一可执行文件和第二可执行文件是由操作系统加载并执行的文件。
在本申请实施例中,上述第一可执行文件和第二可执行文件可以是文件格式相同的可执行文件。比如,上述第一可执行文件和第二可执行文件可以同为.exe文件,或者,上述第一可执行文件和第二可执行文件可以同为.elf文件。
在另一种可能的实现方式中,上述第一可执行文件和第二可执行文件也可以是由相同的操作系统加载并执行,且文件格式不同的两个可执行文件,比如,以操作系统是windows为例,上述第一可执行文件和第二可执行文件可以分别是.exe文件和.sys文件。
或者,在又一种可能的实现方式中,上述第一可执行文件和第二可执行文件也可以是不限操作系统和文件格式的两个可执行文件,比如,上述第一可执行文件和第二可执行文件可以分别是.exe文件和.elf文件。
步骤12,分别提取该第一可执行文件和该第二可执行文件各自的操作码指示向量,该操作码指示向量用于指示对应的可执行文件中包含的操作码。
步骤13,获取该第一可执行文件和该第二可执行文件各自的操作码指示向量之间的相似度。
步骤14,根据该相似度获取匹配结果,该匹配结果用于指示该第一可执行文件和该第二可执行文件是否为相似文件。
请参考图2,其示出了本申请实施例涉及的一种可执行文件匹配的流程图。如图2所示,计算机设备从可执行文件1中提取操作码指示向量1,并从可执行文件2中提取操作码指示向量2,并计算操作码指示向量1和操作码指示向量2之间的相似度,最后根据操作码指示向量1和操作码指示向量2之间的相似度确定可执行文件1和可执行文件2是否为相似文件。
本申请实施例所示的方案,通过提取可执行文件中的操作码所对应的操作码指示向量,以操作码指示向量之间的相似性来表示可执行文件的相似性,从而提高两个或者多个可执行文件之间的相似性匹配的准确性。
请参考图3,其示出了本申请一个示例性的实施例提供的可执行文件匹配方法的方法流程图。如图3所示,该方法可以由计算机设备执行。该可执行文件匹配方法可以包括如下步骤:
步骤301,获取第一可执行文件和第二可执行文件。
在一种可能的实现方式中,当本申请实施例所示的方案由用户终端或者服务器单独实现时,用户可以通过用户终端或者服务器提供的指定界面选择需要做相似性匹配的两个可执行文件,用户终端或者服务器根据用户的选择操作获取该第一可执行文件和第二可执行文件。
或者,在另一种可能的实现方式中,当本申请实施例所示的方案由用户终端和服务器配合实现时,用户可以通过用户终端提供的指定界面选择需要做相似性匹配的两个可执行文件,用户终端根据用户的选择操作,将第一可执行文件和第二可执行文件发送给服务器。
步骤302,对该第一可执行文件和该第二可执行文件分别进行反汇编,获得该第一可执行文件的代码文件以及该第二可执行文件的代码文件。
在实际应用中,可执行文件通常是由源代码经过编译生成的二进制文件,因此,在从可执行文件中提取操作码指示向量时,计算机设备首先需要对可执行文件进行反汇编,以获得可执行文件的代码文件。
其中,计算机设备可以通过反汇编工具,比如交互式反汇编器(InteractiveDisassembler,IDA),对二进制的可执行文件进行反汇编。
比如,请参考图4,其示出了本申请实施例涉及的一种反汇编示意图。如图4所示,可执行文件以二进制形式存在,使用IDA等工具对可执行文件进行反汇编,可以得到.asm文件(即上述的代码文件)。
步骤303,从该第一可执行文件的代码文件中提取该第一可执行文件的操作码指示向量,并从该第二可执行文件的代码文件中提取该第二可执行文件的操作码指示向量。
其中,在分别提取第一可执行文件和第二可执行文件的操作码指示向量时,计算机设备可以提取目标文件中包含的各个操作码,该目标文件是第一可执行文件和第二可执行文件中的任意文件;将该各个操作码按照提取顺序进行排列,获得的操作码序列;并根据该操作码序列获取该目标文件的操作码指示向量。
在实际应用中,两个可执行文件中即便包含相同的操作码,若其中操作码所在的汇编指令不同,或者,汇编指令之间的组合方式不同,则这两个可执行文件也可能是不相似的文件。
而在本申请实施例中,计算机设备在从可执行文件中提取操作码指示向量时,可以将可执行文件中的操作码按照提取顺序进行排列,并从排列获得的操作码序列中获取操作码指示向量,也就是说,上述获取的操作码指示向量除了指示可执行文件中包含哪些操作码之外,还可以指示操作码在可执行文件中组合顺序,从而进一步的提高基于操作码进行可执行文件的相似性匹配的准确性。
可选的,在根据该操作码序列获取上述目标文件的操作码指示向量时,计算机设备可以对该操作码序列进行多元划分处理,获得该操作码序列的组合集合,该组合集合中的每一个元素是由该操作码序列中相邻的N个操作码按照在该操作码序列中的顺序排列而成的操作码组合,N为大于或者等于1的整数;根据该组合集合生成该目标文件的操作码指示向量,该操作码指示向量中的每一个元素对应一种由N个操作码组成的操作码组合,且操作码指示向量中的每一个元素的数值是对应的操作码组合在该组合集合中出现的次数。
以图4获得的.asm文件为例,请参考图5,其示出了本申请实施例涉及的一种操作码序列提取示意图。如图5所示,上面得到的.asm文件每一行的格式为:
CODE:[地址][操作码][操作数]。
一个典型的汇编指令包括操作码和零或多个操作数。其中,操作码可以用“MOV”、“PUSH”等助记符来表示,操作数则可能是寄存器、常量或内存地址等。在实际应用中,操作数部分在重新编译后会出现一定的随机性,即根据不同的编译和优化策略,操作数可能会有一定的变化,而操作码部分是最能代表代码语义的部分,并且也是相对稳定的部分,一般不会发生变化。因此,在本申请实施例中,计算机设备可以提取出操作码部分来作为我们相似度匹配的基础。如图5所示,计算机设备从.asm文件中提取出的操作码序列为:push,push,push,call,add。
在本申请实施例中,在按照根据该操作码序列获取该文件的操作码指示向量时,计算机设备可以通过N-gram模型来对操作码序列进行多元划分处理。N-gram用于划分给定操作码序列的N个项的连续序列,其中,N-gram在浮动窗口上计算,不同的N值会生成不同的结果,例如对于上述图5中提取出的操作码序列序列来说:
若N=1,即划分获得的1-gram为:[push]、[push]、[push]、[call]以及[add];
若N=2,即划分获得的2-gram为:[push,push]、[push,push]、[push,call]以及[call,add];
若N=3,即划分获得的3-gram为:[push,push,push]、[push,push,call]以及[push,call,add];
若N=4,即划分获得的4-gram为:[push,push,push,call]以及[push,push,call,add]。
其中,上述N的取值可以根据经验或者实验来确定,假定选取N=3,则上述计算结果有3个3-gram,即:[push,push,push]、[push,push,call]以及[push,call,add]。
对于指定的指令集,计算机设备可以预先获得指令集中的操作码的总数的,假如可执行文件对应的指令集的操作码的总数是m,那么计算机可以计算出N-gram的总数为:m^N,则计算机设备可以生成一个m^N维的向量,向量的每一项为一个整数,代表这个位置的N-gram在样本里面出现的次数。比如上述例子里用的intel x86指令集就有大约400条操作码,则所有可能的N-gram就有400^N种,对于N=3,总共有400^3=64000000个可能的3-gram,生成的向量就是一个64000000维的向量。以上述样本里出现的3-gram:[push,push,push]、[push,push,call]以及[push,call,add]为例,一共出现了3个3-gram,并且每个3-gram都只出现了一次。请参考图6,其示出了本申请实施例涉及的一种操作码指示向量的示意图。如图6所示,基于上述样本中的3-gram生成的操作码指示向量是一个只有三个项是1,其余项全是0的高维稀疏向量。
步骤304,获取该第一可执行文件和该第二可执行文件各自的操作码指示向量之间的相似度。
在一种可能的实现方式中,在获取该第一可执行文件和该第二可执行文件各自的操作码指示向量之间的相似度时,计算机设备可以获取该第一可执行文件的操作码指示向量与该第二可执行文件的操作码指示向量之间的夹角的余弦值;并根据该余弦值获取该第一可执行文件和该第二可执行文件各自的操作码指示向量之间的相似度。
可选的,在根据该余弦值获取该第一可执行文件和该第二可执行文件各自的操作码指示向量之间的相似度时,计算机设备可以将该余弦值直接获取为该第一可执行文件和该第二可执行文件各自的操作码指示向量之间的相似度。
按照本申请实施例所示的上述步骤,可以得到要获取相似度的两个样本(即第一可执行文件和第二可执行文件)各自的N-gram次数向量(即操作码指示向量),进一步的,计算机设备可以通过计算这两个向量夹角的余弦值来评价这两个样本的相似度。其中,余弦值越接近1,就表明夹角越接近0度,也就是说这两个向量越相似,这也称作“余弦相似性”。
比如,请参考图7,其示出了本申请实施例涉及的一种向量夹角示意图。如图7所示两个向量(即a向量和b向量)的夹角很小,可以认为a向量和b向量有很高的相似性。请参考图8,其示出了本申请实施例涉及的另一种向量夹角示意图。如图8所示,在极端情况下,a向量和b向量完全重合。
如图7或图8所示的两个向量可以认为是相等的,也就是说a向量和b向量分别代表的可执行文件是相似的,或者说是相等的。
请参考图9,其示出了本申请实施例涉及的又一种向量夹角示意图。如果a向量和b向量之间的夹角较大,或者反方向,比如,如图9所示,两个向量(a向量和b向量)的夹角很大,则可以认为a向量和b向量有很低的相似性,或者说a向量和b向量各自代表的可执行文件基本不相似。
基于上述原理,在本申请实施例中,计算机设备可以通过两个操作码指示向量之间的夹角的大小,来判断向量的相似程度。夹角越小,就代表越相似。
其中,以两个向量分别为a向量=(x1,x2,…,xi,…,xn)以及b向量=(y1,y2,…,yi,…,yn)为例,a向量和b向量之间夹角的大小可以通过如下的余弦公式来衡量:
例如:a向量=(1,1,2,1,1,1,0,0,0),b向量=(1,1,1,0,1,1,1,1,1),夹角余弦值计算过程如下:
同理,计算机设备可以通过上述计算方式计算出第一可执行文件和第二可执行文件各自对应的操作码指示向量的夹角的余弦值。
在另一种可能的实现方式中,在计算该第一可执行文件和该第二可执行文件各自的操作码指示向量之间的相似度时,计算机设备还可以获取该第一可执行文件的操作码指示向量与该第二可执行文件的操作码指示向量之间的多维空间距离;并根据该多维空间距离获取该第一可执行文件和该第二可执行文件各自的操作码指示向量之间的相似度。可选的,该多维空间距离包括欧几里德距离、曼哈顿距离、马氏距离、兰式距离以及切比雪夫距离中的至少一种。
比如,以欧几里德距离为例,欧几里德距离的计算公式为:
利用欧几里德距离d定义相似度s时,s=1/(1+d),其中,s的取值范围为[0,1],d的数值越小,s的数值就越大,表示两个向量的空间距离越近,相似度越大。
类似的,曼哈顿距离、马氏距离、兰式距离以及切比雪夫距离的公式虽然与欧几里德距离不同,但是对相似度的表示原理类似。
步骤305,根据该相似度获取匹配结果,该匹配结果用于指示该第一可执行文件和该第二可执行文件是否为相似文件。
可选的,当该相似度大于预设的相似度阈值时,计算机设备可以获取第一匹配结果,该第一匹配结果用于指示该第一可执行文件和该第二可执行文件为相似文件。
相应的,当该相似度不大于预设的相似度阈值时,计算机设备可以获取第二匹配结果,该第二匹配结果用于指示该第一可执行文件和该第二可执行文件不是相似文件。
在本申请实施例中,从计算过程可以看出,上面已经计算出两个向量的余弦相似度(Cosine_Similarity)的取值范围是[-1,1],该余弦相似度的值越大,就表示两个可执行文件越相似。请参考图10,其示出了本申请实施例涉及的一种确定相似文件的示意图。如图10所示,开发人员可以根据经验或者试验预先设定一个相似度阈值(Min_Cosine_Similarity),通过上述计算出的余弦相似度与该相似度阈值之间的大小关系来判定两个可执行文件的相似度,当余弦相似度>相似度阈值时,可以认为这两个可执行文件是相似文件,反之,当余弦相似度≤相似度阈值时,可以认为这两个可执行文件不是相似文件。
通过上述方案,计算机设备可以提取可执行文件中最稳定和最能代表程序本质逻辑的操作码,并使用操作码序列的N-gram次数向量来作为相似度计算的基础,该方案考虑到了程序的本质逻辑和统计特性,可以较好的抵抗病毒作者或软件剽窃者对源码或反编译代码的修改引入的干扰,从而极大的提高了病毒或剽窃程序逃避检测的难度。
综上所述,本申请实施例所示的方案,通过提取可执行文件中的操作码所对应的操作码指示向量,以操作码指示向量之间的相似性来表示可执行文件的相似性,从而提高两个或者多个可执行文件之间的相似性匹配的准确性。
此外,本申请实施例所示的方案,在分别提取第一可执行文件和第二可执行文件的操作码指示向量时,计算机设备可以提取文件中包含的各个操作码,将该各个操作码按照提取顺序进行排列,获得的操作码序列,并根据该操作码序列获取该文件的操作码指示向量,使得获取的操作码指示向量除了指示可执行文件中包含哪些操作码之外,还可以指示操作码在可执行文件中组合顺序,从而进一步的提高基于操作码进行可执行文件相似性匹配的准确性。
以上述图3对应实施例所示的方案应用于对可执行文件A和可执行文件B进行相似性匹配为例,请参考图11,其示出了本申请一个示例性实施例提供的可执行文件匹配流程示意图。如图11所示,计算机设备分别对可执行文件A和可执行文件B进行反汇编,并从反汇编获得的两个文件分别对应的代码文件中提取操作码序列,根据两个文件分别对应的操作码序列进行N-gram划分,根据划分结果分别计算两个文件各自对应的N-gram次数向量(即图11中的向量a和向量b),计算机设备计算向量a和向量b之间的夹角的余弦值,并根据余弦值与预先设置的余弦值阈值之间的大小关系判断可执行文件A和可执行文件B是否为相似文件。
本申请通过反汇编可执行文件的代码段,获取其中的指令,跳过指令中容易变化的部分,提取比较稳定的操作码部分,然后计算操作码序列的N-gram,最后计算文件的N-gram次数向量。在进行相似度匹配时,首先分别计算两个待匹配的可执行文件的N-gram次数向量,然后计算两个向量的夹角的余弦,从而得到的两个可执行文件的相似度,若相似度满足条件(比如大于或者等于阈值),则判定两个可执行文件相似,否则判定两个可执行文件不相似。本申请所示的方案能够有效识别那些通过混淆或者重编译等方法企图绕过检测的病毒变种和剽窃程序。
图12是本申请一个示例性实施例提供的一种可执行文件匹配装置的结构方框图。该可执行文件匹配装置可以用于计算机设备中,以执行图1或图3对应实施例所示的方法的全部或者部分步骤。该可执行文件匹配装置可以包括:
文件获取模块1201,用于获取第一可执行文件和第二可执行文件,所述第一可执行文件和所述第二可执行文件是由操作系统加载并执行的文件;
提取模块1202,用于分别提取所述第一可执行文件和所述第二可执行文件各自的操作码指示向量,所述操作码指示向量用于指示对应的可执行文件中包含的操作码;
相似度获取模块1203,用于获取所述第一可执行文件和所述第二可执行文件各自的操作码指示向量之间的相似度;
匹配模块1204,用于根据所述相似度获取匹配结果,所述匹配结果用于指示所述第一可执行文件和所述第二可执行文件是否为相似文件。
可选的,所述提取模块1202,包括:
提取单元,用于提取目标文件中的各个操作码,所述目标文件是所述第一可执行文件和所述第二可执行文件中的任意文件;
操作码序列获得单元,用于将所述各个操作码按照提取顺序进行排列,获得的操作码序列;
向量获取单元,用于根据所述操作码序列获取所述目标文件的操作码指示向量。
可选的,所述向量获取单元,具体用于,
对所述操作码序列进行多元划分处理,获得所述操作码序列的组合集合,所述组合集合中的每一个元素是由所述操作码序列中相邻的N个操作码按照在所述操作码序列中的顺序排列而成的操作码组合,N为大于或者等于1的整数;
根据所述组合集合生成所述目标文件的操作码指示向量,所述操作码指示向量中的每一个元素对应一种由N个操作码组成的操作码组合,且所述操作码指示向量中的每一个元素的数值是对应的操作码组合在所述组合集合中出现的次数。
可选的,所述相似度获取模块1203,包括:
余弦值获取单元,用于获取所述第一可执行文件的操作码指示向量与所述第二可执行文件的操作码指示向量之间的夹角的余弦值;
相似度获取单元,用于根据所述余弦值获取所述第一可执行文件和所述第二可执行文件各自的操作码指示向量之间的相似度。
可选的,所述相似度获取单元,具体用于将所述余弦值获取为所述第一可执行文件和所述第二可执行文件各自的操作码指示向量之间的相似度。
可选的,所述相似度获取模块1203,具体用于,
获取所述第一可执行文件的操作码指示向量与所述第二可执行文件的操作码指示向量之间的多维空间距离;
根据所述多维空间距离获取所述第一可执行文件和所述第二可执行文件各自的操作码指示向量之间的相似度。
可选的,所述多维空间距离包括欧几里德距离、曼哈顿距离、马氏距离、兰式距离以及切比雪夫距离中的至少一种。
可选的,所述匹配模块1204,具体用于,当所述相似度大于预设的相似度阈值时,获取第一匹配结果,所述第一匹配结果用于指示所述第一可执行文件和所述第二可执行文件为相似文件。
可选的,所述提取模块1202,具体用于,
对所述第一可执行文件和所述第二可执行文件分别进行反汇编,获得所述第一可执行文件的代码文件以及所述第二可执行文件的代码文件;
从所述第一可执行文件的代码文件中提取所述第一可执行文件的操作码指示向量,并从所述第二可执行文件的代码文件中提取所述第二可执行文件的操作码指示向量。
综上所述,本申请实施例所示的装置,通过提取可执行文件中的操作码所对应的操作码指示向量,以操作码指示向量之间的相似性来表示可执行文件的相似性,从而提高两个或者多个可执行文件之间的相似性匹配的准确性。
此外,本申请实施例所示的装置,在分别提取第一可执行文件和第二可执行文件的操作码指示向量时,计算机设备可以提取文件中包含的各个操作码,将该各个操作码按照提取顺序进行排列,获得的操作码序列,并根据该操作码序列获取该文件的操作码指示向量,使得获取的操作码指示向量除了指示可执行文件中包含哪些操作码之外,还可以指示操作码在可执行文件中组合顺序,从而进一步的提高基于操作码进行可执行文件相似性匹配的准确性。
图13是本申请一个示例性实施例提供的计算机设备1300的结构框图。所述计算机设备1300包括中央处理单元(CPU)1301、包括随机存取存储器(RAM)1302和只读存储器(ROM)1303的系统存储器1304,以及连接系统存储器1304和中央处理单元1301的系统总线1305。所述计算机设备1300还包括帮助计算机内的各个器件之间传输信息的基本输入/输出系统(I/O系统)1306,和用于存储操作系统1313、应用程序1314和其他程序模块1315的大容量存储设备1307。
所述基本输入/输出系统1306包括有用于显示信息的显示器1308和用于用户输入信息的诸如鼠标、键盘之类的输入设备1309。其中所述显示器1308和输入设备1309都通过连接到系统总线1305的输入输出控制器1310连接到中央处理单元1301。所述基本输入/输出系统1306还可以包括输入输出控制器1310以用于接收和处理来自键盘、鼠标、或电子触控笔等多个其他设备的输入。类似地,输入输出控制器1310还提供输出到显示屏、打印机或其他类型的输出设备。
所述大容量存储设备1307通过连接到系统总线1305的大容量存储控制器(未示出)连接到中央处理单元1301。所述大容量存储设备1307及其相关联的计算机可读介质为计算机设备1300提供非易失性存储。也就是说,所述大容量存储设备1307可以包括诸如硬盘或者CD-ROM驱动器之类的计算机可读介质(未示出)。
不失一般性,所述计算机可读介质可以包括计算机存储介质和通信介质。计算机存储介质包括以用于存储诸如计算机可读指令、数据结构、程序模块或其他数据等信息的任何方法或技术实现的易失性和非易失性、可移动和不可移动介质。计算机存储介质包括RAM、ROM、EPROM、EEPROM、闪存或其他固态存储其技术,CD-ROM、DVD或其他光学存储、磁带盒、磁带、磁盘存储或其他磁性存储设备。当然,本领域技术人员可知所述计算机存储介质不局限于上述几种。上述的系统存储器1304和大容量存储设备1307可以统称为存储器。
计算机设备1300可以通过连接在所述系统总线1305上的网络接口单元1311连接到互联网或者其它网络设备。
所述存储器还包括一个或者一个以上的程序,所述一个或者一个以上程序存储于存储器中,中央处理器1301通过执行该一个或一个以上程序来实现图1或图3任一所示的方法中的全部或者部分步骤。
图14是本申请一个示例性实施例提供的计算机设备1400的结构框图。该计算机设备1400可以是终端,比如智能手机、平板电脑、MP3播放器(Moving Picture Experts GroupAudio Layer III,动态影像专家压缩标准音频层面3)、MP4(Moving Picture ExpertsGroup Audio Layer IV,动态影像专家压缩标准音频层面4)播放器、笔记本电脑或台式电脑。计算机设备1400还可能被称为用户设备、便携式终端、膝上型终端、台式终端等其他名称。
通常,计算机设备1400包括有:处理器1401和存储器1402。
处理器1401可以包括一个或多个处理核心,比如4核心处理器、8核心处理器等。处理器1401可以采用DSP(Digital Signal Processing,数字信号处理)、FPGA(Field-Programmable Gate Array,现场可编程门阵列)、PLA(Programmable Logic Array,可编程逻辑阵列)中的至少一种硬件形式来实现。处理器1401也可以包括主处理器和协处理器,主处理器是用于对在唤醒状态下的数据进行处理的处理器,也称CPU;协处理器是用于对在待机状态下的数据进行处理的低功耗处理器。在一些实施例中,处理器1401可以在集成有GPU(Graphics Processing Unit,图像处理器),GPU用于负责显示屏所需要显示的内容的渲染和绘制。一些实施例中,处理器1401还可以包括AI(Artificial Intelligence,人工智能)处理器,该AI处理器用于处理有关机器学习的计算操作。
存储器1402可以包括一个或多个计算机可读存储介质,该计算机可读存储介质可以是非暂态的。存储器1402还可包括高速随机存取存储器,以及非易失性存储器,比如一个或多个磁盘存储设备、闪存存储设备。在一些实施例中,存储器1402中的非暂态的计算机可读存储介质用于存储至少一个指令,该至少一个指令用于被处理器1401所执行以实现本申请中各个方法实施例提供的方法。
在一些实施例中,计算机设备1400还可选包括有:外围设备接口1403和至少一个外围设备。处理器1401、存储器1402和外围设备接口1403之间可以通过总线或信号线相连。各个外围设备可以通过总线、信号线或电路板与外围设备接口1403相连。具体地,外围设备包括:射频电路1404、触摸显示屏1405、摄像头1406、音频电路1407、定位组件1408和电源1409中的至少一种。
外围设备接口1403可被用于将I/O(Input/Output,输入/输出)相关的至少一个外围设备连接到处理器1401和存储器1402。在一些实施例中,处理器1401、存储器1402和外围设备接口1403被集成在同一芯片或电路板上;在一些其他实施例中,处理器1401、存储器1402和外围设备接口1403中的任意一个或两个可以在单独的芯片或电路板上实现,本实施例对此不加以限定。
射频电路1404用于接收和发射RF(Radio Frequency,射频)信号,也称电磁信号。射频电路1404通过电磁信号与通信网络以及其他通信设备进行通信。射频电路1404将电信号转换为电磁信号进行发送,或者,将接收到的电磁信号转换为电信号。可选地,射频电路1404包括:天线系统、RF收发器、一个或多个放大器、调谐器、振荡器、数字信号处理器、编解码芯片组、用户身份模块卡等等。射频电路1404可以通过至少一种无线通信协议来与其它终端进行通信。该无线通信协议包括但不限于:万维网、城域网、内联网、各代移动通信网络(2G、3G、4G及5G)、无线局域网和/或WiFi(Wireless Fidelity,无线保真)网络。在一些实施例中,射频电路1404还可以包括NFC(Near Field Communication,近距离无线通信)有关的电路,本申请对此不加以限定。
显示屏1405用于显示UI(User Interface,用户界面)。该UI可以包括图形、文本、图标、视频及其它们的任意组合。当显示屏1405是触摸显示屏时,显示屏1405还具有采集在显示屏1405的表面或表面上方的触摸信号的能力。该触摸信号可以作为控制信号输入至处理器1401进行处理。此时,显示屏1405还可以用于提供虚拟按钮和/或虚拟键盘,也称软按钮和/或软键盘。在一些实施例中,显示屏1405可以为一个,设置计算机设备1400的前面板;在另一些实施例中,显示屏1405可以为至少两个,分别设置在计算机设备1400的不同表面或呈折叠设计;在再一些实施例中,显示屏1405可以是柔性显示屏,设置在计算机设备1400的弯曲表面上或折叠面上。甚至,显示屏1405还可以设置成非矩形的不规则图形,也即异形屏。显示屏1405可以采用LCD(Liquid Crystal Display,液晶显示屏)、OLED(OrganicLight-Emitting Diode,有机发光二极管)等材质制备。
摄像头组件1406用于采集图像或视频。可选地,摄像头组件1406包括前置摄像头和后置摄像头。通常,前置摄像头设置在终端的前面板,后置摄像头设置在终端的背面。在一些实施例中,后置摄像头为至少两个,分别为主摄像头、景深摄像头、广角摄像头、长焦摄像头中的任意一种,以实现主摄像头和景深摄像头融合实现背景虚化功能、主摄像头和广角摄像头融合实现全景拍摄以及VR(Virtual Reality,虚拟现实)拍摄功能或者其它融合拍摄功能。在一些实施例中,摄像头组件1406还可以包括闪光灯。闪光灯可以是单色温闪光灯,也可以是双色温闪光灯。双色温闪光灯是指暖光闪光灯和冷光闪光灯的组合,可以用于不同色温下的光线补偿。
音频电路1407可以包括麦克风和扬声器。麦克风用于采集用户及环境的声波,并将声波转换为电信号输入至处理器1401进行处理,或者输入至射频电路1404以实现语音通信。出于立体声采集或降噪的目的,麦克风可以为多个,分别设置在计算机设备1400的不同部位。麦克风还可以是阵列麦克风或全向采集型麦克风。扬声器则用于将来自处理器1401或射频电路1404的电信号转换为声波。扬声器可以是传统的薄膜扬声器,也可以是压电陶瓷扬声器。当扬声器是压电陶瓷扬声器时,不仅可以将电信号转换为人类可听见的声波,也可以将电信号转换为人类听不见的声波以进行测距等用途。在一些实施例中,音频电路1407还可以包括耳机插孔。
定位组件1408用于定位计算机设备1400的当前地理位置,以实现导航或LBS(Location Based Service,基于位置的服务)。定位组件1408可以是基于美国的GPS(Global Positioning System,全球定位系统)、中国的北斗系统或俄罗斯的伽利略系统的定位组件。
电源1409用于为计算机设备1400中的各个组件进行供电。电源1409可以是交流电、直流电、一次性电池或可充电电池。当电源1409包括可充电电池时,该可充电电池可以是有线充电电池或无线充电电池。有线充电电池是通过有线线路充电的电池,无线充电电池是通过无线线圈充电的电池。该可充电电池还可以用于支持快充技术。
在一些实施例中,计算机设备1400还包括有一个或多个传感器1410。该一个或多个传感器1410包括但不限于:加速度传感器1411、陀螺仪传感器1412、压力传感器1413、指纹传感器1414、光学传感器1415以及接近传感器1416。
加速度传感器1411可以检测以计算机设备1400建立的坐标系的三个坐标轴上的加速度大小。比如,加速度传感器1411可以用于检测重力加速度在三个坐标轴上的分量。处理器1401可以根据加速度传感器1411采集的重力加速度信号,控制触摸显示屏1405以横向视图或纵向视图进行用户界面的显示。加速度传感器1411还可以用于游戏或者用户的运动数据的采集。
陀螺仪传感器1412可以检测计算机设备1400的机体方向及转动角度,陀螺仪传感器1412可以与加速度传感器1411协同采集用户对计算机设备1400的3D动作。处理器1401根据陀螺仪传感器1412采集的数据,可以实现如下功能:动作感应(比如根据用户的倾斜操作来改变UI)、拍摄时的图像稳定、游戏控制以及惯性导航。
压力传感器1413可以设置在计算机设备1400的侧边框和/或触摸显示屏1405的下层。当压力传感器1413设置在计算机设备1400的侧边框时,可以检测用户对计算机设备1400的握持信号,由处理器1401根据压力传感器1413采集的握持信号进行左右手识别或快捷操作。当压力传感器1413设置在触摸显示屏1405的下层时,由处理器1401根据用户对触摸显示屏1405的压力操作,实现对UI界面上的可操作性控件进行控制。可操作性控件包括按钮控件、滚动条控件、图标控件、菜单控件中的至少一种。
指纹传感器1414用于采集用户的指纹,由处理器1401根据指纹传感器1414采集到的指纹识别用户的身份,或者,由指纹传感器1414根据采集到的指纹识别用户的身份。在识别出用户的身份为可信身份时,由处理器1401授权该用户执行相关的敏感操作,该敏感操作包括解锁屏幕、查看加密信息、下载软件、支付及更改设置等。指纹传感器1414可以被设置计算机设备1400的正面、背面或侧面。当计算机设备1400上设置有物理按键或厂商Logo时,指纹传感器1414可以与物理按键或厂商Logo集成在一起。
光学传感器1415用于采集环境光强度。在一个实施例中,处理器1401可以根据光学传感器1415采集的环境光强度,控制触摸显示屏1405的显示亮度。具体地,当环境光强度较高时,调高触摸显示屏1405的显示亮度;当环境光强度较低时,调低触摸显示屏1405的显示亮度。在另一个实施例中,处理器1401还可以根据光学传感器1415采集的环境光强度,动态调整摄像头组件1406的拍摄参数。
接近传感器1416,也称距离传感器,通常设置在计算机设备1400的前面板。接近传感器1416用于采集用户与计算机设备1400的正面之间的距离。在一个实施例中,当接近传感器1416检测到用户与计算机设备1400的正面之间的距离逐渐变小时,由处理器1401控制触摸显示屏1405从亮屏状态切换为息屏状态;当接近传感器1416检测到用户与计算机设备1400的正面之间的距离逐渐变大时,由处理器1401控制触摸显示屏1405从息屏状态切换为亮屏状态。
本领域技术人员可以理解,图14中示出的结构并不构成对计算机设备1400的限定,可以包括比图示更多或更少的组件,或者组合某些组件,或者采用不同的组件布置。
在一示例性实施例中,还提供了一种包括指令的非临时性计算机可读存储介质,例如包括至少一条指令、至少一段程序、代码集或指令集的存储器,上述至少一条指令、至少一段程序、代码集或指令集可由处理器执行以完成上述图1或图3对应实施例所示的方法的全部或者部分步骤。例如,所述非临时性计算机可读存储介质可以是ROM、随机存取存储器(RAM)、CD-ROM、磁带、软盘和光数据存储设备等。
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本申请的其它实施方案。本申请旨在涵盖本申请的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本申请的一般性原理并包括本申请未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本申请的真正范围和精神由下面的权利要求指出。
应当理解的是,本申请并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本申请的范围仅由所附的权利要求来限制。

Claims (15)

1.一种可执行文件匹配方法,其特征在于,所述方法包括:
获取第一可执行文件和第二可执行文件,所述第一可执行文件和所述第二可执行文件是由操作系统加载并执行的文件;
提取所述第一可执行文件和所述第二可执行文件各自的操作码指示向量,所述操作码指示向量用于指示对应的可执行文件中包含的操作码;
获取所述第一可执行文件和所述第二可执行文件各自的操作码指示向量之间的相似度;
根据所述相似度获取匹配结果,所述匹配结果用于指示所述第一可执行文件和所述第二可执行文件是否为相似文件。
2.根据权利要求1所述的方法,其特征在于,所述提取所述第一可执行文件和所述第二可执行文件各自的操作码指示向量,包括:
提取目标文件中的各个操作码,所述目标文件是所述第一可执行文件和所述第二可执行文件中的任意文件;
将所述各个操作码按照提取顺序进行排列,获得的操作码序列;
根据所述操作码序列获取所述目标文件的操作码指示向量。
3.根据权利要求2所述的方法,其特征在于,所述根据所述操作码序列获取所述目标文件的操作码指示向量,包括:
对所述操作码序列进行多元划分处理,获得所述操作码序列的组合集合,所述组合集合中的每一个元素是由所述操作码序列中相邻的N个操作码按照在所述操作码序列中的顺序排列而成的操作码组合,N为大于或者等于1的整数;
根据所述组合集合生成所述目标文件的操作码指示向量,所述操作码指示向量中的每一个元素对应一种由N个操作码组成的操作码组合,且所述操作码指示向量中的每一个元素的数值是对应的操作码组合在所述组合集合中出现的次数。
4.根据权利要求3所述的方法,其特征在于,所述按照预设的向量相似度算法获取所述第一可执行文件和所述第二可执行文件各自的操作码指示向量之间的相似度,包括:
获取所述第一可执行文件的操作码指示向量与所述第二可执行文件的操作码指示向量之间的夹角的余弦值;
根据所述余弦值获取所述第一可执行文件和所述第二可执行文件各自的操作码指示向量之间的相似度。
5.根据权利要求4所述的方法,其特征在于,所述根据所述余弦值获取所述第一可执行文件和所述第二可执行文件各自的操作码指示向量之间的相似度,包括:
将所述余弦值获取为所述第一可执行文件和所述第二可执行文件各自的操作码指示向量之间的相似度。
6.根据权利要求3所述的方法,其特征在于,所述获取所述第一可执行文件和所述第二可执行文件各自的操作码指示向量之间的相似度,包括:
获取所述第一可执行文件的操作码指示向量与所述第二可执行文件的操作码指示向量之间的多维空间距离;
根据所述多维空间距离获取所述第一可执行文件和所述第二可执行文件各自的操作码指示向量之间的相似度。
7.根据权利要求6所述的方法,其特征在于,所述多维空间距离包括欧几里德距离、曼哈顿距离、马氏距离、兰式距离以及切比雪夫距离中的至少一种。
8.根据权利要求1至7任一所述的方法,其特征在于,所述根据所述相似度获取匹配结果,包括:
当所述相似度大于预设的相似度阈值时,获取第一匹配结果,所述第一匹配结果用于指示所述第一可执行文件和所述第二可执行文件为相似文件。
9.根据权利要求1至7任一所述的方法,其特征在于,所述提取所述第一可执行文件和所述第二可执行文件各自的操作码指示向量,包括:
对所述第一可执行文件和所述第二可执行文件分别进行反汇编,获得所述第一可执行文件的代码文件以及所述第二可执行文件的代码文件;
从所述第一可执行文件的代码文件中提取所述第一可执行文件的操作码指示向量,并从所述第二可执行文件的代码文件中提取所述第二可执行文件的操作码指示向量。
10.一种可执行文件匹配装置,其特征在于,所述装置包括:
文件获取模块,用于获取第一可执行文件和第二可执行文件,所述第一可执行文件和所述第二可执行文件是由操作系统加载并执行的文件;
提取模块,用于提取所述第一可执行文件和所述第二可执行文件各自的操作码指示向量,所述操作码指示向量用于指示对应的可执行文件中包含的操作码;
相似度获取模块,用于获取所述第一可执行文件和所述第二可执行文件各自的操作码指示向量之间的相似度;
匹配模块,用于根据所述相似度获取匹配结果,所述匹配结果用于指示所述第一可执行文件和所述第二可执行文件是否为相似文件。
11.根据权利要求10所述的装置,其特征在于,所述提取模块,包括:
提取单元,用于提取目标文件中的各个操作码,所述目标文件是所述第一可执行文件和所述第二可执行文件中的任意文件;
操作码序列获得单元,用于将所述各个操作码按照提取顺序进行排列,获得的操作码序列;
向量获取单元,用于根据所述操作码序列获取所述目标文件的操作码指示向量。
12.根据权利要求11所述的装置,其特征在于,所述向量获取单元,具体用于,
对所述操作码序列进行多元划分处理,获得所述操作码序列的组合集合,所述组合集合中的每一个元素是由所述操作码序列中相邻的N个操作码按照在所述操作码序列中的顺序排列而成的操作码组合,N为大于或者等于1的整数;
根据所述组合集合生成所述目标文件的操作码指示向量,所述操作码指示向量中的每一个元素对应一种由N个操作码组成的操作码组合,且所述操作码指示向量中的每一个元素的数值是对应的操作码组合在所述组合集合中出现的次数。
13.根据权利要求12所述的装置,其特征在于,所述相似度获取模块,包括:
余弦获取单元,用于获取所述第一可执行文件的操作码指示向量与所述第二可执行文件的操作码指示向量之间的夹角的余弦值;
相似度获取单元,用于根据所述余弦值获取所述第一可执行文件和所述第二可执行文件各自的操作码指示向量之间的相似度。
14.一种计算机设备,其特征在于,所述计算机设备包含处理器和存储器,所述存储器中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或指令集由所述处理器加载并执行以实现如权利要求1至9任一所述的可执行文件匹配方法。
15.一种计算机可读存储介质,其特征在于,所述存储介质中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或指令集由处理器加载并执行以实现如权利要求1至9任一所述的可执行文件匹配方法。
CN201810263931.9A 2018-03-28 2018-03-28 可执行文件匹配方法、装置及计算机设备 Pending CN108446554A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201810263931.9A CN108446554A (zh) 2018-03-28 2018-03-28 可执行文件匹配方法、装置及计算机设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201810263931.9A CN108446554A (zh) 2018-03-28 2018-03-28 可执行文件匹配方法、装置及计算机设备

Publications (1)

Publication Number Publication Date
CN108446554A true CN108446554A (zh) 2018-08-24

Family

ID=63197579

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201810263931.9A Pending CN108446554A (zh) 2018-03-28 2018-03-28 可执行文件匹配方法、装置及计算机设备

Country Status (1)

Country Link
CN (1) CN108446554A (zh)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20130198841A1 (en) * 2012-01-30 2013-08-01 Cisco Technology, Inc. Malware Classification for Unknown Executable Files
US8826439B1 (en) * 2011-01-26 2014-09-02 Symantec Corporation Encoding machine code instructions for static feature based malware clustering
CN107615240A (zh) * 2015-04-17 2018-01-19 巴特尔纪念研究所 用于分析二进制文件的基于生物序列的方案

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8826439B1 (en) * 2011-01-26 2014-09-02 Symantec Corporation Encoding machine code instructions for static feature based malware clustering
US20130198841A1 (en) * 2012-01-30 2013-08-01 Cisco Technology, Inc. Malware Classification for Unknown Executable Files
CN107615240A (zh) * 2015-04-17 2018-01-19 巴特尔纪念研究所 用于分析二进制文件的基于生物序列的方案

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
傅建明;乔伟;高德斌;: "一种基于签名和属性的可执行文件比较", 计算机研究与发展 *
李志周;白金荣;: "基于操作码N-Gram的Windows恶意软件检测", 中小企业管理与科技(中旬刊) *

Similar Documents

Publication Publication Date Title
US9261995B2 (en) Apparatus, method, and computer readable recording medium for selecting object by using multi-touch with related reference point
US9773158B2 (en) Mobile device having face recognition function using additional component and method for controlling the mobile device
US20170220176A1 (en) Electronic device and method of controlling electronic device using grip sensing
EP2811420A2 (en) Method for quickly executing application on lock screen in mobile device, and mobile device therefor
US20140317499A1 (en) Apparatus and method for controlling locking and unlocking of portable terminal
CN110020140A (zh) 推荐内容显示方法、装置及系统
US20150149925A1 (en) Emoticon generation using user images and gestures
US20200104320A1 (en) Method, apparatus and computer device for searching audio, and storage medium
US20170076139A1 (en) Method of controlling mobile terminal using fingerprint recognition and mobile terminal using the same
CN109117635B (zh) 应用程序的病毒检测方法、装置、计算机设备及存储介质
CN108737897A (zh) 视频播放方法、装置、设备及存储介质
CN108922531B (zh) 槽位识别方法、装置、电子设备及存储介质
US11095331B2 (en) Electronic device, protective case for electronic device, and displaying method thereof
WO2022134634A1 (zh) 视频处理方法及电子设备
CN108132790A (zh) 检测无用代码的方法、装置及计算机存储介质
US10409478B2 (en) Method, apparatus, and recording medium for scrapping content
CN103984433A (zh) 用于控制触摸键操作的方法和设备
CN110244999A (zh) 控制目标应用程序运行的方法、装置、设备及存储介质
CN109085991A (zh) 应用程序控制方法及装置、终端、存储介质
KR20200095972A (ko) 버튼 입력에 기능을 맵핑하기 위한 전자 장치 및 방법
CN107943484A (zh) 执行业务功能的方法和装置
CN110377914A (zh) 字符识别方法、装置及存储介质
KR20200102838A (ko) 이미지를 이용하여 콘텐트를 검색하기 위한 장치 및 그 제어 방법
CN108446554A (zh) 可执行文件匹配方法、装置及计算机设备
CN112163677B (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