当前位置: 首页 > 专利查询>北京大学专利>正文

一种Android非侵入式应用重打包方法技术

技术编号:20483877 阅读:89 留言:0更新日期:2019-03-02 18:34
本发明专利技术公开一种Android非侵入式应用重打包方法。本方法包括:1)通过不修改目标Android应用代码的方式,向目标应用注入外部代码;所述外部代码在目标应用启动时将被执行,用于加载并运行目标应用的原始代码,以及加载Hook框架与重打包插件;所述重打包插件用于利用加载的Hook框架动态修改设定函数的函数实现、函数调用时的参数或函数返回时的结果,实现目标应用行为和逻辑的改变;2)对修改后的目标应用进行重新签名,得到重打包后的Android应用。本发明专利技术适用于加壳与非加壳Android应用,对于加壳应用,本发明专利技术不要求脱壳,也不需要修复脱壳后的代码,规避了传统方案的缺陷。

【技术实现步骤摘要】
一种Android非侵入式应用重打包方法
本专利技术涉及一种Android非侵入式应用重打包方法,尤其涉及一种支持加壳应用的Android非侵入式应用重打包方法,属于计算机应用

技术介绍
Android应用重打包技术是Android生态中一类常见且重要的安全技术,该技术可以修改已有应用的代码与逻辑,从而生成一个新的应用。该技术既被用于应用破解、广告插入以及恶意代码注入等行为,也被用于漏洞修补、应用分析、应用保护等工作。Android应用大多以Java代码编写主要逻辑,修改由Java代码生成的dex文件是Android应用重打包技术的核心。主流的应用重打包方法是将dex中的Dalvik字节码反编译为Smali代码,修改Smali代码,然后重新编译生成新的dex文件,最后对应用进行重新签名。除此以外,也可以将dex反编译为Java或Jimple语言,修改后再重新编译dex并签名。为了对抗反编译和重打包,出现了Android加壳技术。常见的加壳方式是将原有代码拆分加密,在应用运行过程中还原再执行。除此以外,存在壳将部分Dalvik字节码转换为二进制代码,或转换为自定义虚拟机的指令本文档来自技高网...

【技术保护点】
1.一种Android非侵入式应用重打包方法,其步骤包括:1)通过不修改目标Android应用代码的方式,向目标Android应用注入外部代码;所述外部代码在所述目标Android应用启动时将被执行,用于加载并运行所述目标Android应用的原始代码,以及加载Hook框架与重打包插件;所述重打包插件用于利用加载的Hook框架动态修改设定函数的函数实现、函数调用时的参数或函数返回时的结果,实现目标Android应用行为和逻辑的改变;2)对修改后的目标Android应用进行重新签名,得到重打包后的Android应用。

【技术特征摘要】
1.一种Android非侵入式应用重打包方法,其步骤包括:1)通过不修改目标Android应用代码的方式,向目标Android应用注入外部代码;所述外部代码在所述目标Android应用启动时将被执行,用于加载并运行所述目标Android应用的原始代码,以及加载Hook框架与重打包插件;所述重打包插件用于利用加载的Hook框架动态修改设定函数的函数实现、函数调用时的参数或函数返回时的结果,实现目标Android应用行为和逻辑的改变;2)对修改后的目标Android应用进行重新签名,得到重打包后的Android应用。2.如权利要求1所述的方法,其特征在于,所述Hook框架、重打包插件为所述外部代码的一部分。3.如权利要求1所述的方法,其特征在于,所述Hook框架、重打包插件为单独的资源文件或网络文件,由所述外部代码动态加载。4.如权利要求1或2或3所述的方法,其特征在于,所述目标Android应用为加壳的Android应用或未加壳的Android应用。5.如权利要求1所述的方法,其特征在于,向目标Android应用注入外部代码的方法为:将外部代码作为所述目标Android应用的主代码classes.dex,将所述目标Android应用的原主代码文件重命名或移动;所述外部代码包含所述目标Android应用的AndroidManifest.xml中描述的Application子类。6.如权利要求1所述的方法,其特征在于,利用MultiDex机制向目标Android应用注入外部代码,其方法为:将外部代码作为一个classes(N+1).dex放入...

【专利技术属性】
技术研发人员:韩心慧黎桐辛简容武新逢
申请(专利权)人:北京大学
类型:发明
国别省市:北京,11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1