[发明专利]一种安卓应用的加固方法和系统在审
申请号: | 201910523719.6 | 申请日: | 2019-06-17 |
公开(公告)号: | CN110232262A | 公开(公告)日: | 2019-09-13 |
发明(设计)人: | 张大健;张行;夏立宁 | 申请(专利权)人: | 中金金融认证中心有限公司 |
主分类号: | G06F21/14 | 分类号: | G06F21/14 |
代理公司: | 北京国帆知识产权代理事务所(普通合伙) 11334 | 代理人: | 刘小哲;刘宇航 |
地址: | 100192 北京市西城区菜市口*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 函数指令 无效指令 加密 应用 应用程序核心 修复 底层函数 动态调试 动态启动 使用系统 应用程序 源码文件 结构体 新文件 解密 调用 解析 退出 分析 | ||
1.一种安卓应用的加固方法,其特征在于,该方法包括:
第一步骤(110),对安卓应用程序中的原dex文件进行解析,获得含函数指令信息的结构体;
第二步骤(120),提取原dex文件中的函数指令加密后另存为新文件;
第三步骤(130),将原dex中被提取的函数指令位置值修改为无效指令;
第四步骤(140),使用系统底层函数的hook功能对函数指令进行修复;
第五步骤(150),在壳代码中调用hook函数;
第六步骤(160),动态启动原安卓应用程序实例并退出壳代码实例。
2.根据权利要求1所述的方法,其特征在于:在所述第一步骤(110)中,根据dex文件的结构的class_defs和method_ids表找到dex中的类的位置偏移,获得含函数指令信息的结构体。
3.根据权利要求1所述的方法,其特征在于:在所述第二步骤(120)中,提取原dex文件中的函数指令加密后的新文件为.bin或.dat格式。
4.根据权利要求1所述的方法,其特征在于:在所述第三步骤(130)中,将原dex中被提取的函数指令位置值修改为无效指令后,重新计算所述原dex文件的checksum和signature信息并回写到原dex的头部信息中,再进行加密。
5.根据权利要求1所述的方法,其特征在于:在所述第四步骤(140)中,构建一个函数指令结构体,hook系统底层解析函数,获取原dex文件中的函数指令加密后的新文件的内存地址,并通过加解密模块进行解密,直接进行指令还原,这样就完成了函数指令的修复工作。
6.根据权利要求1所述的方法,其特征在于:在所述第五步骤(150)中,将所述壳代码的名称更新至AndroidManifest.xml文件中启动程序的位置,运行时首先执行壳代码的Application。
7.一种安卓应用的加固系统,其特征在于,该系统包括:函数指令抽取模块(210),函数指令加解密模块(220),系统底层函数hook模块(230),壳代码模块(240);
所述函数指令抽取模块(210),用于对安卓应用程序中的原dex文件进行解析,并提取原dex文件中的函数指令加密后另存为新文件,以及将原dex中被提取的函数指令位置值修改为无效指令;
所述函数指令加解密模块(220),用于对提取出的函数指令进行加密及解密;
所述系统底层函数hook模块(230),用于截获并监控系统解析函数,使用系统底层函数的hook功能并对指令进行修复;
所述壳代码模块,用于APK的启动模块(240),并在启动后调用hook模块。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于中金金融认证中心有限公司,未经中金金融认证中心有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201910523719.6/1.html,转载请声明来源钻瓜专利网。