工具介绍
apktool 将apk安装包解析成能看懂的资源文件
dex2jar 将classes.dex打成jar包
jd-gui 查看源码
下载链接:https://download.csdn.net/download/zyy_give/10666265
解压后得到下图文件
1、反编译流程
打开终端输入如下命令加文件移动到/usr/local/bin目录下:
sudo mv apktool /usr/local/bin
sudo mv apktool.jar /usr/local/bin
sudo mv aapt /usr/local/bin
使用命令chmod +x 分别对apktool和apktool.jar文件进行提权:
cd /usr/local/bin
sudo chmod a+x apktool
sudo chmod a+x apktool.jar
测试是否成功,终端输入apktool,若成功,如下图
解析apk
命令行添加-s,表示禁止将dex文件解码成smali
apktool d -s xxx.apk
2、使用dex2jar工具把classes.dex文件转化成.jar文件
进入到你解压后的dex2jar文件夹下
cd /Users/zhaoziliang/fanbianyi/dex2jar-2.0
如提示Permission denied说明权限不够,使用命令行sudo chmod -R 777 /Users/zhaoziliang/fanbianyi/dex2jar-2.0打开权限
把classes.dex文件复制到解压后的dex2jar文件夹下,终端执行命令sh d2j-dex2jar.sh classes.dex
sh d2j-dex2jar.sh classes.dex
执行完毕后,会在文件夹下生成一个.jar文件,里面就是java源码:
3、使用JD-GUI软件查看jar包下的java源码
直接打开JD-GUI:双击jd-gui-1.4.0.jar
将反编译出来的java源码拖进去就成功了
修改
修改对应的app名字 icon
重新编译 重新打包新的apk
apktool b app -o other.apk(app 指需要打包的文件夹,-o other.apk 表示生产新文件),重新打包 apk
签名
生成keystore文件
keytool -genkey -alias abc.keystore -keyalg RSA -validity 20000 -keystore abc.keystore,执行该命令会生成一个abc.keystore证书文件。
对重打包之后的apk进行签名
jarsigner -verbose -keystore abc.keystore -signedjar 签名后的名字.apk 签名前的名字.apk abc.keystore