【技术实现步骤摘要】
一种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
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。