使用部分替换的方式绕过apk无法重打包的问题

反编译app之后什么都没动就没法重打包的情况是很常见的,
其多发于反编译加壳之后的app(资源文件被混淆了)
或者res目录下面有特殊的资源文件夹,一般是由编译器的插件生成的,编译器可以编译但是apktool不认识导致无法回编译(常见的有res下面navigation这个目录)
或者奇奇怪怪的原因导致无法重打包

加壳之后的app无法重打包

在这里插入图片描述

出现apktool无法识别的资源文件夹

在这里插入图片描述

采用部分替换的方式绕过这些问题

什么叫部分替换?
就是把apk文件当成压缩包来处理,将里面的文件拿出来修改之后再放回去重新签名,这样就绕过了重打包这个环节

具体方法

这里介绍几种情况:

因为无法识别的资源文件夹导致无法重打包:可以使用apktool采用忽略res资源文件的方式进行反编译,这样得到的项目文件是可以重打包回去的。
但是因为忽略了res文件会导致manifest.xml是没有反编译的,所以无法修改清单文件

所以只需要修改dex时可以将dex单独拿出来进行修改,修改完之后使用DexFixer等工具修复一下替换原apk里面的dex,再签名就可以了

而对于加壳的app,由于我们需要修改manifest文件里面的入口点进行脱壳修复。所以采用忽略res的方法是行不通了

这时可以使用np管理器(这个免费)或者mt管理器对apk直接编辑

因为这些软件可以直接以压缩包的形式对apk进行修改(包括dex和manifest),所以网上很多脱壳修复教程都是在手机端上面完成的

最后推荐一下在pc端上面比较好用的反编译和重打包工具:vscode平台上面的apklab(对于新手或者嫌cmd麻烦的人可以省很多事)

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值