CN109635565A - 恶意程序的检测方法、装置、计算设备及计算机存储介质 - Google Patents
恶意程序的检测方法、装置、计算设备及计算机存储介质 Download PDFInfo
- Publication number
- CN109635565A CN109635565A CN201811434329.3A CN201811434329A CN109635565A CN 109635565 A CN109635565 A CN 109635565A CN 201811434329 A CN201811434329 A CN 201811434329A CN 109635565 A CN109635565 A CN 109635565A
- Authority
- CN
- China
- Prior art keywords
- program
- instruction
- detected
- sequence
- measured
- 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
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/566—Dynamic detection, i.e. detection performed at run-time, e.g. emulation, suspicious activities
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Hardware Design (AREA)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Health & Medical Sciences (AREA)
- General Health & Medical Sciences (AREA)
- Virology (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Debugging And Monitoring (AREA)
Abstract
本发明公开了一种恶意程序的检测方法、装置、计算设备及计算机存储介质。其中,方法包括:在运行待检测程序时,监控所述待检测程序的指令特征;所述指令特征至少包含待测方法调用序列,和/或,各个方法所对应的待测指令序列;将所述待测方法调用序列与已知恶意程序的参考方法调用序列进行匹配;和/或,将所述各个方法所对应的待测指令序列与已知恶意程序的参考指令序列进行匹配;根据匹配结果确定所述待检测程序是否为恶意程序。本发明方案从待检测程序的待测方法调用序列和/或待测指令序列的层面对待检测程序是否为恶意程序进行确定,进而可以准确的对包括利用重打包等手段所导致的恶意变种病毒的待检测程序进行病毒检测。
Description
技术领域
本发明涉及应用安全技术领域,具体涉及一种恶意程序的检测方法、装置、计算设备及计算机存储介质。
背景技术
应用程序在为社会提供大量便捷服务的同时,各种安全问题和行业乱象也层出不穷,例如,恶意吸费、短信钓鱼、盗取支付信息、窃取个人隐私、远程控制、消耗流量、系统破坏等行为,这些行为都严重危害到用户的隐私和财产安全,而存在上述危害用户隐私和财产安全行为的程序即为恶意程序。一般的,恶意程序可以指在用户不知情或未授权的情况下,在移动终端系统中安装、运行以达到某些不正当目的程序,或者指具有违反国家相关法律法规行为的程序。
为防止恶意程序危害用户隐私和财产安全,在现有技术中,一般通过如下方案以检测出恶意程序:根据待检测程序的安卓安装包(AndroidPackage,简称APK)的特征参数,如:待检测APK文件的名称、MD5证书等,若待检测APK和已知恶意程序具备相同或者相近的恶意特征参数,则可以判断该待检测APK为恶意程序。例如:某已知恶意程序的APK文件名称为“XX抢红包”,该程序的MD5为YYY,那么,可以根据待检测程序的这些APK特征参数判断待检测APK是否为恶意程序。
然而,现有技术中至少存在如下不足:部分恶意程序将APK特征参数(比如文件名称)修改为不具有明显恶意特征的参数,从而恶意程序产生病毒变种,导致检测人员不易发现该恶意程序,即:并不是所有的恶意程序都会具有如此明显的特征参量;当由于重打包等手段导致发生病毒变种时,待检测恶意程序中的APK特征参数,如:MD5发生变化时,采用现有技术方案不会检测到该待检测APK。因此,现有技术采用的判断方式过于简单,判断结果不准确,容易产生误判。
发明内容
鉴于上述问题,提出了本发明以便提供一种克服上述问题或者至少部分地解决上述问题的恶意程序的检测方法、装置、计算设备及计算机存储介质。
根据本发明的一个方面,提供了一种恶意程序的检测方法,包括:
在运行待检测程序时,监控所述待检测程序的指令特征;所述指令特征至少包含待测方法调用序列,和/或,各个方法所对应的待测指令序列;
将所述待测方法调用序列与已知恶意程序的参考方法调用序列进行匹配;和/或,将所述各个方法所对应的待测指令序列与已知恶意程序的参考指令序列进行匹配;
根据匹配结果确定所述待检测程序是否为恶意程序。
根据本发明的另一方面,提供了一种恶意程序的检测装置,包括:
监控模块,适于在运行待检测程序时,监控所述待检测程序的指令特征;所述指令特征至少包含待测方法调用序列,和/或,各个装置所对应的待测指令序列;
匹配模块,适于将所述装置调用序列与已知恶意程序的参考方法调用序列进行匹配;和/或,将所述各个装置所对应的待测指令序列与已知恶意程序的参考指令序列进行匹配;
确定模块,适于根据匹配结果确定所述待检测程序是否为恶意程序。
根据本发明的又一方面,提供了一种计算设备,包括:处理器、存储器、通信接口和通信总线,所述处理器、所述存储器和所述通信接口通过所述通信总线完成相互间的通信;
所述存储器用于存放至少一可执行指令,所述可执行指令使所述处理器执行上述恶意程序的检测方法对应的操作。
根据本发明的再一方面,提供了一种计算机存储介质,所述存储介质中存储有至少一可执行指令,所述可执行指令使处理器执行如上述恶意程序的检测方法对应的操作。
根据本发明的恶意程序的检测方法、装置、计算设备及计算机存储介质。在运行待检测程序的过程中,通过监控待检测程序的指令特征,并将该指令特征与已知恶意程序的参考指令特征进行匹配,根据匹配结果确定待检测程序是否为恶意程序。相较于现有技术中根据程序名称等较容易被改动的特征参量进行恶意程序的检测的方案,本发明方案监控得到的指令特征不容易被改动,同时,指令是实现程序功能的基本组成,根据指令特征进行待检测程序的检测,可以准确的检测出包括恶意或非法行为的恶意程序,而且可以准确的对包括利用重打包等手段所导致的恶意变种病毒的待检测程序进行病毒检测。
上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的具体实施方式。
附图说明
通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本发明的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:
图1示出了根据本发明一个实施例的恶意程序的检测方法的流程图;
图2示出了根据本发明另一个实施例的恶意程序的检测方法的流程图;
图3示出了本发明一个具体实施例中对应步骤S208的子流程图;
图4示出了根据本发明一个实施例的恶意程序的检测装置的功能框图;
图5示出了根据本发明实施例的一种计算设备的结构示意图。
具体实施方式
下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。
图1示出了根据本发明一个实施例的恶意程序的检测方法的流程图。如图1所示,该方法包括:
步骤S101:在运行待检测程序时,监控待检测程序的指令特征;指令特征至少包含待测方法调用序列,和/或,各个方法所对应的待测指令序列。
本发明中,考虑到现有技术中提取的特征参量,都可以利用一些较容易的手段使其发生改变,进而使得一些恶意的待检测程序被漏检。同时,由于待检测程序的指令是实现程序功能的基本组成,基于此,本发明通过提取待检测程序的指令特征来进行恶意程序的检测。
具体地,运行待检测程序,并监控待检测程序运行过程中执行指令或指令序列的顺序、和/或调用方法的顺序,来得到各个方法所对应的待测指令序列,和/或,待测方法调用序列。本发明对该监控并得到待测方法调用序列,和/或,各个方法所对应的待测指令序列的具体方式不做限定,具体实施时,本领域技术人员可根据实际的检测条件确定具体的监控方式。
步骤S102:将待测方法调用序列与已知恶意程序的参考方法调用序列进行匹配;和/或,将各个方法所对应的待测指令序列与已知恶意程序的参考指令序列进行匹配。
具体的,将监控得到待检测程序的指令特征与已知恶意程序的参考指令特征(包括参考方法调用序列和/或参考指令序列)进行匹配,得到待检测程序的指令特征与已知恶意程序的各个参考指令特征的匹配度。
步骤S103:根据匹配结果确定待检测程序是否为恶意程序。
具体地,在得到匹配度后,按照预设规则确定待检测程序是否为恶意程序。其中,预设规则包括根据匹配度,和/或,根据满足匹配度条件的参考方法调用序列和/或参考指令序列的序列数量,和/或,根据满足匹配度条件的参考方法调用序列和/或参考指令序列的字节数设置的规则;并且,该预设规则中的具体内容可根据检测的精准度要求进行灵活设置,本发明对此不做具体限定。
以预设规则为根据匹配度设置的规则为例,为了避免将非恶意程序识别为恶意程序,可设置较高的第一匹配度阈值(该第一匹配度阈值大于下文中的第二匹配度阈值),或者,为了避免发生漏检的情况,可设置较低的第二匹配度阈值,并将预设规则进一步确定为当待测方法调用序列中包含与已知恶意程序的至少一条参考方法调用序列的相似度高于第一匹配度阈值(或第二匹配度阈值)的序列片段时,确定待检测程序为恶意程序;和/或,将预设规则进一步确定为当各个方法所对应的待测指令序列中包含与已知恶意程序的至少一条参考指令序列的相似度高于第一匹配度阈值(或第二匹配度阈值)的指令序列时,确定待检测程序为恶意程序。
根据本实施例提供的恶意程序的检测方法,在运行待检测程序的过程中,通过监控待检测程序的指令特征,并将该指令特征与已知恶意程序的参考指令特征进行匹配,根据匹配结果确定待检测程序是否为恶意程序。相较于现有技术中根据程序名称等较容易被改动的特征参量进行恶意程序的检测的方案,本实施例方案监控得到的指令特征不容易被改动,同时,指令是实现程序功能的基本组成,根据指令特征进行待检测程序的检测,可以准确的检测出包括恶意或非法功能的恶意程序,而且可以准确的对包括利用重打包等手段所导致的恶意变种病毒的待检测程序进行病毒检测。
图2示出了根据本发明另一个实施例的恶意程序的检测方法的流程图。如图2所示,该方法包括:
步骤S201:对已知恶意程序进行反编译,得到已知恶意程序的反编译指令;从已知恶意程序的反编译指令中的预设位置处提取出参考方法序列和/或各个方法所对应的参考指令序列。
通过对已知恶意程序进行反编译,来提取已知恶意程序的参考指令特征,以用于待检测程序的检测。本实施例不对反编译后得到的反编译指令的表示形式做具体限定,可选的,可用抽象语法树来表示反编译后的反编译指令对应的程序文件。并且,本实施例也不限定已知恶意程序具体来源,可选的,已知恶意程序从恶意程序库中获取。
其中,预设位置处为表征已知恶意程序的非法性、不合理性以及强攻击性的指令所对应在反编译指令中的位置。例如,非图像浏览程序中所包含的实现图像浏览功能的指令对应在反编译指令中的位置,或者,非收费软件中突然出现的实现短信扣费功能的指令对应在反编译指令中的位置。
具体地,经过反编译,得到已知恶意程序的反编译指令;根据反编译指令所实现的功能,从已知恶意程序的反编译指令中确定实现该已知恶意程序的恶意行为的指令所在的预设位置、以及确定实现恶意吸费、短信钓鱼、盗取支付信息、窃取个人隐私、远程控制、消耗流量、和/或系统破坏等行为的指令所在的预设位置,并从确定的预设位置处提取出实现上述恶意行为时所对应的参考方法调用序列和/或各个方法所对应的参考指令序列,以使提取出的参考指令特征更具有针对性,避免因盲目的提取参考指令特征造成匹配时的运算量大或者无法有效的进行恶意程序检测的问题。
需要在此说明的是,上述从已知恶意程序中提取参考指令特征的方式仅为一种可选的方式,具体实施时,本领域技术人员也可通过其它方式进行参考指令特征的提取。
步骤S202:将运行待检测程序的虚拟机的解释模式修改为可移植模式;在可移植模式下,由解释器解释运行待检测程序。
通过修改待检测程序所在环境的源码,并将修改好的源码进行重新编译,以便于在运行待检测程序的过程中准确的获取到待检测程序的指令特征。
具体地,下载源码并进行修改,将源码中虚拟机可执行文件的解释模式修改为可移植模式(portable模式)。此时,在修改后的源码中运行的任意待检测程序都以可移植模式运行;以及,待脱壳文件(待检测程序)中的可执行文件就可以编译为机器码的解释模式,同时,可以保证待脱壳文件(待检测程序)中所有运行的语句都会经过解释器。然后,在修改后的可移植模式下,由解释器解释运行待检测程序。
需要在此说明的是,本发明不对待检测程序所在环境做具体限定,具体实施时,本领域技术人员可根据实际环境下载相应的源码并进行修改,然后在该环境对应的虚拟机中运行待检测程序。举例来说,待检测程序所在环境为Android4.4.1的环境,则下载Android4.4.1的源码,将源码中的安卓虚拟机可执行文件的解释模式修改为portable模式。
步骤S203:在待检测程序进入解释器函数的初始位置处设置监控代码。
具体地,读取待检测程序的内存时,由于待检测程序在虚拟机中的可执行文件是通过解释器解释执行的,所以待检测程序中运行的每个方法都会经过解释器来解释执行。因而,可以在待检测程序进入解释器函数的初始位置处插入监控代码,从而对所有经过解释器的待检测程序进行监控记录,以实现对多个方法的调用时间顺序以及各个方法所对应的指令序列的准确监控。
步骤S204:在运行待检测程序时,监控待检测程序的指令特征;指令特征至少包含待测方法调用序列,和/或,各个方法所对应的待测指令序列。
具体地,根据监控代码监控多个方法被调用的顺序,得到待测方法调用序列;和/或,根据监控代码监控指令被执行的顺序,得到各个方法所对应的待测指令序列。通过监控代码进行监控记录,得到监控日志文件,通过读取监控日志文件,并按照方法被调用的时间顺序即可以得到待测方法调用序列,以及按照各个方法中指令的执行顺序即可以得到各个方法所对应的待测指令序列。此处的待测方法调用序列可以为待检测程序运行过程中调用的全部方法的序列,也可以为部分具有检测价值的方法序列片段,本发明对此不做具体限定;同样的,各个方法所对应的待测指令序列可以为各个方法中所有执行的指令的序列,也可以为部分具有检测价值的指令组成的序列,本发明对此也不做具体限定。
需要在此说明的是,在本实施例中,虽然仅用待测方法调用序列,各个方法所对应的待测指令序列,以及,指令片段(步骤S208中涉及)这三种典型的指令特征来说明待检测程序的检测过程,但是本实施例并不以此为限,可选的,指令特征还可以包括:头部信息特征码、常量特征码、操作数、和/或操作码。
步骤S205:将待测方法调用序列与已知恶意程序的参考方法调用序列进行匹配;和/或,将各个方法所对应的待测指令序列与已知恶意程序的参考指令序列进行匹配。
具体地,将待测方法调用序列与已知恶意程序的参考方法调用序列进行匹配,确定待测方法调用序列中的序列片段与参考方法调用序列的匹配度,和/或,将各个方法所对应的待测指令序列与已知恶意程序的参考指令序列进行匹配,确定各个方法所对应的待测指令序列与已知恶意程序的参考指令序列的匹配度。
举例来说,已知恶意程序中的恶意方法片段执行时的方法调用序列,按照方法名称排列为:方法A、方法B、方法C,若待检测程序的待测方法调用序列按照方法名称排列为:方法E、方法A、方法B、方法C、方法F,则通过匹配可知,待检测程序的待测方法调用序列中的序列片段“方法A、方法B、方法C”与参考方法序列的匹配度为1,即待检测程序的待测方法调用序列中包含参考方法调用序列。
步骤S206:判断匹配结果是否符合预设结果;若是,则执行步骤S207;若否,则执行步骤S208。
其中,预设结果可根据确定恶意程序的条件进行设置,凡是可以用于确定待检测程序为恶意程序的条件均可以设置对应的预设结果,本发明对此不做具体限定。例如,当待测方法调用序列中包含已知恶意程序的参考方法调用序列时(确定恶意程序的条件),则确定待检测程序为恶意程序,相应的,则可以设置预设结果为待测方法调用序列中包含与已知恶意程序的至少一条参考方法调用序列的相似度高于第一预设相似度值的序列片段。
在本发明的一个具体实施例中,针对待测方法调用序列方面,设置的预设结果除了可以为待测方法调用序列中包含与已知恶意程序的至少一条参考方法调用序列的匹配度高于第一匹配度值的序列片段之外,还可以根据匹配度高于第一匹配度值的序列片段的属性信息设置预设结果。可选的,该属性信息包括序列片段对应的指令字节数和/或序列片段的数量。进一步的,可设置预设结果为匹配度高于第一匹配度值的序列片段的数量超过第一序列数量,或者,可设置预设结果为匹配度高于第一匹配度值的序列片段对应的指令字节数超过第一字节数。举例来说,第一序列数量为三,第一匹配度值为90%,则当待测方法调用序列中包含三段或三段以上的序列片段分别与已知恶意程序的三条或三条以上的参考方法调用序列的相似度高于90%,判定匹配结果符合预设条件。同理,针对待测指令序列方面,设置的预设结果包括:各个方法所对应的待测指令序列中包含与已知恶意程序的至少一条参考指令序列的匹配度高于第二匹配度值的指令序列;和/或,所述匹配度高于第二匹配度值的指令序列的数量超过第二序列数量;和/或,所述匹配度高于第二匹配度值的指令序列的字节数超过第二字节数。其中,第一序列数量(或第二序列数量)和/或第一字节数(或第二字节数)可以为一固定设置的常量,或者为根据待检测程序的实际的指令情况设置的变量。
具体地,判断匹配结果是否符合预设结果,若匹配结果符合预设结果,则确定待检测程序符合确定为恶意程序的条件,则执行步骤S207,将待检测程序确定为恶意程序;若匹配结果不符合预设结果,则表明通过待测方法调用序列和/或各个方法所对应的待测指令序列的匹配还不能确定待检测程序为恶意程序,则执行步骤S208,以进一步通过其它指令特征来进行待检测程序的检测。
步骤S207:确定待检测程序为恶意程序。
步骤S208:将指令集合与已知恶意程序的参考指令片段进行匹配,并确定待检测程序是否为恶意程序。
在本实施例中,为了避免发生漏检的情况,进一步通过其它指令特征来进行匹配并检测待检测程序是否为恶意程序。下面主要以本发明的一个具体实施例为实例来说明步骤S208的具体过程,在该具体实施例中,进一步提取的待检测程序的指令特征为指令集合。
图3示出了本发明一个具体实施例中对应步骤S208的子流程图。如图3所示,该方法包括:
步骤S301:从已知恶意程序的反编译指令中的预设位置处提取出参考指令片段。
其中,预设位置为已知恶意程序中的代表性的方法程序片段所在的位置,例如,用户使用某APP时,该APP客户端将用户设备上的短信等隐私数据发送给服务器的方法片段。该预设位置的选取具体可参见步骤S201中的相关说明,此处不再赘述。并且,该提取参考指令片段的过程及原理也与步骤S201类似,具体可参见步骤S201的说明,此处不再赘述。
具体地,在提取出参考指令片段之后,对参考指令片段进行修改处理,得到修改后的参考指令片段。由于提取出的每条参考指令片段均是由“操作码+操作数”组成,其中,操作码对应该参考指令片段的功能,操作数对应该参考指令片段的操作对象,而在检测恶意程序的过程中,主要是参考程序实现的功能,因此,为了避免操作数的干扰,同时为了减少检测过程中的运算量,在应用参考指令片段进行恶意程序的检测之前,对参考指令片段进行修改。进一步的,将参考指令片段中符合预设条件的操作数修改为统一的字符串;以及,保持参考指令片段中的操作码不变。根据现有的官方手册,确定操作码以及操作数所对应的十六进制数,其中,操作码所对应的十六进制为固定数值,而操作数中则包括会因编译环境变化而产生变化的操作数,例如,与地址相关的操作数,则可以将这些操作数所对应的十六进制数修改为统一的字符串,可选的,该字符串可以由“:”、“?”、“/”、“。”、以及“!”等中的一种或多种字符组成。
步骤S302:根据监控代码监控待检测程序的指令集合。
具体地,通过设置的监控代码,在监控得到方法调用序列和/或各个方法所对应的指令序列的同时,还可以监控得到组成指令序列的各个指令片段,也即可以得到由多个指令片段构成的待检测程序的指令集合。
另外,与从已知恶意程序中提取参考指令特征同理,在提取待检测程序的指令特征时,包括从监控结果中提取待测方法调用序列、各个方法所对应的待测指令序列和/或指令集合时,也可以仅针对待检测程序在预设位置处的方法片段进行指令特征的提取,从而使得所提取出的指令特征更有针对性。
步骤S303:将指令集合与已知恶意程序的参考指令片段进行匹配。
具体地,在进行匹配时,为了避免操作数的干扰,同时为了减少匹配的运算量,按照上述步骤S301中对参考指令片段进行修改的方式,对指令集合中的各个指令片段进行修改处理,得到包括修改后的各个指令片段的指令集合。相应的,则将指令集合与已知恶意程序的参考指令片段进行匹配,即:将包括修改后的各个指令片段的指令集合与修改后的参考指令片段进行匹配。进一步的,将指令集合中的各个指令片段与参考指令片段进行匹配,得到各个指令片段与参考指令片段的匹配度。
步骤S304:若匹配结果为指令集合中包含至少一段参考指令片段,则统计至少一段参考指令片段的指令字节数;根据指令字节数确定待检测程序是否为恶意程序。
具体地,当匹配结果为指令集合中的至少一段指令片段与至少一段参考指令片段相同时,则统计至少一段参考指令片段的指令字节数,若指令字节数小于预设字节数,则判定待检测程序不是恶意程序;若指令字节数大于或等于预设字节数,则判定待检测程序是恶意程序。其中,预设字节数可以为一固定设置的常量,或者为根据待检测程序的指令集合中包含的指令片段对应的总的字节数设置的变量,可选的,总的字节数的数量越多,则设置的预设字节数越大。
为了便于对图3所示的实施例的实施流程以及效果的理解,下面以一个具体示例来辅助说明:
例如:待检测程序的某段十六进制机器指令为:
70 10 BA EA 02 00;
将其反编译后得到指令:
invoke-direct{this},<void Object.<init>()imp.@_def_Object__init_@V>;
采用该具体实施例的方法可以将该待检测程序的指令片段转换为:70??????????;
已知恶意程序“抢红包程序”所对应的参考指令片段为:70??????????;
通过匹配可知,该两个指令片段的操作码相同,则可以确定该待检测程序为恶意程序,进一步的,可通过比较相同的指令字节数与预设字节数的大小,来确定待检测程序是是否为恶意程序。
上述举例中虽然仅以指令集合中仅包括单个指令片段以及参考指令片段也仅为一个指令片段为例进行了说明,但是本发明并不以此为限,具体实施时,指令集合中可以包括多个指令片段,以及,已知恶意程序的参考指令片段也可以为多个。
图3对应的具体实施例,将待检测程序所对应的指令集合和参考指令片段进行对比,从而确定待检测程序中是否存在恶意指令,进而确定该待检测程序是否为恶意软件,提高了恶意软件的检测精度。
步骤S209:当确定待检测程序为恶意程序时,将待检测程序更新至已知恶意程序库中。
在利用本实施例方案确定待检测程序为恶意程序后,将待检测程序作为恶意程序添加至恶意程序库中,以不断完善恶意程序库;同时,可以完善已知恶意程序的参考指令特征,并进一步提高恶意程序检测的准确性。
根据本实施例提供的恶意程序的检测方法,通过从已知恶意程序的预设位置处提取参考方法调用序列和/或各个方法所对应的参考指令序列,以使提取出的参考指令特征更具有针对性;在运行待检测程序之前,对待检测程序所在环境的源码进行修改,以便于在运行待检测程序的过程中准确的获取到待检测程序的指令特征;并且,通过设置监控代码,以在运行待检测程序的过程中,监控待检测程序的待测方法调用序列,和/或,各个方法所对应的待测指令序列;然后,将监控得到的待检测程序的待测方法调用序列,和/或,各个方法所对应的待测指令序列与参考方法调用序列和/或各个方法所对应的参考指令序列进行匹配,根据匹配结果确定待检测程序是否为恶意程序。在此基础上,若未确定待检测程序为恶意程序,则进一步通过指令集合中的指令片段来进行检测,并确定待检测程序是否为恶意程序,进而可以最大程度上识别出恶意程序,避免漏检的情况发生。相较于现有技术中根据程序名称等较容易被改动的特征参量进行恶意程序的检测的方案,本实施例方案监控得到的指令特征不容易被改动,同时,指令是实现程序功能的基本组成,根据指令特征进行待检测程序的检测,可以准确的检测出包括恶意或非法功能的恶意程序,而且可以准确的对包括利用重打包等手段所导致的恶意变种病毒的待检测程序进行病毒检测。
图4示出了根据本发明一个实施例的恶意程序的检测装置的功能框图。如图4所示,该装置包括:
监控模块401,适于在运行待检测程序时,监控所述待检测程序的指令特征;所述指令特征至少包含待测方法调用序列,和/或,各个装置所对应的待测指令序列;
匹配模块402,适于将所述装置调用序列与已知恶意程序的参考方法调用序列进行匹配;和/或,将所述各个装置所对应的待测指令序列与已知恶意程序的参考指令序列进行匹配;
确定模块403,适于根据匹配结果确定所述待检测程序是否为恶意程序。
在一种可选的实施方式中,所述装置还包括:
第一修改模块404,适于将运行待检测程序的虚拟机的解释模式修改为可移植模式;
执行模块405,适于在可移植模式下,由解释器解释运行待检测程序。
在一种可选的实施方式中,所述装置还包括:
设置模块406,适于在待检测程序进入解释器函数的初始位置处设置监控代码;
所述监控模块401进一步适于:根据监控代码监控多个方法被调用的顺序,得到待测方法调用序列;和/或,根据监控代码监控各方法中指令被执行的顺序,得到各个方法所对应的待测指令序列。
在一种可选的实施方式中,所述装置还包括:
第一提取模块407,适于对已知恶意程序进行反编译,得到已知恶意程序的反编译指令;从所述已知恶意程序的反编译指令中的预设位置处提取出参考方法调用序列和/或各个方法所对应的参考指令序列。
在一种可选的实施方式中,所述确定模块403进一步适于:
判断匹配结果是否符合预设结果;若匹配结果符合预设结果,则确定待检测程序为恶意程序。
在一种可选的实施方式中,所述监控模块401进一步适于:根据监控代码监控所述待检测程序的指令集合;
所述确定模块403进一步适于:若匹配结果不符合预设结果,则将所述指令集合与已知恶意程序的参考指令片段进行匹配,并确定所述待检测程序是否为恶意程序。
在一种可选的实施方式中,所述装置还包括:
第二提取模块408,适于从所述已知恶意程序的反编译指令中的预设位置处提取出参考指令片段;
第二修改模块409,适于对参考指令片段进行修改处理,得到修改后的参考指令片段。
在一种可选的实施方式中,第二修改模块409进一步适于:
将参考指令片段中符合预设条件的操作数修改为统一的字符串;以及,保持参考指令片段中的操作码不变。
在一种可选的实施方式中,所述第二修改模块409进一步适于:
对所述指令集合中的各个指令片段进行修改处理,得到包括修改后的各个指令片段的指令集合;
所述确定模块403进一步适于:将包括修改后的各个指令片段的指令集合与修改后的参考指令片段进行匹配。
在一种可选的实施方式中,所述确定模块403进一步适于:
将修改后的指令片段与修改后的参考指令片段进行匹配;
若匹配结果为指令集合中包含至少一段参考指令片段,则统计所述至少一段参考指令片段的指令字节数;
根据所述指令字节数确定所述待检测程序是否为恶意程序。
在一种可选的实施方式中,所述确定模块403进一步适于:
若所述指令字节数小于预设字节数,则判定所述待检测程序不是恶意程序;若所述指令字节数大于或等于预设字节数,则判定所述待检测程序是恶意程序。
在一种可选的实施方式中,所述装置还包括:更新模块410,适于将所述待检测程序更新至已知恶意程序库中。
关于上述各个模块的具体结构和工作原理可参照方法实施例中相应步骤的描述,此处不再赘述。
本申请实施例提供了一种非易失性计算机存储介质,所述计算机存储介质存储有至少一可执行指令,该计算机可执行指令可执行上述任意方法实施例中的恶意程序的检测方法。
图5示出了根据本发明实施例的一种计算设备的结构示意图,本发明具体实施例并不对计算设备的具体实现做限定。
如图5所示,该计算设备可以包括:处理器(processor)502、通信接口(Communications Interface)504、存储器(memory)506、以及通信总线508。
其中:
处理器502、通信接口504、以及存储器506通过通信总线508完成相互间的通信。
通信接口504,用于与其它设备比如客户端或其它服务器等的网元通信。
处理器502,用于执行程序510,具体可以执行上述恶意程序的检测方法实施例中的相关步骤。
具体地,程序510可以包括程序代码,该程序代码包括计算机操作指令。
处理器502可能是中央处理器CPU,或者是特定集成电路ASIC(ApplicationSpecific Integrated Circuit),或者是被配置成实施本发明实施例的一个或多个集成电路。计算设备包括的一个或多个处理器,可以是同一类型的处理器,如一个或多个CPU;也可以是不同类型的处理器,如一个或多个CPU以及一个或多个ASIC。
存储器506,用于存放程序510。存储器506可能包含高速RAM存储器,也可能还包括非易失性存储器(non-volatile memory),例如至少一个磁盘存储器。
程序510具体可以用于使得处理器502执行以下操作:
在运行待检测程序时,监控所述待检测程序的指令特征;所述指令特征至少包含待测方法调用序列,和/或,各个方法所对应的待测指令序列;
将所述待测方法调用序列与已知恶意程序的参考方法调用序列进行匹配;和/或,将所述各个方法所对应的待测指令序列与已知恶意程序的参考指令序列进行匹配;
根据匹配结果确定所述待检测程序是否为恶意程序。
在一种可选的实施方式中,程序510具体可以进一步用于使得处理器502执行以下操作:
将运行待检测程序的虚拟机的解释模式修改为可移植模式;
所述运行待检测程序具体为:在可移植模式下,由解释器解释运行待检测程序。
在一种可选的实施方式中,程序510具体可以进一步用于使得处理器502执行以下操作:
在待检测程序进入解释器函数的初始位置处设置监控代码;
根据监控代码监控多个方法被调用的顺序,得到待测方法调用序列;和/或,根据监控代码监控指令被执行的顺序,得到各个方法所对应的待测指令序列。
在一种可选的实施方式中,程序510具体可以进一步用于使得处理器502执行以下操作:
对已知恶意程序进行反编译,得到已知恶意程序的反编译指令;
从所述已知恶意程序的反编译指令中的预设位置处提取出参考方法调用序列和/或各个方法所对应的参考指令序列。
在一种可选的实施方式中,程序510具体可以进一步用于使得处理器502执行以下操作:
判断匹配结果是否符合预设结果;若匹配结果符合预设结果,则确定待检测程序为恶意程序。
在一种可选的实施方式中,程序510具体可以进一步用于使得处理器502执行以下操作:
根据监控代码监控所述待检测程序的指令集合;
若匹配结果不符合预设结果,则将所述指令集合与已知恶意程序的参考指令片段进行匹配,并确定所述待检测程序是否为恶意程序。
在一种可选的实施方式中,程序510具体可以进一步用于使得处理器502执行以下操作:
从所述已知恶意程序的反编译指令中的预设位置处提取出参考指令片段;
对参考指令片段进行修改处理,得到修改后的参考指令片段。
在一种可选的实施方式中,程序510具体可以进一步用于使得处理器502执行以下操作:
将参考指令片段中符合预设条件的操作数修改为统一的字符串;以及,保持参考指令片段中的操作码不变。
在一种可选的实施方式中,程序510具体可以进一步用于使得处理器502执行以下操作:
对所述指令集合中的各个指令片段进行修改处理,得到包括修改后的各个指令片段的指令集合;
将包括修改后的各个指令片段的指令集合与修改后的参考指令片段进行匹配。
在一种可选的实施方式中,程序510具体可以进一步用于使得处理器502执行以下操作:
将修改后的指令片段与修改后的参考指令片段进行匹配;
若匹配结果为指令集合中包含至少一段参考指令片段,则统计所述至少一段参考指令片段的指令字节数;
根据所述指令字节数确定所述待检测程序是否为恶意程序。
在一种可选的实施方式中,程序510具体可以进一步用于使得处理器502执行以下操作:
若所述指令字节数小于预设字节数,则判定所述待检测程序不是恶意程序;若所述指令字节数大于或等于预设字节数,则判定所述待检测程序是恶意程序。
在一种可选的实施方式中,程序510具体可以进一步用于使得处理器502执行以下操作:当确定所述待检测程序为恶意程序时,将所述待检测程序更新至已知恶意程序库中。
至此,本领域技术人员应认识到,虽然本文已详尽示出和描述了本发明的多个示例性实施例,但是,在不脱离本发明精神和范围的情况下,仍可根据发明公开的内容直接确定或推导出符合本发明原理的许多其他变型或修改。因此,本发明的范围应该被理解和认定为覆盖了所有这些其他变型或修改。
本领域技术人员应当理解,本发明的实施方式可以实现为一种系统、装置、设备、方法或计算机程序产品。此外,本发明也不针对任何特定编程语言,应当明白,可以利用各种编程语言实现本发明描述的内容,并且上面对特定语言所做的描述是为了披露本发明的最佳实施方式。
需要注意的是,尽管在上面的说明中详细描述了恶意程序的检测的若干模块,但是这种划分仅仅是示例性的,并非是强制性的。本领域的技术人员可以理解,实际上,可以对实施例中的模块进行自适应性地改变,将实施例中的多个模块组合成一个模块,也可将一个模块划分成多个模块。
此外,尽管在附图中以特定顺序描述了本发明实施操作,但是,这并非要求或者暗示必须按照该特定顺序来执行这些操作,或是必须执行全部所示的操作才能实现期望的结果。可以省略某些步骤,将多个步骤合并为一个步骤执行,或者将一个步骤分成多个步骤执行。
以上对本发明的方法和具体实施方法进行了详细的介绍,并给出了相应的实施例。当然,除上述实施例外,本发明还可以有其它实施方式,凡采用等同替换或等效变换形成的技术方案,均落在本发明所要保护的范围之内。
本发明公开了:A1.一种恶意程序的检测方法,包括:
在运行待检测程序时,监控所述待检测程序的指令特征;所述指令特征至少包含待测方法调用序列,和/或,各个方法所对应的待测指令序列;
将所述待测方法调用序列与已知恶意程序的参考方法调用序列进行匹配;和/或,将所述各个方法所对应的待测指令序列与已知恶意程序的参考指令序列进行匹配;
根据匹配结果确定所述待检测程序是否为恶意程序。
A2.根据A1所述的方法,其中,在所述运行待检测程序之前,所述方法还包括:
将运行待检测程序的虚拟机的解释模式修改为可移植模式;
所述运行待检测程序具体为:在可移植模式下,由解释器解释运行待检测程序。
A3.根据A2所述的方法,其中,在所述监控所述待检测程序的指令特征之前,所述方法还包括:
在待检测程序进入解释器函数的初始位置处设置监控代码;
所述监控所述待检测程序的指令特征具体为:根据监控代码监控多个方法被调用的顺序,得到待测方法调用序列;和/或,根据监控代码监控指令被执行的顺序,得到各个方法所对应的待测指令序列。
A4.根据A3所述的方法,其中,在所述将所述待测方法调用序列与已知恶意程序的参考方法调用序列进行匹配;和/或,将所述各个方法所对应的待测指令序列与已知恶意程序的参考指令序列进行匹配之前,所述方法还包括:
对已知恶意程序进行反编译,得到已知恶意程序的反编译指令;
从所述已知恶意程序的反编译指令中的预设位置处提取出参考方法调用序列和/或各个方法所对应的参考指令序列。
A5.根据A4所述的方法,其中,所述根据匹配结果确定所述待检测程序是否为恶意程序进一步包括:
判断匹配结果是否符合预设结果;若匹配结果符合预设结果,则确定待检测程序为恶意程序。
A6.根据A5所述的方法,其中,所述监控所述待检测程序的指令特征进一步包括:根据监控代码监控所述待检测程序的指令集合;
所述根据匹配结果确定所述待检测程序是否为恶意程序进一步包括:若匹配结果不符合预设结果,则将所述指令集合与已知恶意程序的参考指令片段进行匹配,并确定所述待检测程序是否为恶意程序。
A7.根据A6所述的方法,其中,在所述将所述指令集合与已知恶意程序的参考指令片段进行匹配之前,所述方法还包括:
从所述已知恶意程序的反编译指令中的预设位置处提取出参考指令片段;
对所述参考指令片段进行修改处理,得到修改后的参考指令片段。
A8.根据A7所述的方法,其中,所述对所述参考指令片段中进行修改处理进一步包括:
将参考指令片段中符合预设条件的操作数修改为统一的字符串;以及,保持参考指令片段中的操作码不变。
A9.根据A7或A8所述的方法,其中,在所述将所述指令集合与已知恶意程序的参考指令片段进行匹配之前,所述方法还包括:
对所述指令集合中的各个指令片段进行修改处理,得到包括修改后的各个指令片段的指令集合;
所述将所述指令集合与已知恶意程序的参考指令片段进行匹配进一步包括:将包括修改后的各个指令片段的指令集合与修改后的参考指令片段进行匹配。
A10.根据A9所述的方法,其中,所述将所述指令集合与已知恶意程序的参考指令片段进行匹配,并确定所述待检测程序是否为恶意程序进一步包括:
将修改后的指令片段与修改后的参考指令片段进行匹配;
若匹配结果为指令集合中包含至少一段参考指令片段,则统计所述至少一段参考指令片段的指令字节数;
根据所述指令字节数确定所述待检测程序是否为恶意程序。
A11.根据A10所述的方法,其中,所述根据所述指令字节数判断所述待检测程序是否为恶意程序进一步包括:
若所述指令字节数小于预设字节数,则判定所述待检测程序不是恶意程序;若所述指令字节数大于或等于预设字节数,则判定所述待检测程序是恶意程序。
A12.根据A1-A11任一项所述的方法,其中,当确定所述待检测程序为恶意程序时,所述方法还包括:将所述待检测程序更新至已知恶意程序库中。
本发明还公开了:B13.一种恶意程序的检测装置,包括:
监控模块,适于在运行待检测程序时,监控所述待检测程序的指令特征;所述指令特征至少包含待测方法调用序列,和/或,各个装置所对应的待测指令序列;
匹配模块,适于将所述装置调用序列与已知恶意程序的参考方法调用序列进行匹配;和/或,将所述各个装置所对应的待测指令序列与已知恶意程序的参考指令序列进行匹配;
确定模块,适于根据匹配结果确定所述待检测程序是否为恶意程序。
B14.根据B13所述的装置,其中,所述装置还包括:
第一修改模块,适于将运行待检测程序的虚拟机的解释模式修改为可移植模式;
执行模块,适于在可移植模式下,由解释器解释运行待检测程序。
B15.根据B14所述的装置,其中,所述装置还包括:
设置模块,适于在待检测程序进入解释器函数的初始位置处设置监控代码;
所述监控模块进一步适于:根据监控代码监控多个方法被调用的顺序,得到待测方法调用序列;和/或,根据监控代码监控各方法中指令被执行的顺序,得到各个方法所对应的待测指令序列。
B16.根据B15所述的装置,其中,所述装置还包括:
第一提取模块,适于对已知恶意程序进行反编译,得到已知恶意程序的反编译指令;从所述已知恶意程序的反编译指令中的预设位置处提取出参考方法调用序列和/或各个方法所对应的参考指令序列。
B17.根据B16所述的装置,其中,所述确定模块进一步适于:
判断匹配结果是否符合预设结果;若匹配结果符合预设结果,则确定待检测程序为恶意程序。
B18.根据B17所述的装置,其中,所述监控模块进一步适于:根据监控代码监控所述待检测程序的指令集合;
所述确定模块进一步适于:若匹配结果不符合预设结果,则将所述指令集合与已知恶意程序的参考指令片段进行匹配,并确定所述待检测程序是否为恶意程序。
B19.根据B18所述的装置,其中,所述装置还包括:
第二提取模块,适于从所述已知恶意程序的反编译指令中的预设位置处提取出参考指令片段;
第二修改模块,适于对参考指令片段进行修改处理,得到修改后的参考指令片段。
B20.根据B19所述的装置,其中,第二修改模块进一步适于:
将参考指令片段中符合预设条件的操作数修改为统一的字符串;以及,保持参考指令片段中的操作码不变。
B21.根据B19或B20所述的装置,其中,所述第二修改模块进一步适于:
对所述指令集合中的各个指令片段进行修改处理,得到包括修改后的各个指令片段的指令集合;
所述确定模块进一步适于:将包括修改后的各个指令片段的指令集合与修改后的参考指令片段进行匹配。
B22.根据B21所述的装置,其中,所述确定模块进一步适于:
将修改后的指令片段与修改后的参考指令片段进行匹配;
若匹配结果为指令集合中包含至少一段参考指令片段,则统计所述至少一段参考指令片段的指令字节数;
根据所述指令字节数确定所述待检测程序是否为恶意程序。
B23.根据B22所述的装置,其中,所述确定模块进一步适于:
若所述指令字节数小于预设字节数,则判定所述待检测程序不是恶意程序;若所述指令字节数大于或等于预设字节数,则判定所述待检测程序是恶意程序。
B24.根据B13-B23任一项所述的装置,其中,所述装置还包括:更新模块,适于将所述待检测程序更新至已知恶意程序库中。
本发明还公开了:C25.一种计算设备,包括:处理器、存储器、通信接口和通信总线,所述处理器、所述存储器和所述通信接口通过所述通信总线完成相互间的通信;
所述存储器用于存放至少一可执行指令,所述可执行指令使所述处理器执行如A1-A12中任一项所述的恶意程序的检测方法对应的操作。
本发明还公开了:D26.一种计算机存储介质,所述存储介质中存储有至少一可执行指令,所述可执行指令使处理器执行如A1-A12中任一项所述的恶意程序的检测方法对应的操作。
Claims (10)
1.一种恶意程序的检测方法,包括:
在运行待检测程序时,监控所述待检测程序的指令特征;所述指令特征至少包含待测方法调用序列,和/或,各个方法所对应的待测指令序列;
将所述待测方法调用序列与已知恶意程序的参考方法调用序列进行匹配;和/或,将所述各个方法所对应的待测指令序列与已知恶意程序的参考指令序列进行匹配;
根据匹配结果确定所述待检测程序是否为恶意程序。
2.根据权利要求1所述的方法,其中,在所述运行待检测程序之前,所述方法还包括:
将运行待检测程序的虚拟机的解释模式修改为可移植模式;
所述运行待检测程序具体为:在可移植模式下,由解释器解释运行待检测程序。
3.根据权利要求2所述的方法,其中,在所述监控所述待检测程序的指令特征之前,所述方法还包括:
在待检测程序进入解释器函数的初始位置处设置监控代码;
所述监控所述待检测程序的指令特征具体为:根据监控代码监控多个方法被调用的顺序,得到待测方法调用序列;和/或,根据监控代码监控指令被执行的顺序,得到各个方法所对应的待测指令序列。
4.根据权利要求3所述的方法,其中,在所述将所述待测方法调用序列与已知恶意程序的参考方法调用序列进行匹配;和/或,将所述各个方法所对应的待测指令序列与已知恶意程序的参考指令序列进行匹配之前,所述方法还包括:
对已知恶意程序进行反编译,得到已知恶意程序的反编译指令;
从所述已知恶意程序的反编译指令中的预设位置处提取出参考方法调用序列和/或各个方法所对应的参考指令序列。
5.根据权利要求4所述的方法,其中,所述根据匹配结果确定所述待检测程序是否为恶意程序进一步包括:
判断匹配结果是否符合预设结果;若匹配结果符合预设结果,则确定待检测程序为恶意程序。
6.根据权利要求5所述的方法,其中,所述监控所述待检测程序的指令特征进一步包括:根据监控代码监控所述待检测程序的指令集合;
所述根据匹配结果确定所述待检测程序是否为恶意程序进一步包括:若匹配结果不符合预设结果,则将所述指令集合与已知恶意程序的参考指令片段进行匹配,并确定所述待检测程序是否为恶意程序。
7.根据权利要求6所述的方法,其中,在所述将所述指令集合与已知恶意程序的参考指令片段进行匹配之前,所述方法还包括:
从所述已知恶意程序的反编译指令中的预设位置处提取出参考指令片段;
对所述参考指令片段进行修改处理,得到修改后的参考指令片段。
8.一种恶意程序的检测装置,包括:
监控模块,适于在运行待检测程序时,监控所述待检测程序的指令特征;所述指令特征至少包含待测方法调用序列,和/或,各个装置所对应的待测指令序列;
匹配模块,适于将所述装置调用序列与已知恶意程序的参考方法调用序列进行匹配;和/或,将所述各个装置所对应的待测指令序列与已知恶意程序的参考指令序列进行匹配;
确定模块,适于根据匹配结果确定所述待检测程序是否为恶意程序。
9.一种计算设备,包括:处理器、存储器、通信接口和通信总线,所述处理器、所述存储器和所述通信接口通过所述通信总线完成相互间的通信;
所述存储器用于存放至少一可执行指令,所述可执行指令使所述处理器执行如权利要求1-7中任一项所述的恶意程序的检测方法对应的操作。
10.一种计算机存储介质,所述存储介质中存储有至少一可执行指令,所述可执行指令使处理器执行如权利要求1-7中任一项所述的恶意程序的检测方法对应的操作。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811434329.3A CN109635565A (zh) | 2018-11-28 | 2018-11-28 | 恶意程序的检测方法、装置、计算设备及计算机存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811434329.3A CN109635565A (zh) | 2018-11-28 | 2018-11-28 | 恶意程序的检测方法、装置、计算设备及计算机存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN109635565A true CN109635565A (zh) | 2019-04-16 |
Family
ID=66069822
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811434329.3A Pending CN109635565A (zh) | 2018-11-28 | 2018-11-28 | 恶意程序的检测方法、装置、计算设备及计算机存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109635565A (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112395595A (zh) * | 2019-08-15 | 2021-02-23 | 奇安信安全技术(珠海)有限公司 | 指令执行序列的监测方法及装置、存储介质、计算机设备 |
WO2021046811A1 (zh) * | 2019-09-12 | 2021-03-18 | 奇安信安全技术(珠海)有限公司 | 一种攻击行为的判定方法、装置及计算机存储介质 |
CN112613040A (zh) * | 2020-12-14 | 2021-04-06 | 中国科学院信息工程研究所 | 一种基于二进制程序的漏洞检测方法及相关设备 |
CN114640507A (zh) * | 2022-02-28 | 2022-06-17 | 天翼安全科技有限公司 | 一种WebShell的检测方法、装置及存储介质 |
CN116089951A (zh) * | 2023-02-24 | 2023-05-09 | 山东云天安全技术有限公司 | 一种恶意代码检测方法、可读存储介质及电子设备 |
Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102663286A (zh) * | 2012-03-21 | 2012-09-12 | 奇智软件(北京)有限公司 | 一种病毒apk的识别方法及装置 |
CN102819697A (zh) * | 2011-12-26 | 2012-12-12 | 哈尔滨安天科技股份有限公司 | 一种基于线程反编译的多平台恶意代码检测方法和系统 |
CN103440458A (zh) * | 2013-09-25 | 2013-12-11 | 西安交通大学 | 一种启发式静态识别Android系统恶意代码的方法 |
CN103761481A (zh) * | 2014-01-23 | 2014-04-30 | 北京奇虎科技有限公司 | 一种恶意代码样本自动处理的方法及装置 |
CN103839005A (zh) * | 2013-11-22 | 2014-06-04 | 北京智谷睿拓技术服务有限公司 | 移动操作系统的恶意软件检测方法和恶意软件检测系统 |
CN104077528A (zh) * | 2014-06-25 | 2014-10-01 | 珠海市君天电子科技有限公司 | 病毒检测方法、装置以及终端 |
CN104751054A (zh) * | 2013-12-31 | 2015-07-01 | 贝壳网际(北京)安全技术有限公司 | 恶意程序的识别方法及装置、移动终端 |
CN106709325A (zh) * | 2016-11-11 | 2017-05-24 | 腾讯科技(深圳)有限公司 | 一种监控程序的方法及装置 |
CN106951780A (zh) * | 2017-02-08 | 2017-07-14 | 中国科学院信息工程研究所 | 重打包恶意应用的静态检测方法和装置 |
CN107742078A (zh) * | 2017-05-04 | 2018-02-27 | 四川大学 | 一种通用的dex自动脱壳方法与系统 |
CN108846280A (zh) * | 2018-06-29 | 2018-11-20 | 江苏通付盾信息安全技术有限公司 | 应用文件的脱壳方法及装置 |
-
2018
- 2018-11-28 CN CN201811434329.3A patent/CN109635565A/zh active Pending
Patent Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102819697A (zh) * | 2011-12-26 | 2012-12-12 | 哈尔滨安天科技股份有限公司 | 一种基于线程反编译的多平台恶意代码检测方法和系统 |
CN102663286A (zh) * | 2012-03-21 | 2012-09-12 | 奇智软件(北京)有限公司 | 一种病毒apk的识别方法及装置 |
CN103440458A (zh) * | 2013-09-25 | 2013-12-11 | 西安交通大学 | 一种启发式静态识别Android系统恶意代码的方法 |
CN103839005A (zh) * | 2013-11-22 | 2014-06-04 | 北京智谷睿拓技术服务有限公司 | 移动操作系统的恶意软件检测方法和恶意软件检测系统 |
CN104751054A (zh) * | 2013-12-31 | 2015-07-01 | 贝壳网际(北京)安全技术有限公司 | 恶意程序的识别方法及装置、移动终端 |
CN103761481A (zh) * | 2014-01-23 | 2014-04-30 | 北京奇虎科技有限公司 | 一种恶意代码样本自动处理的方法及装置 |
CN104077528A (zh) * | 2014-06-25 | 2014-10-01 | 珠海市君天电子科技有限公司 | 病毒检测方法、装置以及终端 |
CN106709325A (zh) * | 2016-11-11 | 2017-05-24 | 腾讯科技(深圳)有限公司 | 一种监控程序的方法及装置 |
CN106951780A (zh) * | 2017-02-08 | 2017-07-14 | 中国科学院信息工程研究所 | 重打包恶意应用的静态检测方法和装置 |
CN107742078A (zh) * | 2017-05-04 | 2018-02-27 | 四川大学 | 一种通用的dex自动脱壳方法与系统 |
CN108846280A (zh) * | 2018-06-29 | 2018-11-20 | 江苏通付盾信息安全技术有限公司 | 应用文件的脱壳方法及装置 |
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112395595A (zh) * | 2019-08-15 | 2021-02-23 | 奇安信安全技术(珠海)有限公司 | 指令执行序列的监测方法及装置、存储介质、计算机设备 |
CN112395595B (zh) * | 2019-08-15 | 2023-08-01 | 奇安信安全技术(珠海)有限公司 | 指令执行序列的监测方法及装置、存储介质、计算机设备 |
WO2021046811A1 (zh) * | 2019-09-12 | 2021-03-18 | 奇安信安全技术(珠海)有限公司 | 一种攻击行为的判定方法、装置及计算机存储介质 |
CN113632432A (zh) * | 2019-09-12 | 2021-11-09 | 奇安信安全技术(珠海)有限公司 | 一种攻击行为的判定方法、装置及计算机存储介质 |
CN113632432B (zh) * | 2019-09-12 | 2023-09-19 | 奇安信安全技术(珠海)有限公司 | 一种攻击行为的判定方法、装置及计算机存储介质 |
CN112613040A (zh) * | 2020-12-14 | 2021-04-06 | 中国科学院信息工程研究所 | 一种基于二进制程序的漏洞检测方法及相关设备 |
CN114640507A (zh) * | 2022-02-28 | 2022-06-17 | 天翼安全科技有限公司 | 一种WebShell的检测方法、装置及存储介质 |
CN114640507B (zh) * | 2022-02-28 | 2024-03-12 | 天翼安全科技有限公司 | 一种WebShell的检测方法、装置及存储介质 |
CN116089951A (zh) * | 2023-02-24 | 2023-05-09 | 山东云天安全技术有限公司 | 一种恶意代码检测方法、可读存储介质及电子设备 |
CN116089951B (zh) * | 2023-02-24 | 2023-07-14 | 山东云天安全技术有限公司 | 一种恶意代码检测方法、可读存储介质及电子设备 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109635565A (zh) | 恶意程序的检测方法、装置、计算设备及计算机存储介质 | |
CN104834859B (zh) | 一种Android应用中恶意行为的动态检测方法 | |
US7657419B2 (en) | Analytical virtual machine | |
US7146305B2 (en) | Analytical virtual machine | |
CN104517054B (zh) | 一种检测恶意apk的方法、装置、客户端和服务器 | |
CN102576391B (zh) | 嵌入在shell代码中的软件许可 | |
JP6837064B2 (ja) | ランタイム生成コードにおける悪意のあるコードの検出のためのシステムおよび方法 | |
CN106295348B (zh) | 应用程序的漏洞检测方法及装置 | |
CN106055341A (zh) | 应用程序安装包的校验方法及装置 | |
CN104318160B (zh) | 查杀恶意程序的方法和装置 | |
Liu et al. | On manually reverse engineering communication protocols of linux-based iot systems | |
CN105512521A (zh) | 一种软件安装包的加固保护方法和系统 | |
CN114266050B (zh) | 一种跨平台恶意软件对抗样本生成方法及系统 | |
CN105989294B (zh) | 安卓安装包检测方法及装置 | |
CN108595950A (zh) | 一种结合远程认证的sgx安全增强方法 | |
EP3029595B1 (en) | Apparatuses, mobile devices, methods and computer programs for evaluating runtime information of an extracted set of instructions based on at least a part of a computer program | |
CN105471810B (zh) | 软件授权信息的验证方法及系统 | |
CN106960138B (zh) | 虚拟机指令的校验方法及装置、系统 | |
US11868465B2 (en) | Binary image stack cookie protection | |
CN115168847A (zh) | 应用补丁生成方法、装置、计算机设备及可读存储介质 | |
CN115168861A (zh) | 数据安全验证方法、装置、设备及存储介质 | |
CN108733990B (zh) | 一种基于区块链的文件保护方法及终端设备 | |
CN106709350A (zh) | 一种病毒检测方法及装置 | |
CN106650439A (zh) | 检测可疑应用程序的方法及装置 | |
CN105447348B (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: 20190416 |