CN103902910A - 检测智能终端中恶意代码的方法及装置 - Google Patents

检测智能终端中恶意代码的方法及装置 Download PDF

Info

Publication number
CN103902910A
CN103902910A CN201310746115.0A CN201310746115A CN103902910A CN 103902910 A CN103902910 A CN 103902910A CN 201310746115 A CN201310746115 A CN 201310746115A CN 103902910 A CN103902910 A CN 103902910A
Authority
CN
China
Prior art keywords
virtual machine
function
decompiling
execute file
symbol sequence
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.)
Granted
Application number
CN201310746115.0A
Other languages
English (en)
Other versions
CN103902910B (zh
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.)
Beijing Qihoo Technology Co Ltd
Original Assignee
Beijing Qihoo Technology 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 Beijing Qihoo Technology Co Ltd filed Critical Beijing Qihoo Technology Co Ltd
Priority to CN201310746115.0A priority Critical patent/CN103902910B/zh
Publication of CN103902910A publication Critical patent/CN103902910A/zh
Priority to PCT/CN2014/083909 priority patent/WO2015101043A1/zh
Priority to US15/108,927 priority patent/US9792433B2/en
Priority to PCT/CN2014/090032 priority patent/WO2015101096A1/zh
Application granted granted Critical
Publication of CN103902910B publication Critical patent/CN103902910B/zh
Priority to US15/714,721 priority patent/US10114946B2/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

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/55Detecting local intrusion or implementing counter-measures
    • G06F21/56Computer malware detection or handling, e.g. anti-virus arrangements
    • 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
    • G06F21/563Static detection by source code analysis

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Software Systems (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Virology (AREA)
  • Health & Medical Sciences (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Health & Medical Sciences (AREA)
  • Storage Device Security (AREA)
  • Stored Programmes (AREA)

Abstract

本发明公开了一种检测智能终端中恶意代码的方法及装置。其中的方法包括:从智能终端操作系统的应用程序层,获取应用程序的虚拟机执行文件;对虚拟机执行文件进行反编译,得到反编译的函数信息结构;解析反编译的函数信息结构,得到具有对应关系的虚拟机指令序列和虚拟机助记符序列;分析确定虚拟机助记符序列的函数功能,根据具有函数功能的虚拟机助记符序列对应的虚拟机指令序列确定目标特征;利用预先设置的恶意代码特征库,对目标特征进行匹配,如果匹配成功,则确定所述应用程序的虚拟机执行文件包含恶意代码。应用本发明方案,可对被篡改的应用程序或者对恶意软件进行查杀,保护智能终端的安全。

Description

检测智能终端中恶意代码的方法及装置
技术领域
本发明涉及智能终端安全技术领域,具体涉及一种检测智能终端中恶意代码的方法及装置。
背景技术
随着科技发展,智能终端具有越来越多的功能。例如,人们的手机从传统的GSM、TDMA数字手机转向了拥有能够处理多媒体资源、提供网页浏览、电话会议、电子商务等多种信息服务的智能手机。然而,品种日益繁多的手机恶意代码攻击以及形势日益严峻的个人数据安全问题也随之而来,越来越多的手机病毒让智能手机用户饱受其苦。
发明内容
鉴于上述问题,提出了本发明以便提供一种克服上述问题或者至少部分地解决上述问题的检测智能终端中恶意代码的方法及装置。
依据本发明的一个方面,提供一种检测智能终端中恶意代码的方法,包括:从智能终端操作系统的应用程序层,获取应用程序的虚拟机执行文件;对所述虚拟机执行文件进行反编译,得到反编译的函数信息结构;解析所述反编译的函数信息结构,得到具有对应关系的虚拟机指令序列和虚拟机助记符序列;分析确定所述虚拟机助记符序列的函数功能,根据具有所述函数功能的所述虚拟机助记符序列对应的虚拟机指令序列确定目标特征;利用预先设置的恶意代码特征库,对所述目标特征进行匹配,如果匹配成功,则确定所述应用程序的虚拟机执行文件包含恶意代码。
优选地,分析确定所述虚拟机助记符序列的函数功能包括:从所述虚拟机助记符序列中提取得到函数调用序列;通过分析按照顺序执行的多个函数调用序列的指令,确定所述虚拟机助记符序列的函数功能。
优选地,所述多个函数调用序列按照顺序执行的指令包括:解密字符串、创建消息签名实例、获取字符串子针、哈希加密。
优选地,所述根据具有所述函数功能的所述虚拟机助记符序列对应的虚拟机指令序列确定目标特征包括:将具有所述函数功能的所述虚拟机助记符序列对应的虚拟机指令序列作为所述目标特征,或者,将具有所述函数功能的所述虚拟机助记符序列对应的虚拟机指令序列的子集作为所述目标特征。
优选地,所述利用预先设置的恶意代码特征库,对所述目标特征进行匹配包括:利用预先设置的恶意代码特征库,对所述目标特征进行函数相似度匹配,和/或,对所述函数调用序列进行函数特征模糊匹配。
优选地,对所述虚拟机执行文件进行样本特征查杀、基于虚拟机查杀、启发式查杀,和/或,相似样本聚类。
优选地,所述对所述虚拟机执行文件进行反编译,得到反编译的函数信息结构包括:根据虚拟机执行文件格式对虚拟机执行文件进行解析,得到每个类的函数信息结构体;根据所述函数信息结构体中的字段,确定所述虚拟机执行文件的函数的位置及大小,得到所述反编译的函数信息结构。
优选地,所述根据函数信息结构体中的字段,确定所述虚拟机执行文件的函数的位置及大小包括:解析所述函数信息结构体,得到指示虚拟机执行文件的函数位置的字节码数组字段以及指示虚拟机执行文件的函数大小的列表长度字段;根据所述字节码数组字段以及所述列表长度字段,确定所述虚拟机执行文件的函数的位置及大小。
优选地,所述对所述虚拟机执行文件进行反编译,得到反编译的函数信息结构包括:利用虚拟机执行文件反编译工具,将所述虚拟机执行文件反编译为虚拟机字节码。
优选地,所述从智能终端操作系统的应用程序层,获取应用程序的虚拟机执行文件包括:从智能终端操作系统的应用程序层,查找到所述应用程序的安装包;解析所述安装包,得到所述应用程序的虚拟机执行文件。
优选地,所述操作系统是指安卓系统。
依据本发明的另一个方面,提供一种检测智能终端中恶意代码的装置,包括:文件获取单元,用于从智能终端操作系统的应用程序层,获取应用程序的虚拟机执行文件;反编译单元,用于对所述虚拟机执行文件进行反编译,得到反编译的函数信息结构;解析单元,用于通过解析所述反编译的函数信息结构,具有对应关系的虚拟机指令序列和虚拟机助记符序列;目标特征确定单元,用于分析确定所述虚拟机助记符序列的函数功能,根据具有所述函数功能的所述虚拟机助记符序列对应的虚拟机指令序列确定目标特征;检测单元,用于利用预先设置的恶意代码特征库,对所述目标特征进行匹配,如果匹配成功,则确定所述应用程序的虚拟机执行文件包含恶意代码。
优选地,还包括:提取单元,用于从所述虚拟机助记符序列中提取得到函数调用序列;所述目标特征确定单元,还用于通过分析按照顺序执行的多个函数调用序列的指令,确定所述虚拟机助记符序列的函数功能。
优选地,所述目标特征确定单元确定的多个函数调用序列按照顺序执行的指令包括:解密字符串、创建消息签名实例、获取字符串子针、哈希加密。
优选地,所述目标特征确定单元具体用于,将具有所述函数功能的所述虚拟机助记符序列对应的虚拟机指令序列作为所述目标特征,或者,将具有所述函数功能的所述虚拟机助记符序列对应的虚拟机指令序列的子集作为所述目标特征。
优选地,所述检测单元具体用于,利用预先设置的恶意代码特征库,对所述目标特征进行函数相似度匹配,和/或,对所述目标特征进行函数特征模糊匹配。
优选地,所述检测单元对所述虚拟机执行文件进行样本特征查杀、基于虚拟机查杀、启发式查杀,和/或,相似样本聚类。
优选地,所述反编译单元具体用于,根据虚拟机执行文件格式对虚拟机执行文件进行解析,得到每个类的函数信息结构体;根据所述函数信息结构体中的字段,确定所述虚拟机执行文件的函数的位置及大小,得到所述反编译的函数信息结构。
优选地,所述反编译单元,解析所述函数信息结构体,得到指示虚拟机执行文件的函数位置的字节码数组字段以及指示虚拟机执行文件的函数大小的列表长度字段;根据所述字节码数组字段以及所述列表长度字段,确定所述虚拟机执行文件的函数的位置及大小。
优选地,所述对反编译单元具体用于,利用虚拟机执行文件反编译工具,将所述虚拟机执行文件反编译为虚拟机字节码。
优选地,所述获取单元具体用于,从智能终端操作系统的应用程序层,查找到所述应用程序的安装包;解析所述安装包,得到所述应用程序的虚拟机执行文件。
优选地,所述操作系统是指安卓系统。
可见,本发明实施例通过对dex文件的格式分析和反编译,可以分析确定函数的功能,并且可以确定具有一定功能的函数作为目标特征,然后与恶意代码特征库进行匹配,从而确定dex文件是否包含恶意代码。
应用本发明方案,通过应用程序的dex文件,可分析确定该应用程序是否包含恶意代码,由此可以对被篡改的应用程序或者对恶意软件进行查杀,保护智能终端的安全。
上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的具体实施方式。
附图说明
通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本发明的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:
图1示出了根据本发明一个实施例的检测智能终端中恶意代码的方法的流程图;以及
图2示出了根据本发明一个实施例的检测智能终端中恶意代码的装置的结构示意图。
具体实施方式
下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。
以安卓(Android)操作系统为例,包括应用程序层(app层)和系统框架层(framework层),至于从功能划分上有可能包括的的其他层本发明则不作讨论。其中,通常app层可以理解为上层,负责与用户交互的界面,例如应用程序维护、以及点击页面时识别不同种类的点击内容从而显示不同的上下文菜单等。通常framework层作为中间层,这一层的主要职责是,将app层获得的用户请求,如启动用用程序、点击链接、点击保存图片之类,转发往下层去;将下层处理好的内容,或者通过消息,或者通过中间代理类,来分发至上层,对用户展现出来。
Dalvik是用于Android平台的Java虚拟机。Dalvik经过优化,允许在有限的内存中同时运行多个虚拟机的实例,并且每一个Dalvik应用作为一个独立的Linux进程执行。独立的进程可以防止在虚拟机崩溃的时候所有程序都被关闭。Dalvik虚拟机可以支持已转换为dex(Dalvik Executable)格式的Java应用程序的运行,dex格式是专为Dalvik设计的一种压缩格式,适合内存和处理器速度有限的系统。
可见,在Android系统中,dex文件是可以直接在Dalvik虚拟机(DalvikVM)中加载运行的虚拟机执行文件。通过ADT(Android Development Tools),经过复杂的编译,可以把java源代码转换为dex文件。dex文件是针对嵌入式系统优化的结果,Dalvik虚拟机的指令码并不是标准的Java虚拟机指令码,而是使用了自己独有的一套指令集。dex文件中共用了很多类名称、常量字符串,使它的体积比较小,运行效率也比较高。
本发明的发明人在研究过程中发现,经过对dex文件的解析,可以获知dex文件中函数的功能,由此,可以据此判断dex文件是否包含恶意代码(包括dex文件本身就是恶意软件,或者dex文件被篡改等情况)。
参见图1,示出了根据本发明一个实施例的检测智能终端中恶意代码的方法的流程图。
该检测智能终端中恶意代码的方法包括以下步骤。
S101:从智能终端操作系统的应用程序层,获取应用程序的虚拟机执行文件,例如获取应用程序的dex文件;
如前所述,Android操作系统包括应用程序层(app层)和系统框架层(framework层),本发明重点在于对app层的研究和改进。但是,本领域技术人员理解,当Android启动时,Dalvik VM监视所有的程序(APK文件)和框架,并且为它们创建一个依存关系树。DalvikVM通过这个依存关系树来为每个程序优化代码并存储在Dalvik缓存(dalvik-cache)中。这样,所有程序在运行时都会使用优化过的代码。当一个程序(或者框架库)发生变更,Dalvik VM将会重新优化代码并且再次将其存在缓存中。在cache/dalvik-cache是存放system上的程序生成的dex文件,而data/dalvik-cache则是存放data/app生成的dex文件。也就是,本发明重点在于对data/app生成的dex文件进行的分析和处理,但是应该理解,对于system上的程序生成的dex文件,本发明的理论和操作同样适用。
关于获取dex文件的方式,可以通过解析APK(Android Package,Android安装包)获得。APK文件其实是zip格式的一个压缩包,但后缀名被修改为apk,通过UnZip解压后,就可以得到Dex文件。
S102:对dex文件进行反编译,得到反编译的函数信息结构;
对dex文件进行反编译(或称为:反汇编)有多种方式。
第一种方式是,根据dex文件格式对dex文件进行解析,得到每个类的函数信息结构体;根据函数信息结构体中的字段,确定dex文件的函数的位置及大小,得到反编译的函数信息结构。其中,通过解析函数信息结构体,得到指示dex文件的函数位置的字节码数组字段以及指示dex文件的函数大小的列表长度字段,从而确定dex文件的函数的位置及大小。
例如,根据dex文件格式,解析dex文件,查找到每个类得函数信息。比如函数信息结构体包含如表1中的字段。
表1
Figure BDA0000450480120000061
Figure BDA0000450480120000071
其中,每个函数信息结构体中的insns_size和insns字段,分别代表了该函数大小及位置。那么,就可以根据insns_size和insns这两个字段,反编译出函数的信息结构。反编译的信息结构是由Dalvik VM字节码构成的。
第二种方式是,利用dex文件反编译工具,将dex文件反编译为虚拟机字节码。
如前介绍的,Dalvik虚拟机运行的是Dalvik字节码,其以一个dex(DalvikExecutable)可执行文件形式存在,Dalvik虚拟机通过解释dex文件来执行代码。目前有一些工具,可将DEX文件反汇编成Dalvik汇编代码。这类dex文件反编译工具包括:baksmali、Dedexer1.26、dexdump、dexinspecto03-12-12r、IDA Pro、androguard、dex2jar、010Editor等。
可见,通过对dex文件的反编译,可以得到所有函数的信息结构。其中,函数信息结构包含函数执行代码,本发明实施例中,是由虚拟机指令序列和虚拟机助记符序列构成的,如下面的例子,由Dalvik VM的指令序列和DalvikVM的助记符序列构成函数信息结构。
S103:解析反编译的函数信息结构,得到具有对应关系的虚拟机指令序列和虚拟机助记符序列;
例如,根据本发明一个实施例对dex文件进行反编译得到的函数信息结构如下:
Figure BDA0000450480120000081
可见,dex文件被反编译成Dalvik VM的指令序列和Dalvik VM的助记符序列。
如上例子,在反编译得到的函数信息结构中,机器码字段中的每一行的前2个数字是指令序列(上例子左侧被圈部分),而指令序列对应的部分为助记符(上例子右侧,部分被圈,未全部选择)。助记符主要是为了方便用户交流和代码编写。
如上例子,dex文件经过反编译就可以得到函数的指令序列为:“125438710c6e0c6e0a3854546e0c6e546e0c6e0c38720a391238546e54710e012854136e”。助记符序列为:“const/4iget-object if-eqz invoke-staticmove-result-object invoke-virtual move-result-object invoke-virtual move-resultif-eqz iget-object iget-object invoke-virtual move-result-object invoke-virtualiget-object invoke-virtual move-result-object invoke-virtual move-result-objectif-eqz invoke-interface move-result if-nez const/4if-eqz iget-object invoke-virtualiget-object invoke-static return-void move goto iget-object const/16invoke-virtual”。
S104:分析确定虚拟机助记符序列的函数功能,根据具有函数功能的虚拟机助记符序列对应的虚拟机指令序列确定目标特征;
其中,分析确定虚拟机助记符序列的函数功能的实现方式可以为:从虚拟机助记符序列中提取得到函数调用序列;通过分析按照顺序执行的多个函数调用序列的指令,确定虚拟机助记符序列的函数功能。
仍以上述例子讨论,接下来,从前述步骤获取的助记符序列中可提取得到函数调用序列。函数调用序列是指具有语义功能的代码,例如例如后面描述的具有字符串解密、创建实例等功能的代码。
Figure BDA0000450480120000101
上面例子框选的部分即为相关函数调用。
将这些调用抽取出,按调用顺序排序即可组成函数调用序列,函数的调用序列基本描述了本函数的行为。
如上例子:
1:“Lcom/mzhengDS;.DecryptString:Ljava/lang/String”
通过代码分析,可得知函数解密了一个字符串。
2:
“invoke-static{v0},Ljava/security/MessageDigest;.getInstance:Ljava/security/MessageDigest”
通过代码分析,可得知程序创建了一个消息签名实例,可以猜测到可能是准备使用md5sha等类似hash算法给1过程界面后的字符串加密。
3:“invoke-virtual{v6},Ljava/lang/String;.getBytes:[B”
获取字符串的指针,可以猜测字符串可能是过程1解密后的字符串,而获取指针可能是为了使用过程2的实例给字符串加密。
4:“invoke-virtual{v0,v1},Ljava/security/MessageDigest;.update:V”;
“invoke-virtual{v0},Ljava/security/MessageDigest;.digest:[B”
这2个函数调用证实了上述判断,根据函数名可以得知,这是对数据做了hash加密。
从上面这个例子可以看出,通过函数的调用序列就可以基本分析确定出这个函数的功能。
那么,函数调用序列所在的助记符序列对应的指令序列就代表具有一定功能的函数特征。例如,上述指令序列“12 54 38 71 0c 6e 0c 6e 0a 38 54 54 6e0c 6e 54 6e 0c 6e 0c 38 72 0a 39 12 38 54 6e 54 71 0e 01 28 54 13 6e”即代表了一定功能的函数的特征。在进行恶意代码检测时,可以据此确定目标特征进行检测。比如,可以将将具有上述函数功能的指令序列作为目标特征,或者,将具有上述函数功能的指令序列的子集(指令序列的一部分)作为所述目标特征。
S105:利用预先设置的恶意代码特征库,对目标特征进行匹配,如果匹配成功,则确定应用程序的dex文件包含恶意代码。
恶意代码(Malicious Code)是指通过存储介质或网络进行传播,在未经授权认证的情况下破坏操作系统完整性、窃取系统中未公开秘密信息的程序或代码。以手机为例,手机恶意代码是指针对手机、PDA等手持设备的恶意代码。手机恶意代码可以简单地划分为复制型恶意代码和非复制型恶意代码。其中复制型恶意代码主要包括病毒(Virus)、蠕虫(Worm),非复制型恶意代码主要包括特洛伊木马后门程序(Trojan Horse)、流氓软件(RogueSoftware)、恶意移动代码(Malicious Mobile Code)以及Rootkit程序等。
手机恶意代码防护技术针对恶意代码进行防护。手机恶意代码防护方式包括多种。例如,特征值扫描方式,它需要预先学习建立恶意代码特征库,恶意代码特征库中保存的特征值可以是一段连续的固定字符串,也可以是几段中间插有其他不确定字符的不连续的字符串确定其中的特征串;在扫描时,基于特征库中的特征值或特征串去检测待测文件或内存,发现匹配项则可确定目标感染了恶意代码。再如,基于虚拟机技术的恶意代码防护。此类防护方案主要针对多态和变形病毒。所谓的虚拟机是指通过软件模拟具有完整硬件系统功能的、运行在一个完全隔离环境中的完整计算机系统。该方案也称为软件模拟法,是一种软件分析器,用软件方法来模拟和分析程序的运行。它实质是在内存中模拟出一个小的封闭程序执行环境,所有待查杀文件都在其中被虚拟执行。采用虚拟机技术进行杀毒时,首先使用的还是特征值扫描技术,当发现目标具有加密恶意代码的特征时,才会启动虚拟机模块让加密代码自行解码,解码之后,就可以采用传统的特征值扫描方式进行查杀。再如,启发式扫描方式。启发式扫描方案主要针对恶意代码的不断变种以及为了加强对未知恶意代码的研究。所谓“启发式”源自人工智能,是指“自我发现的能力”或“运用某种方式或方法去判定事物的知识和技能”。恶意代码的启发式扫描是指扫描软件能够利用从经验中提取的规则,通过分析程序的结构和它的行为来发现病毒。因为恶意代码要达到感染和破坏的目的,通常的行为都会有一定的特征,例如非常规读写文件、终结自身、非常规切入零环等。因此可以根据扫描特定的行为或多种行为的组合来判断一个程序是否为恶意代码。此外,还可以对目标程序进行相似样本聚类,例如采用K均值聚类算法对分析确定的相似样本进行聚类。
不论哪种防护方式,其核心都包含两部分,第一是组织合理的恶意代码特征库,第二是高效的扫描算法(也称为匹配算法)。匹配算法一般分为单模式匹配算法和多模式匹配算法两种。单模式匹配算法包括BF(Brute-Force)算法、KMP(Knuth-Morris-Pratt)算法、BM(Boyer-Moore)算法和QS(QuickSearch)算法等。多模式匹配算法包括经典多模式匹配DFSA算法和基于有序二叉树的多模式匹配算法。另外,还可将匹配算法分为模糊匹配算法、相似匹配算法。以BF算法为例,它是一种简单直观的单模式匹配算法,属于模糊匹配算法。其基本思想为:首先将主串中的第一个字符s1与模式t中的第一个字符t1进行比较,若相等,则继续逐个比较后继字符;否则,就将s中的第二个字符s2与t1进行比较,依次类推,直到t中每一个字符依次和s中的一个连续字符序列相等(匹配成功),返回该字符序列中第一个字符在主串中的位置;或者在s中找不到和t相等的字符序列(匹配失败),返回0。再以KMP算法为例,它是一种改进的模式匹配的算法,它对于BF算法其最大的改进就是:利用模式中隐含的“部分匹配”的信息,使的在出现失配情况下,进行下一次比较时主串中的i指针(指向失配字符)不需要回溯,而将模式中的j指针(指向下一次比较的位置)向后“滑动”一个尽可能远的距离继续进行。此滑动K由next函数求的。KMP算法可描述为:假设以指针i和j分别增1;若si不等于tj,则i不变,j退到next(j)位置再比较,如此循环往复,直至在主串中找到与模式串相等的子串或者搜索完整个主串后也没发现与模式串相等的字串,算法结束。
本步骤中,利用预先设置的恶意代码特征库,对目标特征进行匹配,如果匹配成功,则确定应用程序的dex文件包含恶意代码。具体地,可以将多个函数调用序列构成的具有一定功能的函数作为目标特征,利用预先设置的恶意代码特征库,对目标特征进行查杀,例如,进行函数相似度匹配或进行函数特征模糊匹配。
需要说明的是,本发明不限定采用何种恶意代码防护方案对恶意代码进行检测,例如,可以采用上面介绍的样本特征查杀(特征值扫描)、基于虚拟机查杀或者启发式查杀,另外还可以进行相似样本聚类。而且,对于匹配算法也不作限制,例如,可以采用上面介绍的模糊匹配算法或者相似匹配算法等。
可见,本发明实施例通过对dex文件的格式分析和反编译,可以分析确定函数的功能,并且可以确定具有一定功能的函数作为目标特征,然后与恶意代码特征库进行匹配,从而确定dex文件是否包含恶意代码。
应用本发明方案,通过应用程序的dex文件,可分析确定该应用程序是否包含恶意代码,由此可以对被篡改的应用程序或者对恶意软件进行查杀,保护智能终端的安全。
与上述方法相对应,本发明实施例还提供一种检测智能终端中恶意代码的装置。该装置可以通过软件、硬件或软硬件结合实现。具体地,该装置可以是指一个终端设备,也可以是指设备内部的功能实体。例如,该装置可以是指手机内部的功能模块。优选地,该装置运行在Android操作系统下。
参见图2,该装置包括文件获取单元201、反编译单元202、解析单元203、目标特征确定单元204以及检测单元205。
其中:
文件获取单元201,用于从智能终端操作系统的应用程序层,获取应用程序的虚拟机执行文件,例如获取dex文件;
反编译单元202,用于对dex文件进行反编译,得到反编译的函数信息结构;
解析单元203,用于通过解析反编译的函数信息结构,具有对应关系的虚拟机指令序列和虚拟机助记符序列;
目标特征确定单元204,用于分析确定虚拟机助记符序列的函数功能,根据具有函数功能的虚拟机助记符序列对应的虚拟机指令序列确定目标特征;
检测单元205,用于利用预先设置的恶意代码特征库,对目标特征进行匹配,如果匹配成功,则确定应用程序的dex文件包含恶意代码。
优选地,该装置还包括提取单元206:
提取单元206,用于从虚拟机助记符序列中提取得到函数调用序列;
此情况下,目标特征确定单元204,还用于通过分析按照顺序执行的多个函数调用序列的指令,确定虚拟机助记符序列的函数功能。
其中,目标特征确定单元204具体用于,将具有所述函数功能的所述虚拟机助记符序列对应的虚拟机指令序列作为所述目标特征,或者,将具有所述函数功能的所述虚拟机助记符序列对应的虚拟机指令序列的子集作为所述目标特征。目标特征确定单元204确定的多个函数调用序列按照顺序执行的指令包括:解密字符串、创建消息签名实例、获取字符串子针、哈希加密。
其中,检测单元205具体用于,利用预先设置的恶意代码特征库,对目标特征进行函数相似度匹配,和/或,对目标特征进行函数特征模糊匹配。
而且,检测单元205对dex文件进行样本特征查杀、基于虚拟机查杀、启发式查杀,和/或,相似样本聚类。
其中,反编译单元202具体用于,根据dex文件格式对dex文件进行解析,得到每个类的函数信息结构体;根据函数信息结构体中的字段,确定dex文件的函数的位置及大小,得到反编译的函数信息结构;进一步,反编译单元202,解析函数信息结构体,得到指示dex文件的函数位置的字节码数组字段以及指示dex文件的函数大小的列表长度字段;根据字节码数组字段以及列表长度字段,确定dex文件的函数的位置及大小;
或者,反编译单元202具体用于,利用虚拟机执行文件反编译工具,将dex文件反编译为虚拟机字节码。
其中,获取单元201具体用于,从智能终端操作系统的应用程序层,查找到应用程序的安装包;解析安装包,得到应用程序的dex文件。
关于该装置的具体实现细节可参加方法实施例,在此不赘述。
在此提供的算法和显示不与任何特定计算机、虚拟系统或者其它设备固有相关。各种通用系统也可以与基于在此的示教一起使用。根据上面的描述,构造这类系统所要求的结构是显而易见的。此外,本发明也不针对任何特定编程语言。应当明白,可以利用各种编程语言实现在此描述的本发明的内容,并且上面对特定语言所做的描述是为了披露本发明的最佳实施方式。
在此处所提供的说明书中,说明了大量具体细节。然而,能够理解,本发明的实施例可以在没有这些具体细节的情况下实践。在一些实例中,并未详细示出公知的方法、结构和技术,以便不模糊对本说明书的理解。
类似地,应当理解,为了精简本公开并帮助理解各个发明方面中的一个或多个,在上面对本发明的示例性实施例的描述中,本发明的各个特征有时被一起分组到单个实施例、图、或者对其的描述中。然而,并不应将该公开的方法解释成反映如下意图:即所要求保护的本发明要求比在每个权利要求中所明确记载的特征更多的特征。更确切地说,如下面的权利要求书所反映的那样,发明方面在于少于前面公开的单个实施例的所有特征。因此,遵循具体实施方式的权利要求书由此明确地并入该具体实施方式,其中每个权利要求本身都作为本发明的单独实施例。
本领域那些技术人员可以理解,可以对实施例中的设备中的模块进行自适应性地改变并且把它们设置在与该实施例不同的一个或多个设备中。可以把实施例中的模块或单元或组件组合成一个模块或单元或组件,以及此外可以把它们分成多个子模块或子单元或子组件。除了这样的特征和/或过程或者单元中的至少一些是相互排斥之外,可以采用任何组合对本说明书(包括伴随的权利要求、摘要和附图)中公开的所有特征以及如此公开的任何方法或者设备的所有过程或单元进行组合。除非另外明确陈述,本说明书(包括伴随的权利要求、摘要和附图)中公开的每个特征可以由提供相同、等同或相似目的的替代特征来代替。
此外,本领域的技术人员能够理解,尽管在此所述的一些实施例包括其它实施例中所包括的某些特征而不是其它特征,但是不同实施例的特征的组合意味着处于本发明的范围之内并且形成不同的实施例。例如,在下面的权利要求书中,所要求保护的实施例的任意之一都可以以任意的组合方式来使用。
本发明的各个部件实施例可以以硬件实现,或者以在一个或者多个处理器上运行的软件模块实现,或者以它们的组合实现。本领域的技术人员应当理解,可以在实践中使用微处理器或者数字信号处理器(DSP)来实现根据本发明实施例的检测智能终端中恶意代码的装置中的一些或者全部部件的一些或者全部功能。本发明还可以实现为用于执行这里所描述的方法的一部分或者全部的设备或者装置程序(例如,计算机程序和计算机程序产品)。这样的实现本发明的程序可以存储在计算机可读介质上,或者可以具有一个或者多个信号的形式。这样的信号可以从因特网网站上下载得到,或者在载体信号上提供,或者以任何其他形式提供。
应该注意的是上述实施例对本发明进行说明而不是对本发明进行限制,并且本领域技术人员在不脱离所附权利要求的范围的情况下可设计出替换实施例。在权利要求中,不应将位于括号之间的任何参考符号构造成对权利要求的限制。单词“包含”不排除存在未列在权利要求中的元件或步骤。位于元件之前的单词“一”或“一个”不排除存在多个这样的元件。本发明可以借助于包括有若干不同元件的硬件以及借助于适当编程的计算机来实现。在列举了若干装置的单元权利要求中,这些装置中的若干个可以是通过同一个硬件项来具体体现。单词第一、第二、以及第三等的使用不表示任何顺序。可将这些单词解释为名称。
本发明提供了如下方案:
A1、一种检测智能终端中恶意代码的方法,包括:
从智能终端操作系统的应用程序层,获取应用程序的虚拟机执行文件;
对所述虚拟机执行文件进行反编译,得到反编译的函数信息结构;
解析所述反编译的函数信息结构,得到具有对应关系的虚拟机指令序列和虚拟机助记符序列;
分析确定所述虚拟机助记符序列的函数功能,根据具有所述函数功能的所述虚拟机助记符序列对应的虚拟机指令序列确定目标特征;
利用预先设置的恶意代码特征库,对所述目标特征进行匹配,如果匹配成功,则确定所述应用程序的虚拟机执行文件包含恶意代码。
A2、如A1所述的方法,分析确定所述虚拟机助记符序列的函数功能包括:
从所述虚拟机助记符序列中提取得到函数调用序列;
通过分析按照顺序执行的多个函数调用序列的指令,确定所述虚拟机助记符序列的函数功能。
A3、如A2所述的方法,所述多个函数调用序列按照顺序执行的指令包括:解密字符串、创建消息签名实例、获取字符串子针、哈希加密。
A4、如A1所述的方法,所述根据具有所述函数功能的所述虚拟机助记符序列对应的虚拟机指令序列确定目标特征包括:
将具有所述函数功能的所述虚拟机助记符序列对应的虚拟机指令序列作为所述目标特征,或者,
将具有所述函数功能的所述虚拟机助记符序列对应的虚拟机指令序列的子集作为所述目标特征。
A5、如A1所述的方法,所述利用预先设置的恶意代码特征库,对所述目标特征进行匹配包括:
利用预先设置的恶意代码特征库,对所述目标特征进行函数相似度匹配,和/或,对所述函数调用序列进行函数特征模糊匹配。
A6、如A1所述的方法,对所述虚拟机执行文件进行样本特征查杀、基于虚拟机查杀、启发式查杀,和/或,相似样本聚类。
A7、如A1所述的方法,所述对所述虚拟机执行文件进行反编译,得到反编译的函数信息结构包括:
根据虚拟机执行文件格式对虚拟机执行文件进行解析,得到每个类的函数信息结构体;
根据所述函数信息结构体中的字段,确定所述虚拟机执行文件的函数的位置及大小,得到所述反编译的函数信息结构。
A8、如A7所述的方法,所述根据函数信息结构体中的字段,确定所述虚拟机执行文件的函数的位置及大小包括:
解析所述函数信息结构体,得到指示虚拟机执行文件的函数位置的字节码数组字段以及指示虚拟机执行文件的函数大小的列表长度字段;
根据所述字节码数组字段以及所述列表长度字段,确定所述虚拟机执行文件的函数的位置及大小。
A9、如A1所述的方法,所述对所述虚拟机执行文件进行反编译,得到反编译的函数信息结构包括:
利用虚拟机执行文件反编译工具,将所述虚拟机执行文件反编译为虚拟机字节码。
A10、如A1所述的方法,所述从智能终端操作系统的应用程序层,获取应用程序的虚拟机执行文件包括:
从智能终端操作系统的应用程序层,查找到所述应用程序的安装包;
解析所述安装包,得到所述应用程序的虚拟机执行文件。
A11、如A1-A10任一项所述的方法,所述操作系统是指安卓系统。
B12、一种检测智能终端中恶意代码的装置,包括:
文件获取单元,用于从智能终端操作系统的应用程序层,获取应用程序的虚拟机执行文件;
反编译单元,用于对所述虚拟机执行文件进行反编译,得到反编译的函数信息结构;
解析单元,用于通过解析所述反编译的函数信息结构,具有对应关系的虚拟机指令序列和虚拟机助记符序列;
目标特征确定单元,用于分析确定所述虚拟机助记符序列的函数功能,根据具有所述函数功能的所述虚拟机助记符序列对应的虚拟机指令序列确定目标特征;
检测单元,用于利用预先设置的恶意代码特征库,对所述目标特征进行匹配,如果匹配成功,则确定所述应用程序的虚拟机执行文件包含恶意代码。
B13、如B12所述的装置,还包括:
提取单元,用于从所述虚拟机助记符序列中提取得到函数调用序列;
所述目标特征确定单元,还用于通过分析按照顺序执行的多个函数调用序列的指令,确定所述虚拟机助记符序列的函数功能。
B14、如B13所述的装置,所述目标特征确定单元确定的多个函数调用序列按照顺序执行的指令包括:解密字符串、创建消息签名实例、获取字符串子针、哈希加密。
B15、如B12所述的装置,所述目标特征确定单元具体用于,将具有所述函数功能的所述虚拟机助记符序列对应的虚拟机指令序列作为所述目标特征,或者,将具有所述函数功能的所述虚拟机助记符序列对应的虚拟机指令序列的子集作为所述目标特征。
B16、如B12所述的装置,所述检测单元具体用于,利用预先设置的恶意代码特征库,对所述目标特征进行函数相似度匹配,和/或,对所述目标特征进行函数特征模糊匹配。
B17、如B12所述的装置,所述检测单元对所述虚拟机执行文件进行样本特征查杀、基于虚拟机查杀、启发式查杀,和/或,相似样本聚类。
B18、如B12所述的装置,所述反编译单元具体用于,根据虚拟机执行文件格式对虚拟机执行文件进行解析,得到每个类的函数信息结构体;根据所述函数信息结构体中的字段,确定所述虚拟机执行文件的函数的位置及大小,得到所述反编译的函数信息结构。
B19、如B18所述的装置,所述反编译单元,解析所述函数信息结构体,得到指示虚拟机执行文件的函数位置的字节码数组字段以及指示虚拟机执行文件的函数大小的列表长度字段;根据所述字节码数组字段以及所述列表长度字段,确定所述虚拟机执行文件的函数的位置及大小。
B20、如B12所述的装置,所述对反编译单元具体用于,利用虚拟机执行文件反编译工具,将所述虚拟机执行文件反编译为虚拟机字节码。
B21、如B12所述的装置,所述获取单元具体用于,从智能终端操作系统的应用程序层,查找到所述应用程序的安装包;解析所述安装包,得到所述应用程序的虚拟机执行文件。
B22、如B12-B21任一项所述的装置,所述操作系统是指安卓系统。

Claims (9)

1.一种检测智能终端中恶意代码的方法,其特征在于,包括: 
从智能终端操作系统的应用程序层,获取应用程序的虚拟机执行文件; 
对所述虚拟机执行文件进行反编译,得到反编译的函数信息结构; 
解析所述反编译的函数信息结构,得到具有对应关系的虚拟机指令序列和虚拟机助记符序列; 
分析确定所述虚拟机助记符序列的函数功能,根据具有所述函数功能的所述虚拟机助记符序列对应的虚拟机指令序列确定目标特征; 
利用预先设置的恶意代码特征库,对所述目标特征进行匹配,如果匹配成功,则确定所述应用程序的虚拟机执行文件包含恶意代码。 
2.如权利要求1所述的方法,其特征在于,分析确定所述虚拟机助记符序列的函数功能包括: 
从所述虚拟机助记符序列中提取得到函数调用序列; 
通过分析按照顺序执行的多个函数调用序列的指令,确定所述虚拟机助记符序列的函数功能。 
3.如权利要求2所述的方法,其特征在于,所述多个函数调用序列按照顺序执行的指令包括:解密字符串、创建消息签名实例、获取字符串子针、哈希加密。 
4.如权利要求1所述的方法,其特征在于,所述根据具有所述函数功能的所述虚拟机助记符序列对应的虚拟机指令序列确定目标特征包括: 
将具有所述函数功能的所述虚拟机助记符序列对应的虚拟机指令序列作为所述目标特征,或者, 
将具有所述函数功能的所述虚拟机助记符序列对应的虚拟机指令序列的子集作为所述目标特征。 
5.如权利要求1所述的方法,其特征在于,所述利用预先设置的恶意代码特征库,对所述目标特征进行匹配包括: 
利用预先设置的恶意代码特征库,对所述目标特征进行函数相似度匹配,和/或,对所述函数调用序列进行函数特征模糊匹配。 
6.如权利要求1所述的方法,其特征在于,对所述虚拟机执行文件进行样本特征查杀、基于虚拟机查杀、启发式查杀,和/或,相似样本聚类。 
7.如权利要求1所述的方法,其特征在于,所述对所述虚拟机执行文件进行反编译,得到反编译的函数信息结构包括: 
根据虚拟机执行文件格式对虚拟机执行文件进行解析,得到每个类的函数信息结构体; 
根据所述函数信息结构体中的字段,确定所述虚拟机执行文件的函数的位置及大小,得到所述反编译的函数信息结构。 
8.如权利要求7所述的方法,其特征在于,所述根据函数信息结构体中的字段,确定所述虚拟机执行文件的函数的位置及大小包括: 
解析所述函数信息结构体,得到指示虚拟机执行文件的函数位置的字节码数组字段以及指示虚拟机执行文件的函数大小的列表长度字段; 
根据所述字节码数组字段以及所述列表长度字段,确定所述虚拟机执行文件的函数的位置及大小。 
9.一种检测智能终端中恶意代码的装置,其特征在于,包括: 
文件获取单元,用于从智能终端操作系统的应用程序层,获取应用程序的虚拟机执行文件; 
反编译单元,用于对所述虚拟机执行文件进行反编译,得到反编译的函数信息结构; 
解析单元,用于通过解析所述反编译的函数信息结构,具有对应关系的虚拟机指令序列和虚拟机助记符序列; 
目标特征确定单元,用于分析确定所述虚拟机助记符序列的函数功能,根据具有所述函数功能的所述虚拟机助记符序列对应的虚拟机指令序列确定目标特征; 
检测单元,用于利用预先设置的恶意代码特征库,对所述目标特征进行匹配,如果匹配成功,则确定所述应用程序的虚拟机执行文件包含恶意代码。 
CN201310746115.0A 2013-12-30 2013-12-30 检测智能终端中恶意代码的方法及装置 Active CN103902910B (zh)

Priority Applications (5)

Application Number Priority Date Filing Date Title
CN201310746115.0A CN103902910B (zh) 2013-12-30 2013-12-30 检测智能终端中恶意代码的方法及装置
PCT/CN2014/083909 WO2015101043A1 (zh) 2013-12-30 2014-08-07 检测智能终端中恶意代码的方法及装置
US15/108,927 US9792433B2 (en) 2013-12-30 2014-10-31 Method and device for detecting malicious code in an intelligent terminal
PCT/CN2014/090032 WO2015101096A1 (zh) 2013-12-30 2014-10-31 检测智能终端中恶意代码的方法及装置
US15/714,721 US10114946B2 (en) 2013-12-30 2017-09-25 Method and device for detecting malicious code in an intelligent terminal

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201310746115.0A CN103902910B (zh) 2013-12-30 2013-12-30 检测智能终端中恶意代码的方法及装置

Publications (2)

Publication Number Publication Date
CN103902910A true CN103902910A (zh) 2014-07-02
CN103902910B CN103902910B (zh) 2016-07-13

Family

ID=50994223

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201310746115.0A Active CN103902910B (zh) 2013-12-30 2013-12-30 检测智能终端中恶意代码的方法及装置

Country Status (2)

Country Link
CN (1) CN103902910B (zh)
WO (1) WO2015101043A1 (zh)

Cited By (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104504330A (zh) * 2014-12-12 2015-04-08 北京奇虎科技有限公司 虚拟化安全检测方法与系统
CN104657661A (zh) * 2015-01-26 2015-05-27 武汉安天信息技术有限责任公司 移动终端中恶意代码的检测方法和装置
WO2015101042A1 (zh) * 2013-12-30 2015-07-09 北京奇虎科技有限公司 检测智能终端中恶意代码的方法及装置
WO2015101043A1 (zh) * 2013-12-30 2015-07-09 北京奇虎科技有限公司 检测智能终端中恶意代码的方法及装置
WO2015101096A1 (zh) * 2013-12-30 2015-07-09 北京奇虎科技有限公司 检测智能终端中恶意代码的方法及装置
CN104199774B (zh) * 2014-09-05 2017-02-22 北京奇虎科技有限公司 程序安全测试方法和装置
CN106909844A (zh) * 2015-12-22 2017-06-30 北京奇虎科技有限公司 一种应用程序样本的分类方法及装置
CN106909839A (zh) * 2015-12-22 2017-06-30 北京奇虎科技有限公司 一种提取样本代码特征的方法及装置
CN106909841A (zh) * 2015-12-22 2017-06-30 北京奇虎科技有限公司 一种判断病毒代码的方法及装置
WO2017221091A1 (en) * 2016-06-23 2017-12-28 International Business Machines Corporation Detecting vulnerable applications
CN108710492A (zh) * 2018-04-20 2018-10-26 四川普思科创信息技术有限公司 一种识别app程序中第三方库的方法
CN109460386A (zh) * 2018-10-29 2019-03-12 杭州安恒信息技术股份有限公司 基于多维度模糊哈希匹配的恶意文件同源性分析方法及装置
CN109670310A (zh) * 2019-01-28 2019-04-23 杭州师范大学 一种基于半监督K-Means聚类算法的Android恶意软件检测方法
CN110147672A (zh) * 2019-03-28 2019-08-20 江苏通付盾信息安全技术有限公司 一种基于iOS应用的安全检测方法、装置及系统
CN110516447A (zh) * 2019-08-21 2019-11-29 上海连尚网络科技有限公司 一种识别终端模拟器的方法与设备
CN111046385A (zh) * 2019-11-22 2020-04-21 北京达佳互联信息技术有限公司 软件类型检测方法、装置、电子设备及存储介质
CN112817603A (zh) * 2021-01-26 2021-05-18 京东数字科技控股股份有限公司 应用程序处理方法、装置、电子设备、系统和存储介质
CN113360910A (zh) * 2021-06-30 2021-09-07 中国农业银行股份有限公司 恶意应用的检测方法、装置、服务器和可读存储介质

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101359351A (zh) * 2008-09-25 2009-02-04 中国人民解放军信息工程大学 针对恶意行为的多层语义标注及检测方法
CN102760219A (zh) * 2011-12-20 2012-10-31 北京安天电子设备有限公司 一种Android平台软件保护系统、方法及设备
CN102789562A (zh) * 2012-07-19 2012-11-21 腾讯科技(深圳)有限公司 确定病毒文件的方法和装置
CN102799826A (zh) * 2012-07-19 2012-11-28 腾讯科技(深圳)有限公司 应用程序安装包解压过程的检测方法与装置、客户端设备

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8434151B1 (en) * 2008-01-04 2013-04-30 International Business Machines Corporation Detecting malicious software
CN103268445B (zh) * 2012-12-27 2016-01-13 武汉安天信息技术有限责任公司 一种基于OpCode的android恶意代码检测方法及系统
CN103473507B (zh) * 2013-09-25 2016-03-30 西安交通大学 一种Android恶意代码检测方法
CN103440459B (zh) * 2013-09-25 2016-04-06 西安交通大学 一种基于函数调用的Android恶意代码检测方法
CN103473509A (zh) * 2013-09-30 2013-12-25 清华大学 Android平台恶意软件自动检测方法
CN103761476B (zh) * 2013-12-30 2016-11-09 北京奇虎科技有限公司 特征提取的方法及装置
CN103902910B (zh) * 2013-12-30 2016-07-13 北京奇虎科技有限公司 检测智能终端中恶意代码的方法及装置
CN103761475B (zh) * 2013-12-30 2017-04-26 北京奇虎科技有限公司 检测智能终端中恶意代码的方法及装置

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101359351A (zh) * 2008-09-25 2009-02-04 中国人民解放军信息工程大学 针对恶意行为的多层语义标注及检测方法
CN102760219A (zh) * 2011-12-20 2012-10-31 北京安天电子设备有限公司 一种Android平台软件保护系统、方法及设备
CN102789562A (zh) * 2012-07-19 2012-11-21 腾讯科技(深圳)有限公司 确定病毒文件的方法和装置
CN102799826A (zh) * 2012-07-19 2012-11-28 腾讯科技(深圳)有限公司 应用程序安装包解压过程的检测方法与装置、客户端设备

Cited By (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2015101042A1 (zh) * 2013-12-30 2015-07-09 北京奇虎科技有限公司 检测智能终端中恶意代码的方法及装置
WO2015101043A1 (zh) * 2013-12-30 2015-07-09 北京奇虎科技有限公司 检测智能终端中恶意代码的方法及装置
WO2015101096A1 (zh) * 2013-12-30 2015-07-09 北京奇虎科技有限公司 检测智能终端中恶意代码的方法及装置
CN104199774B (zh) * 2014-09-05 2017-02-22 北京奇虎科技有限公司 程序安全测试方法和装置
CN104504330B (zh) * 2014-12-12 2017-12-08 北京奇安信科技有限公司 虚拟化安全检测方法与系统
CN104504330A (zh) * 2014-12-12 2015-04-08 北京奇虎科技有限公司 虚拟化安全检测方法与系统
WO2016091086A1 (zh) * 2014-12-12 2016-06-16 北京奇虎科技有限公司 虚拟化安全检测方法与系统
CN104657661B (zh) * 2015-01-26 2018-05-22 武汉安天信息技术有限责任公司 移动终端中恶意代码的检测方法和装置
CN104657661A (zh) * 2015-01-26 2015-05-27 武汉安天信息技术有限责任公司 移动终端中恶意代码的检测方法和装置
CN106909839B (zh) * 2015-12-22 2020-04-17 北京奇虎科技有限公司 一种提取样本代码特征的方法及装置
CN106909839A (zh) * 2015-12-22 2017-06-30 北京奇虎科技有限公司 一种提取样本代码特征的方法及装置
CN106909841A (zh) * 2015-12-22 2017-06-30 北京奇虎科技有限公司 一种判断病毒代码的方法及装置
CN106909844A (zh) * 2015-12-22 2017-06-30 北京奇虎科技有限公司 一种应用程序样本的分类方法及装置
WO2017221091A1 (en) * 2016-06-23 2017-12-28 International Business Machines Corporation Detecting vulnerable applications
GB2568410B (en) * 2016-06-23 2019-11-20 Ibm Detecting vulnerable applications
GB2568410A (en) * 2016-06-23 2019-05-15 Ibm Detecting vulnerable applications
CN108710492A (zh) * 2018-04-20 2018-10-26 四川普思科创信息技术有限公司 一种识别app程序中第三方库的方法
CN109460386A (zh) * 2018-10-29 2019-03-12 杭州安恒信息技术股份有限公司 基于多维度模糊哈希匹配的恶意文件同源性分析方法及装置
CN109670310A (zh) * 2019-01-28 2019-04-23 杭州师范大学 一种基于半监督K-Means聚类算法的Android恶意软件检测方法
CN110147672A (zh) * 2019-03-28 2019-08-20 江苏通付盾信息安全技术有限公司 一种基于iOS应用的安全检测方法、装置及系统
CN110516447A (zh) * 2019-08-21 2019-11-29 上海连尚网络科技有限公司 一种识别终端模拟器的方法与设备
CN110516447B (zh) * 2019-08-21 2022-02-11 上海连尚网络科技有限公司 一种识别终端模拟器的方法与设备
CN111046385A (zh) * 2019-11-22 2020-04-21 北京达佳互联信息技术有限公司 软件类型检测方法、装置、电子设备及存储介质
CN111046385B (zh) * 2019-11-22 2022-04-22 北京达佳互联信息技术有限公司 软件类型检测方法、装置、电子设备及存储介质
CN112817603A (zh) * 2021-01-26 2021-05-18 京东数字科技控股股份有限公司 应用程序处理方法、装置、电子设备、系统和存储介质
CN113360910A (zh) * 2021-06-30 2021-09-07 中国农业银行股份有限公司 恶意应用的检测方法、装置、服务器和可读存储介质

Also Published As

Publication number Publication date
CN103902910B (zh) 2016-07-13
WO2015101043A1 (zh) 2015-07-09

Similar Documents

Publication Publication Date Title
CN103761475A (zh) 检测智能终端中恶意代码的方法及装置
CN103902910B (zh) 检测智能终端中恶意代码的方法及装置
US10114946B2 (en) Method and device for detecting malicious code in an intelligent terminal
Zuo et al. Neural machine translation inspired binary code similarity comparison beyond function pairs
Alrabaee et al. Fossil: a resilient and efficient system for identifying foss functions in malware binaries
Crussell et al. Andarwin: Scalable detection of android application clones based on semantics
Crussell et al. Andarwin: Scalable detection of semantically similar android applications
CN103761476A (zh) 特征提取的方法及装置
Tian et al. Software plagiarism detection with birthmarks based on dynamic key instruction sequences
US9135443B2 (en) Identifying malicious threads
Lin et al. Automated forensic analysis of mobile applications on Android devices
US20170372068A1 (en) Method to identify known compilers functions, libraries and objects inside files and data items containing an executable code
Zhang et al. Android application forensics: A survey of obfuscation, obfuscation detection and deobfuscation techniques and their impact on investigations
Zakeri et al. A static heuristic approach to detecting malware targets
Webster et al. Finding the needle: A study of the pe32 rich header and respective malware triage
Van Overveldt et al. FlashDetect: ActionScript 3 malware detection
Martinelli et al. Model checking and machine learning techniques for HummingBad mobile malware detection and mitigation
US20220107827A1 (en) Applying security mitigation measures for stack corruption exploitation in intermediate code files
Naidu et al. Needleman-wunsch and smith-waterman algorithms for identifying viral polymorphic malware variants
Hu et al. A semantics-based hybrid approach on binary code similarity comparison
Akram et al. DroidMD: an efficient and scalable android malware detection approach at source code level
Naidu et al. A syntactic approach for detecting viral polymorphic malware variants
Kalysch et al. Tackling androids native library malware with robust, efficient and accurate similarity measures
Mahawer et al. Metamorphic malware detection using base malware identification approach
CN103677746A (zh) 指令重组方法及装置

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant