对ANDROID重打包恶意软件的恶意代码的检测、切除和恢复的方法.pdf

上传人:t**** 文档编号:177796 上传时间:2018-01-31 格式:PDF 页数:6 大小:323.83KB
返回 下载 相关 举报
摘要
申请专利号:

CN201410261034.6

申请日:

2014.06.12

公开号:

CN104091121A

公开日:

2014.10.08

当前法律状态:

授权

有效性:

有权

法律详情:

授权|||实质审查的生效IPC(主分类):G06F 21/56申请日:20140612|||公开

IPC分类号:

G06F21/56(2013.01)I

主分类号:

G06F21/56

申请人:

上海交通大学

发明人:

谷大武; 杨文博; 李勇; 张媛媛; 李卷孺

地址:

200240 上海市闵行区东川路800号

优先权:

专利代理机构:

上海交达专利事务所 31201

代理人:

王毓理;王锡麟

PDF下载: PDF下载
内容摘要

一种对Android重打包恶意软件的恶意代码的检测、切除和恢复的方法,通过对已知恶意程序的恶意入口点类建立由模糊哈希值构成的特征库,用于与反汇编后的待检测程序的入口点类进行匹配;然后依次切除被重打包加入的完整的恶意代码片段以及恶意代码的资源文件,最后找出重打包过程中对原程序实施修改的代码片段,恢复其原有功能。本发明针对当前Android平台日益严重的恶意程序使用的重打包植入恶意代码这一最主要传播特征,检测和切除那些正常程序中植入的恶意代码部分。

权利要求书

1.  一种对Android重打包恶意软件的恶意代码的检测、切除和恢复的方法,其特征在于,通过对已知恶意程序的恶意入口点类建立由模糊哈希值构成的特征库,用于与反汇编后的待检测程序的入口点类进行匹配;然后依次切除被重打包加入的完整的恶意代码片段以及恶意代码的资源文件,最后找出重打包过程中对原程序实施修改的代码片段,恢复其原有功能。

2.
  根据权利要求1所述的方法,其特征是,所述的入口点类是指:Android应用程序的数据类型的入口点,包括:Activity、Receiver、Service、Provider以及Application;继承自这五种类型的对象即为入口点类。

3.
  根据权利要求1所述的方法,其特征是,所述的模糊哈希是指:根据程序的控制流图,对控制流图中每个程序基本块的指令操作码部分而非整条指令做哈希,所以一个入口点类的每个基本块都对应于一个模糊哈希值。

4.
  根据权利要求1所述的方法,其特征是,所述的匹配是指:根据模糊哈希的方法,对入口点类的每个程序块做操作码哈希,当该入口点类与特征库中的某个恶意入口点类相等的操作码哈希比例超过预设阈值,则认为两者匹配成功,该入口点类认为是恶意入口点类。

5.
  根据权利要求1所述的方法,其特征是,所述的切除被重打包加入的完整的恶意代码片段以及恶意代码的资源文件是指:
1)将匹配后的恶意入口点类列入恶意代码类集合,通过迭代方法检测该恶意代码类调用的其他类实现的方法并进一步归为恶意代码类,直至恶意代码类集合不再扩大完成迭代;删除程序中出现在该恶意代码类的集合中的类;
2)搜索对资源文件在代码中的引用,当对该资源文件的引用仅出现在被删除的类中时,将该资源文件判定属于被重打包注入的恶意代码整体并删除,否则保留该资源文件。

6.
  根据权利要求1所述的方法,其特征是,所述的恢复是指:1)当删除的类中有主入口点类,则通过搜索该被删除的主入口点类,将程序主入口点修改为该类调用的第一个非恶意类中的入口点实现主入口点类恢复;2)当被删除的恶意类是现有剩余类的父类,则从该剩余类开始沿继承关系向上搜索父类,将第一个非恶意类恢复成该类的父类。3)当删除恶意类后剩余的类中搜索到对被删除类的方法调用或成员引用,则从搜索到的指令开始向下寻找与该指令涉及 的数据有依赖关系的指令并删除,否则视为恶意代码并未修改原程序无需切除。

说明书

对Android重打包恶意软件的恶意代码的检测、切除和恢复的方法
技术领域
本发明涉及的是一种移动通信设备领域的方法,具体是一种对Android重打包恶意软件的恶意代码的检测、切除和恢复的方法,针对的是Android平台通过对正常程序重打包,注入恶意代码的恶意软件。 
背景技术
在Android平台上,应用程序使用java语言编写,使得应用程序的逆向和破解变得简单。有许多工具例如apktool等可以用来帮助反汇编Android应用程序的可执行代码,解码资源文件。由于Android允许自签发的证书签名应用程序并允许安装非官方市场的应用,因此一旦Android应用程序被反汇编和解码后,就可以修改或加入代码以及资源文件,重新签名打包成新的应用程序被用户安装执行。而恶意程序为了更加广泛的传播以及欺骗用户安装,通常使用批量重打包正常的应用程序,并植入拥有恶意行为的代码片段,放入各类市场诱使用户下载。目前绝大多数的Android恶意程序都通过这种方式传播。目前已经有针对Android恶意程序的检测技术,主要是通过应用程序的特征值进行检测,如代码特征,字符串特征,API调用等。另外还有通过特征值匹配和相似性检测进行对恶意程序家族的分类。由于恶意代码片段是被重打包植入的,本身是个相对独立的模块,为了保证原来程序功能的完整,重打包过程通常不会对原程序做大规模的修改,这些都使得对被植入的恶意代码的检测切除和恢复原程序成为可能。但是目前在Android领域,针对重打包植入恶意代码的恶意程序,尚没有一种能准确检测出被植入的恶意代码完整部分,并切除的方案和技术。 
经过对现有技术的检索发现,中国专利文献号CN103440459A公开(公告)日2013.12.11,公开了一种Android恶意软件检测方法,旨在解决现有Android恶意代码检测技术无法细粒度构建Android程序行为特征的问题。首先对现有Android恶意代码进行基于权限的统计分析,提取使用率较高的权限作为敏感权限,继而以使用这些权限的API作为入口点,构建调用这些API的函数链,进行基于函数调用的Android恶意代码检测。但该技术仅能够判断被检测程序中是否含有恶意代码的函数调用特征,但无法准确检测出整个程序中具有恶意行为功能的完整恶意代码模块。另外在使用敏感权限对应API的函数调用链作为特征,对于不依赖于权限和函数,只有指令特征的恶意行为,例如恶意程序自己实现的加解密功能等行为,无法构建有效的特征进行检测。 
中国专利文献号CN102819697A公开(公告)日2012.12.12,公开了一种基于线程反编 译的多平台恶意代码检测方法包括:通过特征提取获取恶意指令序列;依次检测系统中的线程信息,识别线程起始数据的指令集,并根据不同指令集对每个线程起始数据进行反编译得到线程的执行指令序列;将所述线程的执行指令序列与所述恶意指令序列进行完全匹配,当匹配成功则该所述线程为恶意线程。但该技术需要对指令序列进行完全匹配,因此如果恶意程序在不影响功能的情况下对指令进行微小变换则很容易逃避检测,Android平台上同一家族的恶意程序通常有很多变种,该方案很难检测出变种的恶意程序。另外,该技术仅能检测以线程为单位的恶意线程,无法根据功能性完整检测程序中执行恶意行为的代码片段和模块。 
综上所述,现阶段尚缺少一种能够检测Android平台的重打包恶意程序,一般如:利用Android程序易于反编译的特点,对正常和流行的程序解包后,加入后台执行,用户不可见的窃取用户隐私、执行恶意扣费、或进行欺诈和欺骗行为的恶意代码功能模块,再重新打包放入市场诱使用户下载的恶意程序。此类恶意程序的特点是通常具有两个相对独立的功能模块:具有原程序的正常功能模块,以及后台执行恶意行为的功能模块。 
发明内容
本发明针对现有技术存在的上述不足,提出一种对Android重打包恶意软件的恶意代码的检测、切除和恢复的方法,主要针对当前Android平台日益严重的恶意程序使用的重打包植入恶意代码这一最主要传播特征,检测和切除那些正常程序中植入的恶意代码部分。 
本发明是通过以下技术方案实现的,本发明通过对已知恶意程序的恶意入口点类建立由模糊哈希值构成的特征库,用于与反汇编后的待检测程序的入口点类进行匹配;然后依次切除被重打包加入的完整的恶意代码片段以及恶意代码的资源文件,最后找出重打包过程中对原程序实施修改的代码片段,恢复其原有功能。 
所述的入口点类是指:Android应用程序有五种数据类型的入口点,分别是Activity(活动界面)、Receiver(广播接收者)、Service(服务)、Provider(内容提供者)以及Application(应用程序);所有继承自这五种类型的对象即为入口点类。每个程序都有至少一个或数个入口点类,其中只有一个为主入口点。 
所述的模糊哈希是指:根据程序的控制流图,对控制流图中每个程序基本块的指令操作码(opcode)部分而非整条指令做哈希,所以一个入口点类的每个基本块都对应于一个模糊哈希值。 
所述的匹配是指:根据模糊哈希的方法,对入口点类的每个程序块做操作码哈希,当该入口点类与特征库中的某个恶意入口点类相等的操作码哈希比例超过预设阈值,则认为两者匹配成功,该入口点类认为是恶意入口点类。 
所述的切除是指: 
1)将匹配后的恶意入口点类列入恶意代码类集合,通过迭代方法检测该恶意代码类调用的其他类实现的方法并进一步归为恶意代码类,直至恶意代码类集合不再扩大完成迭代;删除程序中出现在该恶意代码类的集合中的类。 
2)搜索对资源文件在代码中的引用,当对该资源文件的引用仅出现在被删除的类中时,将该资源文件判定属于被重打包注入的恶意代码整体并删除,否则保留该资源文件。 
所述的恢复是指:1)当删除的类中有主入口点类,则通过搜索该被删除的主入口点类,将程序主入口点修改为该类调用的第一个非恶意类中的入口点实现主入口点类恢复;2)当被删除的恶意类是现有剩余类的父类,则从该剩余类开始沿继承关系向上搜索父类,将第一个非恶意类恢复成该类的父类。3)当删除恶意类后剩余的类中搜索到对被删除类的方法调用或成员引用,则从搜索到的指令开始向下寻找与该指令涉及的数据有依赖关系的指令并删除,否则视为恶意代码并未修改原程序无需切除。 
技术效果 
与现有技术相比,本发明是首个针对Android平台重打包恶意程序的代码检测和切除方案。基于Android程序入口点类的模糊哈希利用了恶意代码植入需要保证自身行为触发需要修改或替换原程序的入口点类的特点,且模糊哈希用来检测相似性可以在相对较小的特征库的基础上,更大范围地检测已知恶意家族的不同恶意程序,同时能在一定程度上抵抗已知恶意家族的变种和变化。以类为单位构造的方法调用图和以指令为单位的程序依赖关系图进行切除和检测,是使用了相对保守的切除策略以最大程序保证切除后的程序能够正常运行。 
具体实施方式
下面对本发明的实施例作详细说明,本实施例在以本发明技术方案为前提下进行实施,给出了详细的实施方式和具体的操作过程,但本发明的保护范围不限于下述的实施例。 
实施例1 
本实施例具体步骤如下: 
1)对已知的恶意程序的恶意入口点类建立由模糊哈希值构成的特征库,具体是指:利用反汇编技术,提取底层指令形式的恶意代码片段。对于Android应用程序,可以通过对可执行文件dex的反汇编得到Dalvik虚拟机的指令,当一个入口点类被认为是恶意程序重打包加的,则这个类的指令模糊哈希作为特征。 
所述的特征库使用指令的模糊哈希,将该类的指令根据程序控制流图分成单独的基本块,对每一块中指令的操作码部分的序列做一个哈希值,只对指令操作码的哈希能够一定程度上防 止基于操作数变化的指令混淆或字符串混淆。 
2)对待检测程序同样反汇编,提取其入口点类,构建模糊哈希,与恶意入口点特征库比较,当匹配成功,则将该入口点类判定为恶意入口点类并执行步骤3,否则跳过。 
3)将匹配后的恶意入口点类列入恶意代码类集合,当恶意代码类调用了其他类实现的方法,则该类也被归为恶意代码类中,使用该方法直到恶意代码类集合不再扩大。该恶意代码类的集合被认为是重打包植入的恶意代码,因此删除程序中出现在该集合中的类。 
4)搜索对资源文件在代码中的引用,当对该资源文件的引用仅出现在被删除的类中时,则能证明该资源文件属于被重打包植入的恶意代码整体的一部分,一并删除,否则,保留之。 
5)对正常代码片段修复:当删除的类中有主入口点类,则通过搜索该被删除的主入口点类,将程序主入口点修改为该类调用的第一个非恶意类中的入口点实现主入口点类恢复;当被删除的恶意类是现有剩余类的父类,则从该剩余类开始沿继承关系向上搜索父类,将第一个非恶意类恢复成该类的父类;当删除恶意类后剩余的类中搜索到对被删除类的方法调用或成员引用,则从搜索到的指令开始向下寻找与该指令涉及的数据有依赖关系的指令并删除,否则视为恶意代码并未修改原程序无需切除。 
本实施例通过以下方式验证恶意代码检测和切除的有效性:从两方面验证,切除后的应用可运行,以及无恶意行为。重新打包安装应用使其运行并观察系统日志里对该应用是否有崩溃信息输出。把该切除后的应用程序使用杀毒软件检测,来判断拥有恶意行为的代码是否被切除成功。 

对ANDROID重打包恶意软件的恶意代码的检测、切除和恢复的方法.pdf_第1页
第1页 / 共6页
对ANDROID重打包恶意软件的恶意代码的检测、切除和恢复的方法.pdf_第2页
第2页 / 共6页
对ANDROID重打包恶意软件的恶意代码的检测、切除和恢复的方法.pdf_第3页
第3页 / 共6页
点击查看更多>>
资源描述

《对ANDROID重打包恶意软件的恶意代码的检测、切除和恢复的方法.pdf》由会员分享,可在线阅读,更多相关《对ANDROID重打包恶意软件的恶意代码的检测、切除和恢复的方法.pdf(6页珍藏版)》请在专利查询网上搜索。

1、10申请公布号CN104091121A43申请公布日20141008CN104091121A21申请号201410261034622申请日20140612G06F21/5620130171申请人上海交通大学地址200240上海市闵行区东川路800号72发明人谷大武杨文博李勇张媛媛李卷孺74专利代理机构上海交达专利事务所31201代理人王毓理王锡麟54发明名称对ANDROID重打包恶意软件的恶意代码的检测、切除和恢复的方法57摘要一种对ANDROID重打包恶意软件的恶意代码的检测、切除和恢复的方法,通过对已知恶意程序的恶意入口点类建立由模糊哈希值构成的特征库,用于与反汇编后的待检测程序的入口点类。

2、进行匹配;然后依次切除被重打包加入的完整的恶意代码片段以及恶意代码的资源文件,最后找出重打包过程中对原程序实施修改的代码片段,恢复其原有功能。本发明针对当前ANDROID平台日益严重的恶意程序使用的重打包植入恶意代码这一最主要传播特征,检测和切除那些正常程序中植入的恶意代码部分。51INTCL权利要求书1页说明书4页19中华人民共和国国家知识产权局12发明专利申请权利要求书1页说明书4页10申请公布号CN104091121ACN104091121A1/1页21一种对ANDROID重打包恶意软件的恶意代码的检测、切除和恢复的方法,其特征在于,通过对已知恶意程序的恶意入口点类建立由模糊哈希值构成的。

3、特征库,用于与反汇编后的待检测程序的入口点类进行匹配;然后依次切除被重打包加入的完整的恶意代码片段以及恶意代码的资源文件,最后找出重打包过程中对原程序实施修改的代码片段,恢复其原有功能。2根据权利要求1所述的方法,其特征是,所述的入口点类是指ANDROID应用程序的数据类型的入口点,包括ACTIVITY、RECEIVER、SERVICE、PROVIDER以及APPLICATION;继承自这五种类型的对象即为入口点类。3根据权利要求1所述的方法,其特征是,所述的模糊哈希是指根据程序的控制流图,对控制流图中每个程序基本块的指令操作码部分而非整条指令做哈希,所以一个入口点类的每个基本块都对应于一个模。

4、糊哈希值。4根据权利要求1所述的方法,其特征是,所述的匹配是指根据模糊哈希的方法,对入口点类的每个程序块做操作码哈希,当该入口点类与特征库中的某个恶意入口点类相等的操作码哈希比例超过预设阈值,则认为两者匹配成功,该入口点类认为是恶意入口点类。5根据权利要求1所述的方法,其特征是,所述的切除被重打包加入的完整的恶意代码片段以及恶意代码的资源文件是指1将匹配后的恶意入口点类列入恶意代码类集合,通过迭代方法检测该恶意代码类调用的其他类实现的方法并进一步归为恶意代码类,直至恶意代码类集合不再扩大完成迭代;删除程序中出现在该恶意代码类的集合中的类;2搜索对资源文件在代码中的引用,当对该资源文件的引用仅出。

5、现在被删除的类中时,将该资源文件判定属于被重打包注入的恶意代码整体并删除,否则保留该资源文件。6根据权利要求1所述的方法,其特征是,所述的恢复是指1当删除的类中有主入口点类,则通过搜索该被删除的主入口点类,将程序主入口点修改为该类调用的第一个非恶意类中的入口点实现主入口点类恢复;2当被删除的恶意类是现有剩余类的父类,则从该剩余类开始沿继承关系向上搜索父类,将第一个非恶意类恢复成该类的父类。3当删除恶意类后剩余的类中搜索到对被删除类的方法调用或成员引用,则从搜索到的指令开始向下寻找与该指令涉及的数据有依赖关系的指令并删除,否则视为恶意代码并未修改原程序无需切除。权利要求书CN104091121A。

6、1/4页3对ANDROID重打包恶意软件的恶意代码的检测、切除和恢复的方法技术领域0001本发明涉及的是一种移动通信设备领域的方法,具体是一种对ANDROID重打包恶意软件的恶意代码的检测、切除和恢复的方法,针对的是ANDROID平台通过对正常程序重打包,注入恶意代码的恶意软件。背景技术0002在ANDROID平台上,应用程序使用JAVA语言编写,使得应用程序的逆向和破解变得简单。有许多工具例如APKTOOL等可以用来帮助反汇编ANDROID应用程序的可执行代码,解码资源文件。由于ANDROID允许自签发的证书签名应用程序并允许安装非官方市场的应用,因此一旦ANDROID应用程序被反汇编和解码。

7、后,就可以修改或加入代码以及资源文件,重新签名打包成新的应用程序被用户安装执行。而恶意程序为了更加广泛的传播以及欺骗用户安装,通常使用批量重打包正常的应用程序,并植入拥有恶意行为的代码片段,放入各类市场诱使用户下载。目前绝大多数的ANDROID恶意程序都通过这种方式传播。目前已经有针对ANDROID恶意程序的检测技术,主要是通过应用程序的特征值进行检测,如代码特征,字符串特征,API调用等。另外还有通过特征值匹配和相似性检测进行对恶意程序家族的分类。由于恶意代码片段是被重打包植入的,本身是个相对独立的模块,为了保证原来程序功能的完整,重打包过程通常不会对原程序做大规模的修改,这些都使得对被植入。

8、的恶意代码的检测切除和恢复原程序成为可能。但是目前在ANDROID领域,针对重打包植入恶意代码的恶意程序,尚没有一种能准确检测出被植入的恶意代码完整部分,并切除的方案和技术。0003经过对现有技术的检索发现,中国专利文献号CN103440459A公开公告日20131211,公开了一种ANDROID恶意软件检测方法,旨在解决现有ANDROID恶意代码检测技术无法细粒度构建ANDROID程序行为特征的问题。首先对现有ANDROID恶意代码进行基于权限的统计分析,提取使用率较高的权限作为敏感权限,继而以使用这些权限的API作为入口点,构建调用这些API的函数链,进行基于函数调用的ANDROID恶意代。

9、码检测。但该技术仅能够判断被检测程序中是否含有恶意代码的函数调用特征,但无法准确检测出整个程序中具有恶意行为功能的完整恶意代码模块。另外在使用敏感权限对应API的函数调用链作为特征,对于不依赖于权限和函数,只有指令特征的恶意行为,例如恶意程序自己实现的加解密功能等行为,无法构建有效的特征进行检测。0004中国专利文献号CN102819697A公开公告日20121212,公开了一种基于线程反编译的多平台恶意代码检测方法包括通过特征提取获取恶意指令序列;依次检测系统中的线程信息,识别线程起始数据的指令集,并根据不同指令集对每个线程起始数据进行反编译得到线程的执行指令序列;将所述线程的执行指令序列与。

10、所述恶意指令序列进行完全匹配,当匹配成功则该所述线程为恶意线程。但该技术需要对指令序列进行完全匹配,因此如果恶意程序在不影响功能的情况下对指令进行微小变换则很容易逃避检测,说明书CN104091121A2/4页4ANDROID平台上同一家族的恶意程序通常有很多变种,该方案很难检测出变种的恶意程序。另外,该技术仅能检测以线程为单位的恶意线程,无法根据功能性完整检测程序中执行恶意行为的代码片段和模块。0005综上所述,现阶段尚缺少一种能够检测ANDROID平台的重打包恶意程序,一般如利用ANDROID程序易于反编译的特点,对正常和流行的程序解包后,加入后台执行,用户不可见的窃取用户隐私、执行恶意扣。

11、费、或进行欺诈和欺骗行为的恶意代码功能模块,再重新打包放入市场诱使用户下载的恶意程序。此类恶意程序的特点是通常具有两个相对独立的功能模块具有原程序的正常功能模块,以及后台执行恶意行为的功能模块。发明内容0006本发明针对现有技术存在的上述不足,提出一种对ANDROID重打包恶意软件的恶意代码的检测、切除和恢复的方法,主要针对当前ANDROID平台日益严重的恶意程序使用的重打包植入恶意代码这一最主要传播特征,检测和切除那些正常程序中植入的恶意代码部分。0007本发明是通过以下技术方案实现的,本发明通过对已知恶意程序的恶意入口点类建立由模糊哈希值构成的特征库,用于与反汇编后的待检测程序的入口点类进。

12、行匹配;然后依次切除被重打包加入的完整的恶意代码片段以及恶意代码的资源文件,最后找出重打包过程中对原程序实施修改的代码片段,恢复其原有功能。0008所述的入口点类是指ANDROID应用程序有五种数据类型的入口点,分别是ACTIVITY活动界面、RECEIVER广播接收者、SERVICE服务、PROVIDER内容提供者以及APPLICATION应用程序;所有继承自这五种类型的对象即为入口点类。每个程序都有至少一个或数个入口点类,其中只有一个为主入口点。0009所述的模糊哈希是指根据程序的控制流图,对控制流图中每个程序基本块的指令操作码OPCODE部分而非整条指令做哈希,所以一个入口点类的每个基本。

13、块都对应于一个模糊哈希值。0010所述的匹配是指根据模糊哈希的方法,对入口点类的每个程序块做操作码哈希,当该入口点类与特征库中的某个恶意入口点类相等的操作码哈希比例超过预设阈值,则认为两者匹配成功,该入口点类认为是恶意入口点类。0011所述的切除是指00121将匹配后的恶意入口点类列入恶意代码类集合,通过迭代方法检测该恶意代码类调用的其他类实现的方法并进一步归为恶意代码类,直至恶意代码类集合不再扩大完成迭代;删除程序中出现在该恶意代码类的集合中的类。00132搜索对资源文件在代码中的引用,当对该资源文件的引用仅出现在被删除的类中时,将该资源文件判定属于被重打包注入的恶意代码整体并删除,否则保留。

14、该资源文件。0014所述的恢复是指1当删除的类中有主入口点类,则通过搜索该被删除的主入口点类,将程序主入口点修改为该类调用的第一个非恶意类中的入口点实现主入口点类恢复;2当被删除的恶意类是现有剩余类的父类,则从该剩余类开始沿继承关系向上搜索父类,将第一个非恶意类恢复成该类的父类。3当删除恶意类后剩余的类中搜索到对被删除类的方法调用或成员引用,则从搜索到的指令开始向下寻找与该指令涉及的数据有依赖关说明书CN104091121A3/4页5系的指令并删除,否则视为恶意代码并未修改原程序无需切除。技术效果0015与现有技术相比,本发明是首个针对ANDROID平台重打包恶意程序的代码检测和切除方案。基于。

15、ANDROID程序入口点类的模糊哈希利用了恶意代码植入需要保证自身行为触发需要修改或替换原程序的入口点类的特点,且模糊哈希用来检测相似性可以在相对较小的特征库的基础上,更大范围地检测已知恶意家族的不同恶意程序,同时能在一定程度上抵抗已知恶意家族的变种和变化。以类为单位构造的方法调用图和以指令为单位的程序依赖关系图进行切除和检测,是使用了相对保守的切除策略以最大程序保证切除后的程序能够正常运行。0016具体实施方式0017下面对本发明的实施例作详细说明,本实施例在以本发明技术方案为前提下进行实施,给出了详细的实施方式和具体的操作过程,但本发明的保护范围不限于下述的实施例。实施例10018本实施例。

16、具体步骤如下00191对已知的恶意程序的恶意入口点类建立由模糊哈希值构成的特征库,具体是指利用反汇编技术,提取底层指令形式的恶意代码片段。对于ANDROID应用程序,可以通过对可执行文件DEX的反汇编得到DALVIK虚拟机的指令,当一个入口点类被认为是恶意程序重打包加的,则这个类的指令模糊哈希作为特征。0020所述的特征库使用指令的模糊哈希,将该类的指令根据程序控制流图分成单独的基本块,对每一块中指令的操作码部分的序列做一个哈希值,只对指令操作码的哈希能够一定程度上防止基于操作数变化的指令混淆或字符串混淆。00212对待检测程序同样反汇编,提取其入口点类,构建模糊哈希,与恶意入口点特征库比较,。

17、当匹配成功,则将该入口点类判定为恶意入口点类并执行步骤3,否则跳过。00223将匹配后的恶意入口点类列入恶意代码类集合,当恶意代码类调用了其他类实现的方法,则该类也被归为恶意代码类中,使用该方法直到恶意代码类集合不再扩大。该恶意代码类的集合被认为是重打包植入的恶意代码,因此删除程序中出现在该集合中的类。00234搜索对资源文件在代码中的引用,当对该资源文件的引用仅出现在被删除的类中时,则能证明该资源文件属于被重打包植入的恶意代码整体的一部分,一并删除,否则,保留之。00245对正常代码片段修复当删除的类中有主入口点类,则通过搜索该被删除的主入口点类,将程序主入口点修改为该类调用的第一个非恶意类。

18、中的入口点实现主入口点类恢复;当被删除的恶意类是现有剩余类的父类,则从该剩余类开始沿继承关系向上搜索父类,将第一个非恶意类恢复成该类的父类;当删除恶意类后剩余的类中搜索到对被删除类的方法调用或成员引用,则从搜索到的指令开始向下寻找与该指令涉及的数据有依赖关系的指令并删除,否则视为恶意代码并未修改原程序无需切除。0025本实施例通过以下方式验证恶意代码检测和切除的有效性从两方面验证,切除后的应用可运行,以及无恶意行为。重新打包安装应用使其运行并观察系统日志里对该应用是否有崩溃信息输出。把该切除后的应用程序使用杀毒软件检测,来判断拥有恶意行为说明书CN104091121A4/4页6的代码是否被切除成功。说明书CN104091121A。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 >


copyright@ 2017-2020 zhuanlichaxun.net网站版权所有
经营许可证编号:粤ICP备2021068784号-1