[发明专利]结合动态加载和函数Native化的DEX保护方法有效

专利信息
申请号: 201810235689.4 申请日: 2018-03-21
公开(公告)号: CN108491235B 公开(公告)日: 2021-03-30
发明(设计)人: 潘丽敏;袁晓筱;罗森林;尚海;张笈 申请(专利权)人: 北京理工大学
主分类号: G06F9/445 分类号: G06F9/445;G06F8/53
代理公司: 暂无信息 代理人: 暂无信息
地址: 100081 *** 国省代码: 北京;11
权利要求书: 查看更多 说明书: 查看更多
摘要:
搜索关键词: 结合 动态 加载 函数 native dex 保护 方法
【说明书】:

发明涉及结合动态加载和函数Native化的DEX保护方法,属于计算机与信息科学技术领域中Android平台APP加固技术的一种。本发明第一步对应用的APK文件进行加固修改,加固过程首先通过apktool工具反编译应用APK文件,获取AndroidManifest.xml文件,修改应用启动入口,然后利用输入的待保护方法列表,生成植入代码,并植入原始DEX文件反编译得到的smali文件,重新生成DEX文件并重构,最后对DEX文件加密,输出得.jar,并重新打包生成APK。本发明第二步在APP运行过程中修改进程内存,首先启动壳DEX,运行植入的启动代码对原始DEX文件加密和动态加载,并重定向被保护的方法,接着,在函数调用时执行自定义的代码恢复被调用方法,调用原始函数,完成函数调用。

技术领域

本发明涉及结合动态加载和函数Native化的DEX保护方法,属于计算机与信息科学技术领域。

背景技术

Android APP的核心业务逻辑通过Java实现,最终被编译成了DEX文件。DEX的安全问题是APP安全的核心,未加固的DEX文件不具备自我保护能力,需要针对性地对DEX进行保护,继而保证APP的安全性。本发明提出结合动态加载和函数Native化的DEX保护方法,使Java函数在内存中始终为Native形式,对抗动态恢复和动态脱壳攻击。

针对DEX文件的保护方法需要解决的基本问题是:保护Java函数在内存中的信息,避免DEX容易受到动态恢复和动态脱壳攻击。综观现有的DEX文件保护方法,通常使用方法可归为四类:

1.基于代码混淆的DEX保护方法

代码混淆技术是相对通用和成熟的方法,随着混淆技术的发展,已经出现了多个实用的混淆工具。其中包括针对Java源码的混淆工具,如Smardec公司的Allatori,针对Android程序的混淆工具,如GuardSquare公司的ProGuard,以及它的增强版DexGuard和针对DEX文件的混淆工具,如AIRO等。

代码混淆技术虽然可以降低代码可读性,提高逆向分析的难度,但是攻击者仍然可以直接获取源码,也不影响动态调试的流程,而且存在着混淆失败的风险,给APP新增漏洞,因此代码混淆只是DEX保护初级的保护方案。

2.基于动态加载的DEX保护方法

基于动态加载的DEX保护方法,通过对DEX文件整体加密,并将加密后的DEX移动到其他目录,然后在APK文件的根目录下加入壳DEX。当APP启动时,系统加载壳DEX,壳DEX解密并动态加载DEX文件。这种方法将DEX文件作为一个整体进行加载,加载到内存中的DEX文件是完整的。这种保护方法对内存dump等动态逆向方法的防护作用很小。

3.基于Java函数动态恢复的DEX保护方法

基于Java函数动态恢复的保护方法是更深层次的保护方法。以Java函数为基本单位进行DEX保护。目前国内大部分公司采取这样的方法,包括娜迦、腾讯乐固、梆梆、360、爱加密等。方法有效改进了基于动态加载的DEX保护方法在内存中的完整性问题。如梆梆的加固方法首先通过壳DEX去动态加载原始的DEX文件,但DEX文件在内存中是不完整的,部分函数的代码被剥离。该方法Hook了dvmResolveClass函数,当类被加载时,该函数被执行,此时对类中的被抽取的代码进行还原,填充Method结构体,完成动态恢复的过程。同时也保证了DEX文件的不完整性。

对于Java函数动态恢复的方法,内存中的DEX文件是不完整的。经过动态恢复的函数,虽然其在DEX文件中被描述是Native方法,但是其在内存中已经被还原成一个Java函数。可以通过遍历class_data_item中所有类的所有函数,并获取该函数在内存中的Method结构体信息,比较Method结构体对函数的描述和DEX文件对函数的描述,如果不一致,以Method结构体为准。这样可以完成对已经加载过的类的函数进行恢复。

4.基于虚拟机保护的DEX保护方法

下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。

该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京理工大学,未经北京理工大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服

本文链接:http://www.vipzhuanli.com/pat/books/201810235689.4/2.html,转载请声明来源钻瓜专利网。

×

专利文献下载

说明:

1、专利原文基于中国国家知识产权局专利说明书;

2、支持发明专利 、实用新型专利、外观设计专利(升级中);

3、专利数据每周两次同步更新,支持Adobe PDF格式;

4、内容包括专利技术的结构示意图流程工艺图技术构造图

5、已全新升级为极速版,下载速度显著提升!欢迎使用!

请您登陆后,进行下载,点击【登陆】 【注册】

关于我们 寻求报道 投稿须知 广告合作 版权声明 网站地图 友情链接 企业标识 联系我们

钻瓜专利网在线咨询

周一至周五 9:00-18:00

咨询在线客服咨询在线客服
tel code back_top