System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind() 安卓应用的重打包方法及重打包工具技术_技高网

安卓应用的重打包方法及重打包工具技术

技术编号:41830053 阅读:8 留言:0更新日期:2024-06-27 18:15
本发明专利技术提供了一种安卓应用的重打包方法及重打包工具,包括:对安卓应用的原始APK包进行解压缩;获取原始目标SO文件,并为原始目标SO文件注入核心框架库依赖,得到目标SO文件;在解压缩后的原始APK包的assets目录下创建tweak目录;生成重定向文件,并将重定向文件打包进tweak目录;编译java插件,并生成java插件的插件字节码文件;其中,java插件包括签名修复插件;将编译好的java插件的插件字节码文件以及配置文件打包进tweak目录,生成重打包后的APK包;将重打包后的APK包进行签名和保存。本发明专利技术改善了反编译失败或得到的源码不完整、源码调整不灵活、依赖第三方hook库以及重打包后运行闪退的问题。

【技术实现步骤摘要】

本专利技术涉及软件设计开发,尤其是涉及一种安卓应用的重打包方法及重打包工具


技术介绍

1、现有技术中,对某个app进行重打包时,主要是通过第三方打包工具反编译整个app为源码文件,之后插入逆向分析代码,打印出关键点日志或者更改某个功能点的执行流程,完成之后在用第三方工具将源代码编译回正常app,典型的方案包括:反编译apk:主要用到的工具是apktool,将一个apk格式的文件反编译为各种原始的资源文件、配置文件、java源文件。编辑apk:主要用到的工具是一些源码浏览分析编辑工具,比如jd-gui,dex2jar等,同时还可能用到一些hook库,比如xposed、frida等。根据逆向分析需要,编辑源文件。回编译apk:将更改后的资源文件、配置文件、源文件等再通过apktool回编译成apk文件,需要用到apksigner签名工具对apk包重签名,之后重打包即可。但是,现有技术会存在反编译失败或得到的源码不完整、源码调整不灵活、依赖第三方hook库以及重打包后运行闪退等问题。


技术实现思路

1、有鉴于此,本专利技术的目的在于提供一种安卓应用的重打包方法及重打包工具,以改善了反编译失败或得到的源码不完整、源码调整不灵活、依赖第三方hook库以及重打包后运行闪退的问题。

2、为了实现上述目的,本专利技术实施例采用的技术方案如下:

3、第一方面,本专利技术实施例提供了一种安卓应用的重打包方法,该方法应用于重打包工具,重打包工具中内置hook库,该方法包括:对安卓应用的原始apk包进行解压缩,得到解压缩后的原始apk包;获取原始目标so文件,并为原始目标so文件注入核心框架库依赖,得到目标so文件;在解压缩后的原始apk包的assets目录下创建tweak目录;生成重定向文件,并将重定向文件打包进tweak目录;编译java插件,并生成java插件的插件字节码文件;其中,java插件包括签名修复插件,签名修复插件用于修复重打包的apk包的签名信息;将编译好的java插件的插件字节码文件以及配置文件打包进tweak目录,生成重打包后的apk包;将重打包后的apk包进行签名和保存。

4、在一种实施方式中,对安卓应用的原始apk包进行解压缩之后,上述方法还包括:对解压缩后的原始apk包的命令配置参数进行调整以及修正arm指令中的错误配置。

5、在一种实施方式中,获取原始目标so文件之后,上述方法还包括:清理应用运行过程中不使用的文件以及目录。

6、在一种实施方式中,为原始目标so文件注入核心框架库依赖,得到目标so文件之后,上述方法还包括:基于目标so文件替换原始目标so文件,并将核心框架库打包进目标so文件的库目录中。

7、在一种实施方式中,生成重定向文件,并将重定向文件打包进tweak目录之后,上述方法还包括:将原始apk包、原始签名证书和原始目标so文件打包进tweak目录;获取原始签名证书的指纹数据,并基于指纹数据生成开发文件,并将开发文件打包进tweak目录。

8、第二方面,本专利技术实施例提供了一种重打包工具,重打包工具中内置hook库,包括:解压缩模块,用于对安卓应用的原始apk包进行解压缩,得到解压缩后的原始apk包;so文件获取模块,用于获取原始目标so文件,并为原始目标so文件注入核心框架库依赖,得到目标so文件;目录创建模块,用于在解压缩后的原始apk包的assets目录下创建tweak目录;文件生成模块,用于生成重定向文件,并将重定向文件打包进tweak目录;插件编译模块,用于编译java插件,并生成java插件的插件字节码文件;其中,java插件包括签名修复插件,签名修复插件用于修复重打包的apk包的签名信息;重打包模块,用于将编译好的java插件的插件字节码文件以及配置文件打包进tweak目录,生成重打包后的apk包;签名模块,用于将重打包后的apk包进行签名和保存。

9、在一种实施方式中,上述装置还包括:参数调整模块,用于对解压缩后的原始apk包的命令配置参数进行调整以及修正arm指令中的错误配置。

10、在一种实施方式中,上述装置还包括:清理模块,用于清理应用运行过程中不使用的文件以及目录。

11、在一种实施方式中,上述装置还包括:文件替换模块,用于基于目标so文件替换原始目标so文件,并将核心框架库打包进目标so文件的库目录中。

12、在一种实施方式中,上述装置还包括:开发文件生成模块,用于将原始apk包、原始签名证书和原始目标so文件打包进tweak目录;获取原始签名证书的指纹数据,并基于指纹数据生成开发文件,并将开发文件打包进所述tweak目录。

13、本专利技术实施例带来了以下有益效果:

14、本专利技术实施例提供的上述安卓应用的重打包方法及重打包工具,该方法应用于重打包工具,重打包工具中内置hook库,包括:对安卓应用的原始apk包进行解压缩,得到解压缩后的原始apk包;获取原始目标so文件,并为原始目标so文件注入核心框架库依赖,得到目标so文件;在解压缩后的原始apk包的assets目录下创建tweak目录;生成重定向文件,并将重定向文件打包进tweak目录;编译java插件,并生成java插件的插件字节码文件;其中,java插件包括签名修复插件,签名修复插件用于修复重打包的apk包的签名信息;将编译好的java插件的插件字节码文件以及配置文件打包进tweak目录,生成重打包后的apk包;将重打包后的apk包进行签名和保存。上述方法无需反编译apk,仅需解压缩apk包即可,从而改善了反编译失败或得到的源码不完整的问题;同时,在重打包过程中不对原始文件进行修改,以java插件的形式对源码进行修改,再通过框架动态加载java插件,从而最大程度保证了原始app的完整性,提高了源码调整的灵活性;此外,重打包工具中内置hook库,从而改善了依赖第三方hook库的问题,效率高更高,且无需手机有root权限,在正常手机上即可运行,降低了重打包后被检测到的风险;最后签名修复插件可以自动修复重打包的apk包的签名信息,无需每个app在重打包后都要手动修复签名,提升了重打包方法的易用性,改善了因签名变化导致的重打包后app运行闪退的问题。

15、本专利技术的其他特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本专利技术而了解。本专利技术的目的和其他优点在说明书、权利要求书以及附图中所特别指出的结构来实现和获得。

16、为使本专利技术的上述目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合所附附图,作详细说明如下。

本文档来自技高网...

【技术保护点】

1.一种安卓应用的重打包方法,其特征在于,所述方法应用于重打包工具,所述重打包工具中内置hook库,所述方法包括:

2.根据权利要求1所述的方法,其特征在于,对安卓应用的原始APK包进行解压缩之后,所述方法还包括:

3.根据权利要求1所述的方法,其特征在于,获取原始目标SO文件之后,所述方法还包括:

4.根据权利要求1所述的方法,其特征在于,为所述原始目标SO文件注入核心框架库依赖,得到目标SO文件之后,所述方法还包括:

5.根据权利要求1所述的方法,其特征在于,生成重定向文件,并将所述重定向文件打包进所述tweak目录之后,所述方法还包括:

6.一种重打包工具,其特征在于,所述重打包工具中内置hook库,包括:

7.根据权利要求6所述的重打包工具,其特征在于,还包括:

8.根据权利要求6所述的重打包工具,其特征在于,还包括:

9.根据权利要求6所述的重打包工具,其特征在于,还包括:文件替换模块,用于基于所述目标SO文件替换所述原始目标SO文件,并将所述核心框架库打包进所述目标SO文件的库目录中。

10.根据权利要求6所述的重打包工具,其特征在于,还包括:开发文件生成模块,用于将原始APK包、原始签名证书和所述原始目标SO文件打包进所述tweak目录;

...

【技术特征摘要】

1.一种安卓应用的重打包方法,其特征在于,所述方法应用于重打包工具,所述重打包工具中内置hook库,所述方法包括:

2.根据权利要求1所述的方法,其特征在于,对安卓应用的原始apk包进行解压缩之后,所述方法还包括:

3.根据权利要求1所述的方法,其特征在于,获取原始目标so文件之后,所述方法还包括:

4.根据权利要求1所述的方法,其特征在于,为所述原始目标so文件注入核心框架库依赖,得到目标so文件之后,所述方法还包括:

5.根据权利要求1所述的方法,其特征在于,生成重定向文件,并将所述重定向文件打包进所述tweak目录之后,所述方法...

【专利技术属性】
技术研发人员:廖国宝随飞
申请(专利权)人:苏州创旅天下信息技术有限公司
类型:发明
国别省市:

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

1