[发明专利]一种Android非侵入式应用重打包方法有效
| 申请号: | 201811118360.6 | 申请日: | 2018-09-21 |
| 公开(公告)号: | CN109408073B | 公开(公告)日: | 2021-10-08 |
| 发明(设计)人: | 韩心慧;黎桐辛;简容;武新逢 | 申请(专利权)人: | 北京大学 |
| 主分类号: | G06F8/61 | 分类号: | G06F8/61 |
| 代理公司: | 北京君尚知识产权代理有限公司 11200 | 代理人: | 司立彬 |
| 地址: | 100871 北*** | 国省代码: | 北京;11 |
| 权利要求书: | 查看更多 | 说明书: | 查看更多 |
| 摘要: | |||
| 搜索关键词: | 一种 android 侵入 应用 打包 方法 | ||
本发明公开一种Android非侵入式应用重打包方法。本方法包括:1)通过不修改目标Android应用代码的方式,向目标应用注入外部代码;所述外部代码在目标应用启动时将被执行,用于加载并运行目标应用的原始代码,以及加载Hook框架与重打包插件;所述重打包插件用于利用加载的Hook框架动态修改设定函数的函数实现、函数调用时的参数或函数返回时的结果,实现目标应用行为和逻辑的改变;2)对修改后的目标应用进行重新签名,得到重打包后的Android应用。本发明适用于加壳与非加壳Android应用,对于加壳应用,本发明不要求脱壳,也不需要修复脱壳后的代码,规避了传统方案的缺陷。
技术领域
本发明涉及一种Android非侵入式应用重打包方法,尤其涉及一种支持加壳应用的Android非侵入式应用重打包方法,属于计算机应用技术领域。
背景技术
Android应用重打包技术是Android生态中一类常见且重要的安全技术,该技术可以修改已有应用的代码与逻辑,从而生成一个新的应用。该技术既被用于应用破解、广告插入以及恶意代码注入等行为,也被用于漏洞修补、应用分析、应用保护等工作。
Android应用大多以Java代码编写主要逻辑,修改由Java代码生成的dex文件是Android应用重打包技术的核心。主流的应用重打包方法是将dex中的Dalvik字节码反编译为Smali代码,修改Smali代码,然后重新编译生成新的dex文件,最后对应用进行重新签名。除此以外,也可以将dex反编译为Java或Jimple语言,修改后再重新编译dex并签名。
为了对抗反编译和重打包,出现了Android加壳技术。常见的加壳方式是将原有代码拆分加密,在应用运行过程中还原再执行。除此以外,存在壳将部分Dalvik字节码转换为二进制代码,或转换为自定义虚拟机的指令。
为了重打包加壳后的应用,目前的方法是先脱壳,还原原始代码,然后使用传统应用重打包技术,修改并编译生成新的应用。然而,这种方法的局限在于需要正确的脱壳方法,能完整提取原有代码,并能修复脱壳后的代码,保证应用能够正常运行。但是脱壳本身是一项复杂的工作,且脱壳后的代码通常不能直接正常运行,修复代码同样是一项复杂的工作。
发明内容
基于上述内容,本发明提供了一种Android非侵入式应用重打包方法,通过不修改原有应用代码的代码注入方式,向目标应用注入Hook框架,动态修改应用代码行为,实现对应用的重打包。本发明适用于加壳Android应用与非加壳Android应用,具备通用性。对于加壳应用,本发明不要求脱壳,也不需要修复脱壳后的代码,规避了传统方案的缺陷。
为了实现上述目的,本发明采用以下技术方案:
本发明提供了一种Android非侵入式应用重打包方法,包括:
1)利用不修改原有应用代码的方式,向目标应用注入外部代码。Android应用以zip压缩包的形式存在,压缩包内包含Java编译生成的dex(Dalvik可执行文件)和C/C++编译生成的so(共享库)。不修改原有应用代码是指应用内部的dex和so文件可以被移动和重命名,但不会被修改,保持代码内容不发生改变。注入外部代码是指向目标应用的压缩包内放入新的dex或so文件,并且当目标应用运行时,外部代码会被运行,且原有代码正常运行。注入的外部代码目的是加载Hook框架与重打包插件。Hook框架与重打包插件可以作为外部代码的一部分,也可以作为单独的资源文件或网络文件,由外部代码动态加载。但外部代码的内容需要满足一定的条件:1)和原应用的逻辑相关,才能在注入后被应用运行;2)会执行原应用的部分逻辑,恢复应用的上下文环境,让应用可以正常执行。
外部代码在运行过程中,可以通过动态加载的方式,加载更多dex与so文件(Android有相关API可以动态加载dex或so文件;这里的dex或so可以是任意文件,包括Hook框架和重打包插件)。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京大学,未经北京大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201811118360.6/2.html,转载请声明来源钻瓜专利网。





