mac环境反编译apk及重打包

使用工具

  • apktool 将apk安装包解析成能看懂的资源文件
  • dex2jar 将classes.dex打成jar包
  • jd-gui 查看源码
一、首先参照 官网 安装apktool

在这里插入图片描述
1)右键链接保存脚本文件命名为apktool(txt格式)
2)点击链接下载 apktool 最新jar包
3)将 2)中下载的jar重命名为apktool.jar
4)将下载好的apktool和apktool.jar文件复制到/usr/local/bin文件目录下,如果没有此目录就创建一个

sudo mkdir bin //创建,然后输入权限密码
ls //查看已经有了此目录,看看是否创建
cp //复制命令

5)执行命令 chomod +x apktool , chomod +x apktool.jar(需要先进入bin目录下执行这两条命令)

cd /usr/local/bin //进入bin目录的命令
chmod +x filename //给文件执行的权限
./FileName // 检验文件是否已经可执行

6)执行命令 apktool,如果出现下图结果即说明apktool安装好了
在这里插入图片描述

二、反编译apk

进入要反编译的apk所在的目录下,执行命令apktool d xxx.apk ,出现如下结果即反编译成功了
在这里插入图片描述
此时会发现在该文件目录下会多出一个与apk名字一样的文件夹,该文件夹内包含:AndroidManifest.xml,res文件夹,smali文件夹。其中smali文件夹内就是每个java类所对应的smali文件。

三、修改apk内容

资源和xml文件好改,smail文件有自己的规则看得懂也可以直接改。

这里有第二种方法可以查看源代码,在上述命令行添加 -s 生成classes.dex文件,表示禁止将dex文件解码成smali

apktool d -s -f xxx.apk

生成classes.dex文件:
在这里插入图片描述
再使用dex2jar工具把classes.dex文件转化成.jar文件:

进入到解压后的dex2jar文件夹下,如:

cd Downloads/dex2jar-2.0

把classes.dex文件复制到解压后的dex2jar文件夹下,终端执行命令

sh d2j-dex2jar.sh classes.dex

执行完毕后,会在文件夹下生成一个.jar文件,里面就是java源码

最后使用JD-GUI软件查看jar包下的java源码
1.下载并安装jd-gui
2. 打开安装好的JD-GUI,直接把第二步生成的.jar文件拖进去,就能看到反编译出来的java源码了

四、重打包apk

执行命令apktool b 反编译的文件名,如下所示,即重新打包成功。此时会在反编译得到的文件夹内多出dist文件夹,重新打包的apk即在该文件夹内,apk处于未签名状态。。

五、重新生成签名文件(待尝试)
1

执行命令:keytool -genkey -keystore cloudbeacon.keystore -keyalg RSA -validity 10000 -alias cloudbeacon

该命令会重新生成签名文件,默认保存在与原apk同级的文件夹下。

2

jarsigner -verbose -keystore [keystore路径] -signedjar [签名后文件存放路径] [未签名的文件路径] [keystore别名]

由于你的keystore与原开发者的keystore不同,所以签名后的apk与原apk的签名肯定不同。但可以在设备上先卸载原来的app,再重新安装新的apk。

参考:
Mac 反编译及重新打包
mac环境下Android 反编译
mac下apk的反编译、修改源码、重新打包

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值