CN103473506B - 用于识别恶意apk文件的方法和装置 - Google Patents

用于识别恶意apk文件的方法和装置 Download PDF

Info

Publication number
CN103473506B
CN103473506B CN201310388742.1A CN201310388742A CN103473506B CN 103473506 B CN103473506 B CN 103473506B CN 201310388742 A CN201310388742 A CN 201310388742A CN 103473506 B CN103473506 B CN 103473506B
Authority
CN
China
Prior art keywords
sample
apk file
apk
file
condition code
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
Application number
CN201310388742.1A
Other languages
English (en)
Other versions
CN103473506A (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
Qizhi Software Beijing 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, Qizhi Software Beijing Co Ltd filed Critical Beijing Qihoo Technology Co Ltd
Priority to CN201310388742.1A priority Critical patent/CN103473506B/zh
Publication of CN103473506A publication Critical patent/CN103473506A/zh
Application granted granted Critical
Publication of CN103473506B publication Critical patent/CN103473506B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Debugging And Monitoring (AREA)
  • Stored Programmes (AREA)

Abstract

本发明公开了一种用于识别恶意APK文件的方法和装置。该识别恶意APK文件的方法包括以下步骤:选取预定数量APK文件样本;解析APK文件样本中的可执行文件并提取出解析文本中的特征字符串;利用特征字符串构建恶意程序特征码列表和非恶意程序特征码列表;将APK文件样本对应的特征字符串与恶意程序特征码列表和非恶意程序特征码列表进行比对,得到该APK文件样本的字符串特征向量,并根据字符串特征向量和该APK文件样本向系统申请的权限生成该APK文件的识别特征向量;对多个APK文件样本的识别特征向量进行训练,生成用于识别恶意APK文件的分类模型;利用该分类模型对未知类型的APK文件进行识别。利用本发明的技术方案,识别准确度高,并可对未知病毒进行预测。

Description

用于识别恶意APK文件的方法和装置
技术领域
本发明涉及互联网计算机安全防护领域,具体而言,涉及一种用于识别恶意APK文件的方法和装置。
背景技术
APK是Android application package file的缩写,即安卓安装包,可以理解为安卓终端上安装的应用软件。随着安卓终端的普及和发展,各种各样的APK应运而生,例如,一些APK通过诸如短信定制付费服务、拨打付费电话、备份用户手机中的敏感数据至特定服务器等恶意行为来损害用户的权益。这类恶意APK在用户不知晓也未授权的情况下潜入到用户的终端中,对用户的信息安全和财产安全带来隐患。
现有技术中的识别恶意APK的方法主要依靠人工抽取特征码并制定相应的识别规则或者根据病毒APK制作者的APK数字签名进行识别。前者的识别方式需要分析师针对已有APK程序样本进行人工分析,找出相应的特征,这严重依赖于病毒分析师的能力,因此需要大量经验丰富的人员才能满足解决问题的需求,并且由于技术复杂,识别的效率比较低。而且利用人工总结特征码一般只能处理已知的恶意APK,不能对可能发生的问题进行防范,因此具有一定的滞后性;后者的识别方法基于简单的特征或规则或者数字签名进行识别,很容易被病毒制作者绕开,造成漏过恶意程序的问题。
发明内容
鉴于上述问题,提出了本发明以便提供一种克服上述问题或者至少部分地解决上述问题的识别恶意APK文件的装置和相应的识别恶意APK文件的方法。
依据本发明的一个方面,提供了识别恶意APK文件的方法。该识别恶意APK文件的方法包括以下步骤:选取预定数量APK文件样本;解析APK文件样本中的可执行文件并提取出解析文本中的特征字符串;利用特征字符串构建恶意程序特征码列表和非恶意程序特征码列表;将APK文件样本对应的 特征字符串与恶意程序特征码列表和非恶意程序特征码列表分别进行比对,得到该APK文件样本的字符串特征向量,并根据字符串特征向量和该APK文件样本向系统申请的权限生成该APK文件样本的识别特征向量;对多个APK文件样本的识别特征向量进行训练,生成用于识别恶意APK文件的分类模型;利用该分类模型对未知类型的APK文件进行识别。
可选地,解析APK文件样本中的可执行文件并提取出解析文本中的特征字符串包括:解析APK文件样本中的可执行文件,提取解析文本中的字符串;对字符串进行大小写统一处理,并对同一解析文本中的字符串进行去重处理,得到该样本的特征字符串。
可选地,利用特征字符串构建程序特征码列表和非恶意程序特征码列表包括:计算每一特征字符串在APK文件样本中的恶意APK文件样本中出现的比率,记为第一比率;计算每一特征字符串在APK文件样本中的非恶意APK文件样本中出现的比率,记为第二比率;按照第一比率和第二比率选取恶意程序特征码和非恶意程序特征码,并由恶意程序特征码构建恶意程序特征码列表,以及由非恶意程序特征码构建非恶意程序特征码列表。
可选地,按照第一比率和第二比率选取恶意程序特征码和非恶意程序特征码包括:计算同一特征字符串的第一比率和第二比率的差值,并按照所述差值对特征字符串进行排序;按照所述排序的结果选取恶意程序特征码和非恶意程序特征码。
可选地,对多个APK文件样本的识别特征向量进行训练包括:使用支持向量机算法或者逻辑回归法对APK文件样本的识别特征向量进行训练。
可选地,在生成用于识别恶意APK文件的分类模型之后还包括:选取验证APK样本;使用分类模型对验证APK样本进行恶意程序识别;根据识别结果对分类模型进行优化。
可选地,根据识别结果对分类模型进行优化包括:将识别结果与验证APK样本的类型进行比较,以判断是否出现漏报;在出现漏报的情况下,解析出现漏报的验证APK样本中的可执行文件,并根据解析出的漏报的验证APK样本的特征字符串对恶意程序特征码和非恶意程序特征码进行修改,并利用修改后的恶意程序特征码和非恶意程序特征码重新生成分类模型。
可选地,根据识别结果对所述分类模型进行优化包括:将识别结果与验证APK样本的类型进行比较,以判断是否出现误报;在出现误报的情况下,解析出现误报的验证APK样本中的可执行文件,并根据解析出的误报的验证 APK样本的特征字符串对恶意程序特征码进行修改,并利用修改后的恶意程序特征码重新生成分类模型。
可选地,解析所述APK文件样本中的可执行文件并提取出解析文本中的特征字符串包括:对APK文件样本中的dex文件进行解析,得到的字符串包括以下任一项或多项:头部信息特征码、常量特征码、操作数特征码、指令特征码、指令特征码序列、类名函数名特征码。
可选地,在根据字符串特征向量和该APK文件样本向系统申请的权限生成该APK文件样本的识别特征向量之前还包括:对APK文件样本中的AndroidManifest.xml进行解析,以得到该APK文件样本申请的功能权限;将功能权限与安卓系统的功能权限列表进行比对,得到APK文件样本的权限特征向量。
根据本发明的另一方面,提供了一种用于识别恶意APK文件的装置。该用于识别恶意APK文件的装置包括:样本选取模块,用于选取预定数量APK文件样本;解析模块,用于解析APK文件样本中的可执行文件并提取出解析文本中的特征字符串;特征码生成模块,用于利用特征字符串构建恶意程序特征码列表和非恶意程序特征码列表;特征向量生成模块,用于将APK文件样本对应的特征字符串与恶意程序特征码列表和非恶意程序特征码列表分别进行比对,得到该APK文件样本的字符串特征向量,并根据字符串特征向量和该APK文件样本向系统申请的权限生成该APK文件样本的识别特征向量;模型训练模块,用于对多个APK文件样本的识别特征向量进行训练,生成用于识别恶意APK文件的分类模型;识别模块,用于利用该分类模型对未知类型的APK文件进行识别。
可选地,特征码生成模块还用于:计算每一特征字符串在APK文件样本中的恶意APK文件样本中出现的比率,记为第一比率;计算每一特征字符串在APK文件样本中的非恶意APK文件样本中出现的比率,记为第二比率;按照第一比率和第二比率选取恶意程序特征码和非恶意程序特征码,并由恶意程序特征码构建恶意程序特征码列表,以及由非恶意程序特征码构建非恶意程序特征码列表。
可选地,本发明提供的装置还包括:验证样本选取模块,用于选取验证APK样本;验证模块,用于使用分类模型对验证APK样本进行恶意程序识别;优化模块,用于根据识别结果对分类模型进行优化。
根据本发明的用于识别恶意APK文件的方法可以通过对一定数量的APK 文件样本自动训练出分类模型,以对未知类型的APK文件进行识别,由于该分类模型中使用的识别特征向量综合了恶意APK文件非恶意APK文件中的字符串特征以及权限特征,识别恶意文件的准确度高,避免出现误杀和漏杀的情况,为用户提供有效的针对恶意软件和其他互联网威胁的高效保护,保障了移动互联网的安全性。
上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的具体实施方式。
附图说明
通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本发明的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:
图1是根据本发明实施例的用于识别恶意APK文件的装置的示意图;
图2是根据本发明另一实施例的用于识别恶意APK文件的装置的示意图;
图3是根据本发明实施例的用于识别恶意APK文件的方法的示意图;以及
图4是根据本发明实施例的用于识别恶意APK文件的方法的执行流程的流程图。
具体实施方式
在此提供的算法和显示不与任何特定计算机、虚拟系统或者其它设备固有相关。各种通用系统也可以与基于在此的示教一起使用。根据上面的描述,构造这类系统所要求的结构是显而易见的。此外,本发明也不针对任何特定编程语言。应当明白,可以利用各种编程语言实现在此描述的本发明的内容,并且上面对特定语言所做的描述是为了披露本发明的最佳实施方式。
本实施例介绍的用于识别恶意APK文件的方法和装置针对的目标是在用户不知情的情况下恶意损害用户的权益的APK文件。其中,APK是安卓安装包(Android applicationpackage file)的缩写,可理解为安卓系统上安装的应用软件。APK是类似Symbian Sis或Sisx的文件格式。通过将APK文件直接 传到安卓模拟器或安卓终端中执行即可安装。APK文件和sis一样,把安卓专属的软件开发工具包(software development kit,SDK)编译的工程打包成一个安装程序文件,格式为APK。APK文件经过解压后,可以得到APK文件的文件结构,表1是APK文件的文件结构列表。
表1
在APK文件中dex文件是安卓Dalvik执行程序,其并非标准的Java字节码而是Dalvik字节码,主要是指classes.dex文件。Dalvik是用于安卓平台的Java虚拟机。Dalvik虚拟机(Dalvik VM)是安卓移动设备平台的核心组成部分之一。其可以支持已转换为dex格式的Java应用程序的运行,dex格式是专为Dalvik设计的一种压缩格式,适合内存和处理器速度有限的系统。Dalvik经过优化,允许在有限的内存中同时运行多个虚拟机的实例,并且每一个Dalvik应用作为一个独立的Linux进程执行。独立的进程可以防止在虚拟机崩溃的时候所有程序都被关闭。
AndroidManifest.xml是每个APK文件所必需的全局描述文件,里面列出了安卓安装包中应用的每个模块的入口信息。在安卓系统中,只有在AndroidManifest.xml中列出了的模块,才能够被系统调用。安卓平台下的木马,往往会伪装成正常的应用或游戏,在运行时,寄生在其中的木马模块在合适的时机就被激活,从而感染用户的手机。由于安卓系统要求所有的模块都要在AndroidManifest.xml中列出,其为寻找寄生的木马提供了线索。
AndroidManifest.xml中列出的各模块的入口信息包括安卓组件中的特征。安卓开发的四大组件分别是:活动(Activity),用于表现功能;服务(Service),后台运行服务,不提供界面呈现;广播接收器(Broadcast Receiver),用于接收广播;内容提供商(ContentProvider),支持在多个应用中存储和读取数据,相当于数据库。
在安卓系统的架构设计中,安卓应用通常是用Java语言开发的,它用安卓开发工具编译之后变成了二进制的字节码(byte code),这些字节码被打包成classes.dex文件,由安卓平台的Dalvik虚拟机来解释执行。为了能够调用安卓系统功能,安卓系统提供了一套运行环境(Android Framework),安卓应用调用系统各功能都是通过调用AndroidFramework的库来实现的。
通过以上对APK文件结构的分析,可以看出安卓上的恶意软件在安卓系统中运行起来,需要遵循上述架构规范。因此,在识别恶意软件的过程中,可以分别从dex文件或AndroidManifest.xml文件提取相应的特征。
本实施例中识别恶意APK文件装置利用dex文件中的特征码和AndroidManifest.xml文件提供的权限特征生成识别特征向量,经过训练的分类模型,从而大大提高了识别的准确性。图1是根据本发明实施例的用于识别恶意APK文件的装置的示意图,如图所示,该用于识别恶意APK文件的装置包括:样本选取模块101,用于选取预定数量APK文件样本;解析模块103,用于解析APK文件样本中的可执行文件并提取出解析文本中的特征字符串;特征码生成模块105,用于利用特征字符串构建恶意程序特征码列表和非恶意程序特征码列表;特征向量生成模块107,用于将APK文件样本对应的特征字符串与恶意程序特征码列表和非恶意程序特征码列表分别进行比对,得到该APK文件样本的字符串特征向量,并根据字符串特征向量和该APK文件样本向系统申请的权限生成该APK文件样本的识别特征向量;模型训练模块109,用于对多个APK文件样本的识别特征向量进行训练,生成用于识别恶意APK文件的分类模型;识别模块111,用于利用该分类模型对未知类型的APK文件进行识别。
样本选取模块101选取的APK文件样本中包括一定数量的恶意APK文件样本和一定数量的非恶意APK文件样本,将样本中的恶意APK文件样本和非恶意APK文件样本分别作为黑白名单,经过解析模块103和特征码生成模块105的处理,可得到在恶意程序特征码列表和非恶意程序特征 码列表,其中恶意程序特征码列表中出现的特征码代表恶意文件的几率大,非恶意程序特征码列表中出现的特征码代表着恶意文件的几率小。特征向量生成模块107根据样本文件的类型,将文件自身的特征信息转换为识别特征向量,经过模型训练模块109训练后得到分类模型。
为保证样本的全面性,样本选取模块101选取的样本数量需要满足一定的要求,例如恶意APK文件样本和非恶意APK文件样本分别不低于2000个。
解析模块103所解析的可执行文件一般指dex文件,解析模块103的具体工作流程具体可以包括:解析APK文件样本中的可执行文件,提取解析文本中的字符串;对字符串进行大小写统一处理,并对同一解析文本中的字符串进行去重处理,得到该样本的特征字符串。得到的字符串包括以下类型:头部信息特征码、常量特征码、操作数特征码、指令特征码、指令特征码序列、类名函数名特征码。
特征码生成模块105根据特征字符串在恶意APK文件样本和非恶意APK文件样本出现的概率,进行排序得到恶意程序特征码列表和非恶意程序特征码列表。具体地,特征码生成模块105可以配置为:计算每一特征字符串在恶意APK文件样本出现的比率,记为第一比率;计算每一特征字符串在非恶意APK文件样本出现的比率,记为第二比率;按照第一比率和第二比率选取恶意程序特征码和非恶意程序特征码,并由恶意程序特征码构建恶意程序特征码列表,以及由非恶意程序特征码构建非恶意程序特征码列表。其中,按照第一比率和第二比率选取恶意程序特征码和非恶意程序特征码的一种优选方式为:计算同一特征字符串的第一比率和第二比率的差值,并按照所述差值对特征字符串进行排序;按照所述排序的结果选取恶意程序特征码和非恶意程序特征码。
通过统计出第一比率和第二比率,可以得出一个特征码在不同黑白样本中的概率,从而为构建特征码列表提供了数据基础。各APK文件的识别特征向量是通过与恶意程序特征码列表和非恶意程序特征码列表对比得到的,生成一个APK文件的识别特征向量的流程可以为:将恶意程序特征码列表和非恶意程序特征码列表中的特征码与这个APK文件中的特征字符串比较,按照列表中的序号,将存在的特征码的位置的特征值置为1,将不存在的特征码的位置的特征值置0。另外利用此APK文件样本向系统申请的权限也可以生成权限向量,作为识别特征向量的一部分,该权限向量生 成的流程具体也可以为根据安卓系统可向APK文件提供的权限生成列表,将样本文件所申请的权限按照权限列表的序号,赋值特征值。在样本文件申请所申请权限对应序号的特征值赋值为1,其余特征值默认为0。
经过以上与恶意程序特征码列表、非恶意程序特征码列表、申请权限列表的对比,生成样本文件特征字符串。然后可以对一定数量的识别特征向量进行训练。训练具体使用的方法可以为支持向量机算法或者逻辑回归法。
支持向量机(Support Vector Machine,简称SVM)是建立在统计学习理论的VC维理论和结构风险最小原理基础上的,根据有限的样本信息在模型的复杂性(即对特定训练样本的学习精度)和学习能力(即无错误地识别任意样本的能力)之间寻求最佳折衷,以期获得最好的推广能力。支持向量机方法的几个主要优点包括:1、它是专门针对有限样本情况的,其目标是得到现有信息下的最优解而不仅仅是样本数趋于无穷大时的最优值;2、SVM算法最终将转化成为一个二次型寻优问题,从理论上说,得到的将是全局最优点,解决了在神经网络方法中无法避免的局部极值问题;3、SVM算法将实际问题通过非线性变换转换到高维的特征空间,在高维空间中构造线性判别函数来实现原空间中的非线性判别函数,特殊性质能保证机器有较好的推广能力,同时它巧妙地解决了维数问题,其算法复杂度与样本维数无关。基于以上优点,在本实施例中使用SVM方法对特征向量进行训练得到的分类模型更加精确,而且训练过程中的计算复杂性低。
逻辑回归算法用于对二进制结果建模,通过采用不同的学习方法,可以在统计研究中以各种方式实现逻辑回归。逻辑回归算法的优势是,该算法可采用任何类型的输入,比较灵活,并且支持不同的分析任务。
除以上SVM方法和逻辑回归方法之外,还可以利用神经网络等算法,将特征向量训练为分类模型。
以上分类模型训练完成后,可以通过对验证样本的计算来验证其正确性,并进一步对分类模型进行优化。图2是根据本发明另一实施例的用于识别恶意APK文件的装置的示意图,在该实施例的用于识别恶意APK文件的装置中,增加了验证样本选取模块113、验证模块115、优化模块117,其中验证样本选取模块113,用于选取验证APK样本,验证APK样本中APK文件的类型也是已知的;验证模块115,用于使用分类模型对验 证APK样本进行恶意程序识别;优化模块117,用于根据识别结果对分类模型进行优化。
具体地,优化模块117可根据已知的验证APK样本中APK文件的类型验证分类模型的识别结果是否正确,并根据漏报或误报的情况对分类模型进行优化。
在出现漏报的情况下,优化模块117可配置为:将识别结果与验证APK样本类型进行比较,以判断是否出现漏报;在出现漏报的情况下,解析出现漏报的验证APK样本中的可执行文件,并根据解析出的漏报的验证APK样本的特征字符串对恶意程序特征码和非恶意程序特征码进行修改,并利用修改后的恶意程序特征码和非恶意程序特征码重新生成分类模型。
在出现误报的情况下,优化模块117可配置为:将识别结果与验证APK样本的类型进行比较,以判断是否出现误报;在出现误报的情况下,解析出现误报的验证APK样本中的可执行文件,并根据解析出的误报的验证APK样本的特征字符串对恶意程序特征码进行修改,并利用修改后的恶意程序特征码重新生成分类模型。
经过验证APK样本的验证以及根据验证结果的优化,使用本实施例提供的用于识别恶意APK文件的装置,能够大大降低出现误杀和漏杀的情况。另外,本实施例提供的用于识别恶意APK文件的装置可以灵活配置在终端或云服务器端,以完成本地查杀和云查杀功能。
以下对本发明实施例的用于识别恶意APK文件的方法进行介绍,该用于识别恶意APK文件的方法可以由以上实施例中介绍的用于识别恶意APK文件的装置执行,在终端或云服务器端完成识别恶意APK文件的功能。
图3是根据本发明实施例的用于识别恶意APK文件的方法的示意图,如图所示,该方法包括以下步骤:
步骤S301,选取预定数量APK文件样本,APK文件样本中包括多个恶意APK文件样本和多个非恶意APK文件样本;
步骤S303,解析APK文件样本中的可执行文件并提取出解析文本中的特征字符串;
步骤S305,利用特征字符串构建恶意程序特征码列表和非恶意程序特征码列表;
步骤S307,将APK文件样本对应的特征字符串与恶意程序特征码列 表和非恶意程序特征码列表分别进行比对,得到该APK文件样本的字符串特征向量,并根据字符串特征向量和该APK文件样本向系统申请的权限生成该APK文件样本的识别特征向量;
步骤S309,对多个APK文件样本的识别特征向量进行训练,生成用于识别恶意APK文件的分类模型;
步骤S311,利用该分类模型对未知类型的APK文件进行识别。
其中,步骤S301中选取的APK文件样本的数量需要达到一定的要求,例如恶意APK文件样本和非恶意APK文件样本分别不低于预定数量,如2000个。
步骤S303中解析的可执行文件包括APK文件样本中的dex文件,得出的字符串包括以下任一项或多项:头部信息特征码、常量特征码、操作数特征码、指令特征码、指令特征码序列、类名函数名特征码。该步骤S303的具体流程可以包括:解析APK文件样本中的可执行文件,提取解析文本中的字符串;对字符串进行大小写统一处理,并对同一解析文本中的字符串进行去重处理,得到该样本的特征字符串。再对解析出的字符串进行计算前,需要预处理。预处理过程包括:将字符串中的a至z、A至Z、16进制的0至f字符的大小写进行处理,例如统一改为小写、或者大写,防止因为大小写问题导致的处理错误,然后进行去重处理。
步骤S305中构建的恶意程序特征码列表和非恶意程序特征码列表是通过对特征字符串在不同类型样本中出现的概率统计得出的,该步骤S305的具体流程可以包括:计算每一特征字符串在APK文件样本中的恶意APK文件样本中出现的比率,记为第一比率;计算每一特征字符串在APK文件样本中的非恶意APK文件样本中出现的比率,记为第二比率;按照第一比率和第二比率选取恶意程序特征码和非恶意程序特征码,并由恶意程序特征码构建恶意程序特征码列表,以及由非恶意程序特征码构建非恶意程序特征码列表。
以上选取恶意程序特征码和非恶意程序特征码的过程,可以直接按照第一比率和第二比率的数值大小得出,例如按照第一比率和第二比率分别对特征字符串进行排序,将排序靠前的若干特征字符串分别作为恶意程序特征码和非恶意程序特征码。这样的处理方式有可能出现一些常用的字符串的第一比率和第二比率均很大,或者漏过一些不常用的字符串,因此,本实施例中的方法优选采用第一比率和第二比率的差值的方法来选取恶意 程序特征码和非恶意程序特征码。具体地,首先算同一特征字符串的第一比率和第二比率的差值,并按照所述差值对特征字符串进行排序;按照所述排序的结果选取恶意程序特征码和非恶意程序特征码。从而如果一个特征字符串在恶意APK文件样本中出现的概率远大于在非恶意APK文件样本中出现的概率,该特征字符串将作为恶意程序特征码,反之,如果一个特征字符串在非恶意APK文件样本中出现的概率远大于在恶意APK文件样本中出现的概率,该特征字符串将作为非恶意程序特征码。以上排序序号在前的一部分特征字符串可作为恶意程序特征码,以上排序序号在后的一部分特征字符串可作为非恶意程序特征码。按照以上正向和反向排序的序号与对应的特征码进行匹配,从而可以生成两个列表,得到的结果就是恶意程序特征码构建恶意程序特征码列表和非恶意程序特征码构建非恶意程序特征码列表。
步骤S307中可以将以上APK文件样本对应的特征字符串与恶意程序特征码列表和非恶意程序特征码列表分别进行比对,得到该APK文件样本的字符串特征向量。特征向量中维数代表以上列表的序号,特征向量中特征值代表该序号对应的特征字符串是否在该APK文件样本存在,若不存在,特征值赋值为0;若存在,特征值赋值为1。
另外,步骤S307中利用该APK文件样本向系统申请的权限的手段具体可以包括:对APK文件中的AndroidManifest.xml进行解析,以得到该APK文件申请的功能权限;将功能权限与安卓系统可提供的功能权限列表进行比对,得到APK文件的权限特征向量。例如根据安卓系统向APK文件提供的权限生成权限列表,将样本文件所申请的权限按照权限列表的序号,赋值特征值。在样本文件申请所申请权限对应序号的特征值赋值为1,其余特征值默认为0。将权限特征向量附加在字符串特征向量之后,就可以得到识别特征向量。
步骤S309训练的方法可以使用支持向量机算法或者逻辑回归法
以上分类模型训练完成后,还可以通过对验证样本的计算来验证其正确性,并进一步对分类模型进行优化。
具体地验证优化方法为:在步骤S309之后还设置:选取验证APK样本,验证APK样本是否存在恶意威胁是已知的;使用分类模型对验证APK样本进行恶意程序识别;根据识别结果对分类模型进行优化。
识别结果不正确的情况分为:误报和漏报,其中误报是指将无威胁的 文件识别为恶意文件,漏报是指未识别出恶意文件。
针对漏报,根据识别结果对分类模型进行优化可以包括:将识别结果与验证APK样本的类型进行比较,以判断是否出现漏报;在出现漏报的情况下,解析出现漏报的验证APK样本中的可执行文件,并根据解析出的漏报的验证APK样本的特征字符串对恶意程序特征码和非恶意程序特征码进行修改,并利用修改后的恶意程序特征码和非恶意程序特征码重新生成分类模型。
针对误报,根据识别结果对所述分类模型进行优化包括:将识别结果与验证APK样本的类型进行比较,以判断是否出现误报;在出现误报的情况下,解析出现误报的验证APK样本中的可执行文件,并根据解析出的误报的验证APK样本的特征字符串对恶意程序特征码进行修改,并利用修改后的恶意程序特征码重新生成分类模型。
以上优化和验证的步骤可以迭代重复进行,直至生成的分类模型对验证样本的识别正确率达到预期效果为止。
以下结合一个具体的方法执行流程对本实施例中的用于识别恶意APK文件的方法进一步说明。图4是根据本发明实施例的用于识别恶意APK文件的方法的执行流程的流程图。
首先执行步骤S401,随机抽取已知分类的APK文件样本每类各10000个,可将正常无威胁的样本文件称为白样本,将恶意文件称为黑样本。
执行步骤S402,解析dex格式文件,得到例如头部信息特征码、常量特征码、操作数特征码、指令特征码、指令特征码序列、类名函数名特征码的字符串,并进行预处理。包括提取其中字符串,并使用非[a-z][A-Z][0-f]字符对字符串进行分类并统一大小写处理,然后对每个文件中的字符串列表进行去重处理。
执行步骤S403,解析APK包中AndroidManifest.xml得到样本所申请的系统权限;
执行步骤S404,分别统计黑白两类样本中分割后的每个字符串出现次数和出现比率,也就是出现次数与该类样本总数之比。使用黑白两类样本出现比率进行对比,假设特征字符串“abc”在黑样本中出现比率为70%,在白样本中出现次数为10%,那么字符串“abc”对比后的权重为60%,说明字符串“abc"是一个很好特征用来区分以上两类样本。
执行步骤S405,舍弃特殊字符,特殊字符两类,一种为在黑白两类样 本中出现频率比较大的字符,另一种是系统默认字符。其中在对比过程中如果某个特征字符串在黑白两类样本中出现频率均大于20%则说明该特征不能很好的用来区分两类样本,所以需要舍弃。如果特征字符串为安卓应用常用数据类型或者系统关键字如安卓变量类型定义字符串Vz和vl等则忽略该类字符。
执行步骤S406,将字符串特征出现频率分为黑多白少和白多黑少两类,分别按频率降序排列。分布别选取预定数量的排序靠前的特征字符串,例如抽取黑多白少列表中的前500名和白多黑少中的前50名分别作为恶意程序特征码和非恶意程序特征码。选取的数量可以根据验证阶段的识别准确率灵活减少或添加。
执行步骤S407,按照排序序号对应生成恶意程序特征码列表和非恶意程序特征码列表。
执行步骤S408,将黑白两类文件抽取字符串信息后和步骤S407中得到的列表进行比较。如果有特征码中指定位置字符串在样本中出现则记为1否则为0,如样本中出现特征字符串“abc”,“abc”在特征列表的序号为200则记为200:1,如果样本中没出现字符串“abc”则记为200:0。所以最后生成的字符串特征向量的格式类似于:[11:02:13:0…500:1],其中向量中的第一特征值代表分类号,例如可以将黑样本种类分为1,白样本种类分为0。其后的元素中,冒号前的数值为列表序列号,后面为特征值。
执行步骤S409,对步骤S403中得到的权限特征进行类似处理,将功能权限与安卓系统所提供的功能权限列表进行比对,得到APK文件的权限特征向量。例如将安卓系统可向APK文件提供的的权限作为列表,将样本文件所申请的权限按照权限列表的序号,赋值特征值。在样本文件申请所申请权限对应序号的特征值赋值为1,其余特征值默认为0。
执行步骤S410,将权限特征向量附在字符串特征向量之后,得到该APK文件的识别特征向量。
执行步骤S411,对步骤S410中得到的使用SVM算法对识别特征向量进行训练,得出分类模型。
执行步骤S412,重新抽取一批已知分类样本,使用以上初步分类模型进行预测。
执行步骤S413,判断分类准确率是否达到要求,如果达到要求,优化结束,执行步骤S417,将满足要求的步骤S411中得到模型作为正式的分类模型,如果未达到要求执行步骤S414,
步骤S414,判断是否漏报,如果有漏报样本则观察漏报样本中的特征码字符串,在S406生成的恶意程序特征码和非恶意程序特征码中查找新的合适特征字符串。
步骤S415,判断是否出现误报,如果有误报样本,则执行步骤S416。
步骤S416,在被误报样本中的字符串中选取恶意程序特征码,然后返回执行步骤S406,进行优化,直至最终分类模型的分类争取率达到步骤S413中的要求。
步骤S417,将满足步骤S413中的要求的分类模型作为正式分类模型,用于对未知的APK文件进行识别。
以下是利用以上实施例的流程进行APK文件识别的一个实例。在样本库中随机抽取黑白样本各3000个,解析APK文件,获取其中AndroidManifest.xml文件和classes.dex。抽取classes.dex中的字符串特征,寻找合适字符串作为特征码来区分两类样本。根据以上字符串特征码生成特征码列表。并利用以上特征码列表生成各个样本的特征向量。使用生成的特征向量使用SVM算法进行训练生成分类预测模型。再从样本库中随机抽取黑白样本各3000个记为验证样本。使用分类预测模型对验证样本进行预测。如果有漏报样本则分析漏报样本,将漏报样本中具有一类特征的字符串加入特征码列表中重新生成模型训练预测,直至有个满意的分类模型。如果有误报样本则分析误报样本,将造成误报的特征码再特征码列表中去重,重新生成模型进行训练和预测。
发明人使用以上实施例的装置和方法,抽取了一天已知分类的APK样本(黑样本20000,白样本5000),寻找出特征向量并且生成分类模型,对另一天已知分类的APK样本进行预测,其中黑样本识别准去率达到89%,白样本识别率达到97.6%,充分证明了不但以上实施例的装置和方法可以识别已知样本,对未知样本的识别率远远超出传统引擎,因此适用于客户端和服务端大量文件的识别,而且对未知病毒的预测效果较好。
本实施例提供的装置和方法识别恶意文件的准确度高,避免出现误杀和漏杀的情况,为用户提供有效的针对恶意软件和其他互联网威胁的高效保护,保障了移动互联网的安全性。
在此处所提供的说明书中,说明了大量具体细节。然而,能够理解,本发明的实施例可以在没有这些具体细节的情况下实践。在一些实例中, 并未详细示出公知的方法、结构和技术,以便不模糊对本说明书的理解。
类似地,应当理解,为了精简本公开并帮助理解各个发明方面中的一个或多个,在上面对本发明的示例性实施例的描述中,本发明的各个特征有时被一起分组到单个实施例、图、或者对其的描述中。然而,并不应将该公开的方法解释成反映如下意图:即所要求保护的本发明要求比在每个权利要求中所明确记载的特征更多的特征。更确切地说,如下面的权利要求书所反映的那样,发明方面在于少于前面公开的单个实施例的所有特征。因此,遵循具体实施方式的权利要求书由此明确地并入该具体实施方式,其中每个权利要求本身都作为本发明的单独实施例。
本领域那些技术人员可以理解,可以对实施例中的设备中的模块进行自适应性地改变并且把它们设置在与该实施例不同的一个或多个设备中。可以把实施例中的模块或单元或组件组合成一个模块或单元或组件,以及此外可以把它们分成多个子模块或子单元或子组件。除了这样的特征和/或过程或者单元中的至少一些是相互排斥之外,可以采用任何组合对本说明书(包括伴随的权利要求、摘要和附图)中公开的所有特征以及如此公开的任何方法或者设备的所有过程或单元进行组合。除非另外明确陈述,本说明书(包括伴随的权利要求、摘要和附图)中公开的每个特征可以由提供相同、等同或相似目的的替代特征来代替。
此外,本领域的技术人员能够理解,尽管在此所述的一些实施例包括其它实施例中所包括的某些特征而不是其它特征,但是不同实施例的特征的组合意味着处于本发明的范围之内并且形成不同的实施例。例如,在下面的权利要求书中,所要求保护的实施例的任意之一都可以以任意的组合方式来使用。
本发明的各个部件实施例可以以硬件实现,或者以在一个或者多个处理器上运行的软件模块实现,或者以它们的组合实现。本领域的技术人员应当理解,可以在实践中使用微处理器或者数字信号处理器(DSP)来实现根据本发明实施例的用于识别恶意APK文件的装置中的一些或者全部部件的一些或者全部功能。本发明还可以实现为用于执行这里所描述的方法的一部分或者全部的设备或者装置程序(例如,计算机程序和计算机程序产品)。这样的实现本发明的程序可以存储在计算机可读介质上,或者可以具有一个或者多个信号的形式。这样的信号可以从因特网网站上下载得到,或者在载体信号上提供,或者以任何其他形式提供。
应该注意的是上述实施例对本发明进行说明而不是对本发明进行限制,并且本领域技术人员在不脱离所附权利要求的范围的情况下可设计出替换实施例。在权利要求中,不应将位于括号之间的任何参考符号构造成对权利要求的限制。单词“包含”不排除存在未列在权利要求中的元件或步骤。位于元件之前的单词“一”或“一个”不排除存在多个这样的元件。本发明可以借助于包括有若干不同元件的硬件以及借助于适当编程的计算机来实现。在列举了若干装置的单元权利要求中,这些装置中的若干个可以是通过同一个硬件项来具体体现。单词第一、第二、以及第三等的使用不表示任何顺序。可将这些单词解释为名称。

Claims (10)

1.一种用于识别恶意APK文件的方法,包括以下步骤:
选取预定数量APK文件样本;
解析所述APK文件样本中的可执行文件并提取出解析文本中的特征字符串;
利用所述特征字符串构建恶意程序特征码列表和非恶意程序特征码列表;
将所述APK文件样本对应的特征字符串与所述恶意程序特征码列表和非恶意程序特征码列表分别进行比对,得到该APK文件样本的字符串特征向量,并根据所述字符串特征向量和该APK文件样本向系统申请的权限生成该APK文件样本的识别特征向量;
对多个所述APK文件样本的识别特征向量进行训练,生成用于识别恶意APK文件的分类模型;
利用该分类模型对未知类型的APK文件进行识别。
2.根据权利要求1所述的方法,其中,解析所述APK文件样本中的可执行文件并提取出解析文本中的特征字符串包括:
解析所述APK文件样本中的可执行文件,提取解析文本中的字符串;
对所述字符串进行大小写统一处理,并对同一解析文本中的字符串进行去重处理,得到该样本的所述特征字符串。
3.根据权利要求1所述的方法,其中,利用所述特征字符串构建恶意程序特征码列表和非恶意程序特征码列表包括:
计算每一所述特征字符串在所述APK文件样本中的恶意APK文件样本中出现的比率,记为第一比率;
计算每一所述特征字符串在所述APK文件样本中的非恶意APK文件样本中出现的比率,记为第二比率;
按照所述第一比率和所述第二比率选取恶意程序特征码和非恶意程序特征码,并由所述恶意程序特征码构建所述恶意程序特征码列表,以及由所述非恶意程序特征码构建所述非恶意程序特征码列表。
4.根据权利要求3所述的方法,其中,按照所述第一比率和所述第二比率选取恶意程序特征码和非恶意程序特征码包括:
计算同一特征字符串的第一比率和第二比率的差值,并按照所述差值对特征字符串进行排序;
按照所述排序的结果选取所述恶意程序特征码和所述非恶意程序特征码。
5.根据权利要求1所述的方法,其中,对多个所述APK文件样本的识别特征向量进行训练包括:使用支持向量机算法或者逻辑回归法对所述APK文件样本的识别特征向量进行训练。
6.根据权利要求1至5中任一项所述的方法,其中,在生成用于识别恶意APK文件的分类模型之后还包括:
选取验证APK样本,
使用所述分类模型对所述验证APK样本进行恶意程序识别;
根据识别结果对所述分类模型进行优化。
7.根据权利要求6所述的方法,其中,根据识别结果对所述分类模型进行优化包括:
将所述识别结果与所述验证APK样本的类型进行比较,以判断是否出现漏报;
在出现漏报的情况下,解析出现漏报的验证APK样本中的可执行文件,并根据解析出的所述漏报的验证APK样本的特征字符串对所述恶意程序特征码和所述非恶意程序特征码进行修改,并利用修改后的恶意程序特征码和非恶意程序特征码重新生成分类模型。
8.根据权利要求6所述的方法,其中,根据识别结果对所述分类模型进行优化包括:
将所述识别结果与所述验证APK样本的类型进行比较,以判断是否出现误报;
在出现误报的情况下,解析出现误报的验证APK样本中的可执行文件,并根据解析出的所述误报的验证APK样本的特征字符串对所述恶意程序特征码进行修改,并利用修改后的恶意程序特征码重新生成分类模型。
9.根据权利要求1至5中任一项所述的方法,其中,解析所述APK文件样本中的可执行文件并提取出解析文本中的特征字符串包括:对所述APK文件样本中的dex文件进行解析,得到的字符串包括以下任一项或多项:头部信息特征码、常量特征码、操作数特征码、指令特征码、指令特征码序列、类名函数名特征码。
10.根据权利要求9所述的方法,其中,在根据所述字符串特征向量和该APK文件样本向系统申请的权限生成该APK文件样本的识别特征向量之前还包括:
对所述APK文件样本中的AndroidManifest.xml进行解析,以得到该APK文件申请的功能权限;
将所述功能权限与安卓系统的功能权限列表进行比对,得到所述APK文件样本的权限特征向量。
CN201310388742.1A 2013-08-30 2013-08-30 用于识别恶意apk文件的方法和装置 Active CN103473506B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201310388742.1A CN103473506B (zh) 2013-08-30 2013-08-30 用于识别恶意apk文件的方法和装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201310388742.1A CN103473506B (zh) 2013-08-30 2013-08-30 用于识别恶意apk文件的方法和装置

Publications (2)

Publication Number Publication Date
CN103473506A CN103473506A (zh) 2013-12-25
CN103473506B true CN103473506B (zh) 2016-12-28

Family

ID=49798352

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201310388742.1A Active CN103473506B (zh) 2013-08-30 2013-08-30 用于识别恶意apk文件的方法和装置

Country Status (1)

Country Link
CN (1) CN103473506B (zh)

Families Citing this family (41)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103761480A (zh) * 2014-01-13 2014-04-30 北京奇虎科技有限公司 一种检测文件安全的方法和装置
CN104915596B (zh) 2014-03-10 2018-01-26 可牛网络技术(北京)有限公司 apk病毒特征库构建方法、装置及apk病毒检测系统
CN104954342B (zh) * 2014-03-31 2019-04-02 腾讯科技(深圳)有限公司 一种安全评估方法,及装置
CN105095752B (zh) * 2014-05-07 2019-01-08 腾讯科技(深圳)有限公司 病毒数据包的识别方法、装置及系统
CN104486141B (zh) * 2014-11-26 2018-10-23 国家电网公司 一种误报自适应的网络安全态势预测方法
CN104376262B (zh) * 2014-12-08 2018-01-09 中国科学院深圳先进技术研究院 一种基于Dalvik指令和权限组合的安卓恶意软件检测方法
US9811679B2 (en) * 2014-12-30 2017-11-07 Samsung Electronics Co., Ltd. Electronic system with access management mechanism and method of operation thereof
CN104680065A (zh) * 2015-01-26 2015-06-03 安一恒通(北京)科技有限公司 病毒检测方法、装置及设备
CN104794398A (zh) * 2015-04-17 2015-07-22 天津大学 基于机器学习的安卓平台恶意软件检测方法
CN104809395A (zh) * 2015-04-23 2015-07-29 天津大学 一种轻量级安卓恶意软件快速判断方法
SG10201504543VA (en) * 2015-06-09 2017-01-27 Huawei Internat Pte Ltd System and method for determining a security classification of an unknown application
CN105095755A (zh) 2015-06-15 2015-11-25 安一恒通(北京)科技有限公司 文件识别方法和装置
CN105975857A (zh) 2015-11-17 2016-09-28 武汉安天信息技术有限责任公司 基于深度学习方法推断恶意代码规则的方法及系统
CN106709336A (zh) 2015-11-18 2017-05-24 腾讯科技(深圳)有限公司 识别恶意软件的方法和装置
CN105631049B (zh) * 2016-02-17 2019-03-05 北京奇虎科技有限公司 一种识别诈骗短信的方法和系统
CN107315955A (zh) * 2016-04-27 2017-11-03 百度在线网络技术(北京)有限公司 文件安全性识别方法和装置
CN105956469B (zh) * 2016-04-27 2019-04-26 百度在线网络技术(北京)有限公司 文件安全性识别方法和装置
CN106682507B (zh) * 2016-05-19 2019-05-14 腾讯科技(深圳)有限公司 病毒库的获取方法及装置、设备、服务器、系统
CN109564613B (zh) * 2016-07-27 2023-05-30 日本电气株式会社 签名创建设备、签名创建方法、记录签名创建程序的记录介质、以及软件确定系统
CN107798238A (zh) * 2016-09-07 2018-03-13 武汉安天信息技术有限责任公司 恶意应用的检测方法及装置
CN106685964B (zh) * 2016-12-29 2020-10-30 济南大学 基于恶意网络流量词库的恶意软件检测方法及系统
CN106685963B (zh) * 2016-12-29 2020-10-30 济南大学 一种恶意网络流量词库的建立方法及建立系统
CN108334776B (zh) * 2017-01-19 2020-09-04 中国移动通信有限公司研究院 一种变形恶意代码的检测方法及装置
CN107273746A (zh) * 2017-05-18 2017-10-20 广东工业大学 一种基于apk字符串特征的变种恶意软件检测方法
CN107018152A (zh) * 2017-05-27 2017-08-04 北京奇虎科技有限公司 消息拦截方法、装置和电子设备
CN107832609B (zh) * 2017-09-25 2020-11-13 暨南大学 基于权限特征的Android恶意软件检测方法及系统
CN108337358B (zh) * 2017-09-30 2020-01-14 Oppo广东移动通信有限公司 应用清理方法、装置、存储介质及电子设备
CN107944265B (zh) * 2017-11-30 2019-10-18 北京知道创宇信息技术股份有限公司 一种PyPI源中恶意第三方库的检测方法及计算设备
CN110619212B (zh) * 2018-06-20 2022-01-18 深信服科技股份有限公司 一种基于字符串的恶意软件识别方法、系统及相关装置
CN109002696A (zh) * 2018-06-29 2018-12-14 北京奇虎科技有限公司 建立安装包识别模型的方法、识别安装包的方法及装置
CN109101817B (zh) * 2018-08-13 2023-09-01 亚信科技(成都)有限公司 一种识别恶意文件类别的方法及计算设备
CN109783138A (zh) * 2018-12-05 2019-05-21 北京奇艺世纪科技有限公司 应用程序包构成的拆分方法、装置、终端及介质
CN109818945A (zh) * 2019-01-11 2019-05-28 中国科学院信息工程研究所 应用程序行为特征选择方法及装置
CN110377337A (zh) * 2019-07-26 2019-10-25 北京智游网安科技有限公司 一种应用中信息提取方法、智能终端及存储介质
CN110851832A (zh) * 2019-11-12 2020-02-28 广东明创软件科技有限公司 病毒防误报方法、装置、终端设备以及存储介质
CN110837642B (zh) * 2019-11-14 2023-10-13 腾讯科技(深圳)有限公司 恶意程序分类方法、装置、设备及存储介质
CN112948816A (zh) * 2019-12-10 2021-06-11 北京一起教育信息咨询有限责任公司 一种系统权限的确定方法、装置、存储介质及电子设备
US11436331B2 (en) 2020-01-16 2022-09-06 AVAST Software s.r.o. Similarity hash for android executables
CN113918942A (zh) * 2020-07-10 2022-01-11 深信服科技股份有限公司 一种安全文件的识别方法、装置、电子设备及存储介质
CN113935030B (zh) * 2020-07-14 2024-04-09 深信服科技股份有限公司 病毒特征的提取方法、系统、存储介质和终端
CN113805892B (zh) * 2021-09-17 2024-04-05 杭州云深科技有限公司 一种异常apk的识别方法、电子设备及可读存储介质

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102479298A (zh) * 2010-11-29 2012-05-30 北京奇虎科技有限公司 基于机器学习的程序识别方法及装置
CN102737186A (zh) * 2012-06-26 2012-10-17 腾讯科技(深圳)有限公司 恶意文件识别方法、装置及存储介质
CN103106365A (zh) * 2013-01-25 2013-05-15 北京工业大学 一种移动终端上的恶意应用软件的检测方法

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102479298A (zh) * 2010-11-29 2012-05-30 北京奇虎科技有限公司 基于机器学习的程序识别方法及装置
CN102737186A (zh) * 2012-06-26 2012-10-17 腾讯科技(深圳)有限公司 恶意文件识别方法、装置及存储介质
CN103106365A (zh) * 2013-01-25 2013-05-15 北京工业大学 一种移动终端上的恶意应用软件的检测方法

Also Published As

Publication number Publication date
CN103473506A (zh) 2013-12-25

Similar Documents

Publication Publication Date Title
CN103473506B (zh) 用于识别恶意apk文件的方法和装置
Hin et al. LineVD: statement-level vulnerability detection using graph neural networks
Liao et al. Soliaudit: Smart contract vulnerability assessment based on machine learning and fuzz testing
Martin et al. A survey of app store analysis for software engineering
Cen et al. A probabilistic discriminative model for android malware detection with decompiled source code
Zhan et al. Automated third-party library detection for android applications: Are we there yet?
CN103761476B (zh) 特征提取的方法及装置
KR101246623B1 (ko) 악성 애플리케이션 진단 장치 및 방법
Devroey et al. Towards statistical prioritization for software product lines testing
Jimenez et al. Vulnerability prediction models: A case study on the linux kernel
Kim et al. Precise learn-to-rank fault localization using dynamic and static features of target programs
Karim et al. Mining android apps to recommend permissions
Yuan et al. Retrieving relevant CAPEC attack patterns for secure software development
Ren et al. Making smart contract development more secure and easier
Filus et al. Software vulnerabilities in TensorFlow-based deep learning applications
Bao et al. Automated android application permission recommendation
CN109815697A (zh) 误报行为处理方法及装置
Pirch et al. Tagvet: Vetting malware tags using explainable machine learning
Zhan et al. A systematic assessment on Android third-party library detection tools
Ren et al. Scstudio: a secure and efficient integrated development environment for smart contracts
Zhang et al. Inferring test models from kate’s bug reports using multi-objective search
Feng et al. EXPLORER: query-and demand-driven exploration of interprocedural control flow properties
Awalurahman et al. Security Aspect in Software Testing Perspective: A Systematic Literature Review.
Muniz et al. A qualitative analysis of variability weaknesses in configurable systems with# ifdefs
Ngo et al. Ranking warnings of static analysis tools using representation learning

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
TR01 Transfer of patent right

Effective date of registration: 20220708

Address after: Room 801, 8th floor, No. 104, floors 1-19, building 2, yard 6, Jiuxianqiao Road, Chaoyang District, Beijing 100015

Patentee after: BEIJING QIHOO TECHNOLOGY Co.,Ltd.

Address before: 100088 room 112, block D, 28 new street, new street, Xicheng District, Beijing (Desheng Park)

Patentee before: BEIJING QIHOO TECHNOLOGY Co.,Ltd.

Patentee before: Qizhi software (Beijing) Co., Ltd

TR01 Transfer of patent right