一种移动应用回调强制触发方法、系统及存储介质技术方案

技术编号:23314977 阅读:25 留言:0更新日期:2020-02-11 17:45
本发明专利技术公开了一种移动应用回调强制触发方法、系统及存储介质,所述方法包括:将待检测移动应用程序转换为可执行、可分析的apk文件;对apk文件进行静态分析,提取移动应用静态特征;根据所提取的移动应用静态特征读取所有类的类名;按照类名加载目标类,判断目标类是否继承自特定回调基类,如果是,则返回目标类的字节码;根据字节码对相应类进行实例化,得到实例对象;调用实例对象的回调方法,实现回调强制触发。本发明专利技术具有强对抗性,能够使分析路径直接跳转到目标位置,破解大部分恶意代码对抗分析的机制,大幅提高动态分析的覆盖率,有助于对移动应用行为进行准确分析。

A method, system and storage medium of mobile application callback forced trigger

【技术实现步骤摘要】
一种移动应用回调强制触发方法、系统及存储介质
本专利技术涉及一种移动应用回调强制触发方法、系统及存储介质,属于计算机软件处理

技术介绍
Android应用中往往存在着大量的回调方法调用,而在这些回调方法中,往往夹杂着对敏感行为相关的API的调用。而由于模拟触发一些情况下无法模拟出可以成功触发这些回调方法的事件,导致大量敏感行为无法被触发,严重影响了分析的准确性、可靠性。
技术实现思路
本专利技术的目的在于克服现有技术中的不足,提供一种移动应用回调强制触发方法、系统及存储介质,用以处理模拟触发失效的复杂情况,能够使得分析路径直接调转到目标位置,使得对移动应用动态分析的覆盖率得到大幅提升。为达到上述目的,本专利技术是采用下述技术方案实现的:第一方面,本专利技术提供了一种移动应用回调强制触发方法,包括如下步骤:将待检测移动应用程序转换为可执行、可分析的apk文件;对apk文件进行静态分析,提取移动应用静态特征;根据所提取的移动应用静态特征读取所有类的类名;按照类名加载目标类,判断目标类是否继承自特定回调基类,如果是,则返回目标类的字节码;根据字节码对相应类进行实例化,得到实例对象;调用实例对象的回调方法,实现回调强制触发。结合第一方面,进一步的,将待检测移动应用程序转换为可执行、可分析的apk文件的方法包括如下步骤:选取dex2oat作为脱壳点,对待检测移动应用程序进行脱壳处理,获取未加密的dex文件;将未加密的dex文件反编译为smali伪汇编代码,修改AndroidManifest.xml,去除加固厂商插入的无效干扰信息;将smali源码文件编译回dex文件,重打包以获取所述可执行、可分析的apk文件。结合第一方面,进一步的,所述脱壳处理的方法包括:通过参数输入apk文件的位置、输出oat文件的位置;解压apk文件,获取其中的dex文件并完成dex文件合法性检验;调用编译函数将通过合法性检验的dex文件编译为oat文件,并写入到指定位置。结合第一方面,进一步的,所述静态特征包括:结构信息、权限信息、数据流信息、防护相关信息、动态执行信息;所述结构信息包括移动应用的大小以及组件数量;所述权限信息包括申请危险权限的数量以及具体申请权限类型;所述数据流信息包括敏感信息传到公共区域的情况;所述防护相关信息包括加壳情况、native代码使用情况,反射技术使用情况;所述动态执行信息包括移动应用程序执行过程中的方法调用序列。结合第一方面,进一步的,加载目标类的方法包括:利用java的RTTI机制,要求Android虚拟机按照类名加载目标类。结合第一方面,进一步的,判断目标类是否继承自特定回调基类的方法包括:使用强制上转型后是否抛出转换异常的方式判断目标类是否继承自特定回调基类,若没有抛出异常,则返回目标类的字节码。结合第一方面,进一步的,根据字节码对相应类进行实例化,得到实例对象的方法包括:调用newInstance方法,让Android虚拟机通过调用目标类的默认无参构造函数来构建并返回实例对象。结合第一方面,进一步的,根据字节码对相应类进行实例化,得到实例对象的方法还包括:当目标类为静态类时,调用newInstance方法直接返回静态类的实例对象;当目标类为内部类时,调用构造函数对象的setAccessible方法将内部类访问属性设置为true实现从外部强制访问内部类的默认无参构造函数,对内部类所依赖的外部类进行实例化后,再根据内部类的默认无参构造函数来构建并返回内部类实例对象。第二方面,本专利技术提供了一种移动应用回调强制触发系统,包括处理器及存储介质;所述存储介质用于存储指令;所述处理器用于根据所述指令进行操作以执行前述任一项所述方法的步骤。第三方面,本专利技术提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现前述任一项所述方法的步骤。与现有技术相比,本专利技术所达到的有益效果包括:得益于静态分析所获取的静态特征能够直接读取所有类的类名,通过判断目标类是否继承自特定回调基类获取目标类的字节码,根据字节码对相应类进行实例化,得到实例对象;调用实例对象的回调方法,实现回调强制触发,具有强对抗性,能够使分析路径直接跳转到目标位置,破解大部分恶意代码对抗分析的机制,大幅提高动态分析的覆盖率,有助于对移动应用行为进行准确分析。附图说明图1是根据本专利技术实施例提供的一种恶意移动应用检测方法的流程图;图2是图1中预处理的方法流程图;图3是图1中静态分析的方法流程图;图4是根据本专利技术实施例提供的回调类强制触发的方法流程图;图5是System.currentTimeMillis()的签名截图;图6是BroadcastReceiver的onRceive方法的代码片段截图;图7是静态分析类信息获取运行截图;图8是静态分析样本基本信息csv截图;图9是数据流结果截图;图10是动态分析运行过程中的系统截图;图11为动态分析行为监控的结果展示。具体实施方式本专利技术实施例提供的移动应用回调强制触发方法,适用于恶意移动应用检测,能够破解大部分恶意代码的反分析机制,有助于实现恶意移动应用准确检测,主要包括以下步骤:将待检测移动应用程序转换为可执行、可分析的apk文件;对apk文件进行静态分析,提取移动应用静态特征;根据所提取的移动应用静态特征读取所有类的类名;按照类名加载目标类,判断目标类是否继承自特定回调基类,如果是,则返回目标类的字节码;根据字节码对相应类进行实例化,得到实例对象;调用实例对象的回调方法,实现回调强制触发。下面结合附图及本专利技术实施例提供的恶意移动应用检测方法对本专利技术作进一步描述。以下实施例仅用于更加清楚地说明本专利技术的技术方案,而不能以此来限制本专利技术的保护范围。如图1所示,本专利技术实施例提供的移动应用回调强制触发方法适用的恶意移动应用检测方法包括:预处理、静态分析、行为触发、行为监控、行为分析及自动分类六个部分。为提高样本的可分析性,本专利技术实施例首先进行预处理,即对加壳的程序进行脱壳,再将其重打包为可执行、可分析的APK文件;然后通过静态分析,获取包括移动应用的权限信息、结构信息,以及动态分析所依赖的内在内的静态特征;在静态分析的基础上,进行动态分析,动态分析主要包含行为触发和行为监控两个部分,其中,行为触发主要包括用户动作模拟、系统消息模拟、强制执行,以尽可能提高触发恶意载荷的成功率;行为监控同时对敏感行为、用户动作、界面信息、文件操作等进行监控,记录敏感行为以及执行场景;最后,根据所提取的静态特征和动态特征进行采集集中机械学习模型对被检测移动应用进行自动分类,实现恶意移动应用的检测。下面对本发本文档来自技高网...

【技术保护点】
1.一种移动应用回调强制触发方法,其特征在于,包括如下步骤:/n将待检测移动应用程序转换为可执行、可分析的apk文件;/n对apk文件进行静态分析,提取移动应用静态特征;/n根据所提取的移动应用静态特征读取所有类的类名;/n按照类名加载目标类,判断目标类是否继承自特定回调基类,如果是,则返回目标类的字节码;/n根据字节码对相应类进行实例化,得到实例对象;/n调用实例对象的回调方法,实现回调强制触发。/n

【技术特征摘要】
1.一种移动应用回调强制触发方法,其特征在于,包括如下步骤:
将待检测移动应用程序转换为可执行、可分析的apk文件;
对apk文件进行静态分析,提取移动应用静态特征;
根据所提取的移动应用静态特征读取所有类的类名;
按照类名加载目标类,判断目标类是否继承自特定回调基类,如果是,则返回目标类的字节码;
根据字节码对相应类进行实例化,得到实例对象;
调用实例对象的回调方法,实现回调强制触发。


2.根据权利要求1所述的移动应用回调强制触发方法,其特征在于,将待检测移动应用程序转换为可执行、可分析的apk文件的方法包括如下步骤:
选取dex2oat作为脱壳点,对待检测移动应用程序进行脱壳处理,获取未加密的dex文件;
将未加密的dex文件反编译为smali伪汇编代码,修改AndroidManifest.xml,去除加固厂商插入的无效干扰信息;
将smali源码文件编译回dex文件,重打包以获取所述可执行、可分析的apk文件。


3.根据权利要求2所述的移动应用回调强制触发方法,其特征在于,所述脱壳处理的方法包括:
通过参数输入apk文件的位置、输出oat文件的位置;
解压apk文件,获取其中的dex文件并完成dex文件合法性检验;
调用编译函数将通过合法性检验的dex文件编译为oat文件,并写入到指定位置。


4.根据权利要求1所述的移动应用回调强制触发方法,其特征在于,所述静态特征包括:结构信息、权限信息、数据流信息、防护相关信息、动态执行信息;所述结构信息包括移动应用的大小以及组件数量;
所述权限信息包括申请危险权限的数量以及具体申请权限类型;
所述数据流信息包括敏感信息传到公共区域的情况;
所述防护相关信息包括加壳情况、nativ...

【专利技术属性】
技术研发人员:李维勇李建林李方方
申请(专利权)人:南京信息职业技术学院
类型:发明
国别省市:江苏;32

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1