[发明专利]基于dex与so文件动态执行的Android应用加固方法在审
申请号: | 201610787151.5 | 申请日: | 2016-08-31 |
公开(公告)号: | CN106203006A | 公开(公告)日: | 2016-12-07 |
发明(设计)人: | 文伟平 | 申请(专利权)人: | 北京鼎源科技有限公司 |
主分类号: | G06F21/12 | 分类号: | G06F21/12;G06F21/60 |
代理公司: | 北京万象新悦知识产权代理事务所(普通合伙) 11360 | 代理人: | 黄凤茹 |
地址: | 100086 北京市海淀区知*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | 本发明公布了一种Android应用加固方法,所述加固方法基于dex与so文件的动态执行,通过加密方法对Android应用程序中的关键代码进行加固,使得Android应用程序代码得到保护;所述加固方法包括加密过程和解密过程,包括:通过加密过程对Android应用程序中的关键代码进行加固;当动态执行Android应用程序时进行解密;本发明方法对核心dex的解密函数用C++语言编写,增加其反编译的难度,以动态链接库的形式存在并且进行加密,相当于对核心dex双重加密,对动态链接库的关键代码也进行了加密,解密过程摆脱了JNI调用机制,使得解密过程不会在硬盘留下解密后的明文so文件,全部在内存中进行。本发明方法具有更高的安全性。 | ||
搜索关键词: | 基于 dex so 文件 动态 执行 android 应用 加固 方法 | ||
【主权项】:
一种Android应用加固方法,所述加固方法基于dex与so文件的动态执行,通过加密方法对Android应用程序中的关键代码进行加固,使得Android应用程序代码得到保护;所述加固方法包括加密过程和解密过程,具体包括如下步骤:A)通过加密过程对Android应用程序中的关键代码进行加固,执行如下步骤:A1.解压Android应用程序主体部分apk文件,提取其中的classes.dex文件;A2.将Android应用程序核心功能部分代码编译成独立的apk文件并对该apk文件进行加密;A3.把加密后的apk文件写入到A1中Android应用程序主体部分的classes.dex文件的末尾,并在所述classes.dex文件尾部添加加密数据的大小,用于解密时找到核心功能部分代码的起始位置;A4.重新计算classes.dex文件的checksum、signature和file_size字段的值,替换原位置的相应字段的值,得到修改后的classes.dex文件;A5.将修改后的classes.dex文件放回所述应用程序软件主体部分apk包中,再对所述应用程序进行签名;A6.读取待加固的so库文件,通过解析文件信息得到待加密函数的偏移地址与大小,并向待加密函数末尾处写入decryDEX()解密函数,用于解密加密后的dex文件;重新计算得到改变之后的待加密函数的大小的值,并将原来待加密函数中的大小修改为所述改变之后的待加密函数的大小的值;A7.对所述待加密函数进行异或加密;A8.解析so库文件的文件头,修改文件头部部分字段值,包括so文件大小、so文件中函数的偏移地址;A9.计算so库文件的MD5值,将所述MD5值写入所述so库文件的末尾;A10.在所述so库文件中的.init_array节的代码段中添加运行环境检测、对抗动态调试、MD5完整性校验和对so库文件进行解密的代码;B.当动态执行Android应用程序进行解密时,执行如下操作:B1.所述Android应用程序主体部分从自身的apk文件中读取classes.dex文件,从classes.dex文件尾部得到加密数据的长度,计算得到加密数据的起始位置,从而读取得到加密数据;B2.加载所述so库文件;B3.调用decryDEX()解密函数进行解密,得到核心功能部分的apk;B4.通过Android API提供的DexClassLoader类,对B3所述核心功能部分的apk进行反射调用,从而实现核心功能部分代码的动态加载;B5.调用完成后,删除核心功能部分apk文件,从而避免核心功能部分代码暴露在系统内部存储之中而被攻击者得到。
下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京鼎源科技有限公司,未经北京鼎源科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/patent/201610787151.5/,转载请声明来源钻瓜专利网。
- 上一篇:一种终端设备处理方法及装置
- 下一篇:癌症的数据分析方法及装置