[发明专利]结合动态加载和函数Native化的DEX保护方法有效
申请号: | 201810235689.4 | 申请日: | 2018-03-21 |
公开(公告)号: | CN108491235B | 公开(公告)日: | 2021-03-30 |
发明(设计)人: | 潘丽敏;袁晓筱;罗森林;尚海;张笈 | 申请(专利权)人: | 北京理工大学 |
主分类号: | G06F9/445 | 分类号: | G06F9/445;G06F8/53 |
代理公司: | 暂无信息 | 代理人: | 暂无信息 |
地址: | 100081 *** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 结合 动态 加载 函数 native dex 保护 方法 | ||
1.结合动态加载和函数Native化的DEX保护方法,其特征在于所述方法包括如下步骤:
步骤1,对APK文件加固修改阶段,首先对应用APK进行反编译,修改应用启动入口,接着利用输入的待保护方法列表生成植入代码,植入原smali文件,然后进行DEX重构,包括DEX函数抽取和DEX文件加密,其中DEX函数抽取分为函数定位和函数变换;
步骤2,应用启动阶段,首先执行壳DEX,执行自定义的系统启动入口,运行植入的启动代码,完成对源DEX文件的动态加载和加密,并进行被保护函数的重定向;
步骤3,应用运行中的函数调用阶段,首先进行函数自修改,包括DEX文件内存定位,函数信息获取和函数修改,接着进行函数调用,返回结果,完成整个函数的执行过程。
2.根据权利要求1所述的结合动态加载和函数Native化的DEX保护方法,其特征在于:步骤1中DEX函数抽取中的函数变换,将access_flags赋值为access_flags|ACC_NATIVE,实现了Java函数的Native化。
3.根据权利要求1所述的结合动态加载和函数Native化的DEX保护方法,其特征在于:步骤2中对函数进行重定向,将函数的Method-nativeFunc地址设置为自定义函数接口重定向函数。
4.根据权利要求1所述的结合动态加载和函数Native化的DEX保护方法,其特征在于:步骤3中函数自修改的DEX文件内存定位阶段,函数调用时,传递一个指向Method结构体指针method,指针指向所调用函数的Method结构体。
5.根据权利要求1所述的结合动态加载和函数Native化的DEX保护方法,其特征在于:步骤3中函数自修改的函数信息获取阶段,通过Method结构体ClassObject类的属性char*descriptor指向的字符串获取类名,通过Method结构体属性char*name指向的字符串获取函数名,通过DexProto结构体的属性protoIdx获取函数声明索引值。
6.根据权利要求1所述的结合动态加载和函数Native化的DEX保护方法,其特征在于:步骤3中函数调用阶段,通过Native形式的Method的insns字段找到Java形式的Method,通过反射方式,在native层调用Java函数。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京理工大学,未经北京理工大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201810235689.4/1.html,转载请声明来源钻瓜专利网。