美文网首页
apktool 反编译app 再重新编译

apktool 反编译app 再重新编译

作者: 芗芗_ | 来源:发表于2018-02-05 14:11 被阅读0次

环境:mac

安装工具:

1.apktool
2.dex2jar
3.jd-gui

1.反编译xxx.apk


apktool d xxx.apk

反编译出来就是apk的源文件,像下面这样:

这里面要修改代码的话只能看smali文件 看懂还是比较难 毕竟是编译后文件 就像js压缩后的文件一样 具体的逻辑都看不懂 所以我门需要知道java源文件

2.dex2jar 解压出java文件

修改xxx.apk 为 .zip/.rar 文件 然后解压 这时候会得到下边这些:

这里的classes.dex 就是我门需要的

把classes.dex 放到下载好的dex2jar 目录下 运行:

sudo sh d2j-dex2jar.sh classes.dex

得到 classes_dex2jar.jar

用 jd-gui就可以打开classes_dex2jar.jar 文件了

打开来 都是java代码

还存在的问题:

1.暂时还没有说直接修改java代码然后在转成dex的方法

2.其实就是java代码看起来方便些,找到自己要修改的地方,对应着去修改smali文件 然后保存后直接编译成apk

3.这需要一部分smali基础 作为前端小白 看了下基本的语法 还是可以改的

注意:在dex2jar目录下执行sudo sh d2j-dex2jar.sh classes.dex时报错如下 d2j-dex2jar.sh: 36: d2j-dex2jar.sh: ./d2j_invoke.sh: Permission denied

执行:sudo chmod +x d2j_invoke.sh

把xxx.apk

拿到jar文件 用jd-gui打开

3.修改smali文件

1C0A6D72-D1F5-44F5-BA20-759267E519C5.png

4.编译成 apk: apktool b xxx

5.生成签名

keytool -genkey -alias xxx.keystore -keyalg RSA -validity 20000 -keystore xxx.keystore

6.用签名来signapk

jarsigner -verbose -keystore xxx.keystore -signedjar xxx_signed.apk xxx.apk xxx.keystore

相关文章

网友评论

      本文标题:apktool 反编译app 再重新编译

      本文链接:https://www.haomeiwen.com/subject/dksfnxtx.html