一、Apktool 安装
1. 下载
https://ibotpeaches.github.io/Apktool/install/
2.安装
右键“wrapper script” ,链接另存为,名字为“apktool”,注意不要有扩展名,这个类似于windows下的bat文件
下载 apktool-2xxx.jar
重命名为“apktool.jar”
把 apktool.jar 和 apktool 移到 /usr/local/bin
4.1 Finder 访达 /usr/local/bin
4.2 如果显示“No such file” 或 “文件不存在”,可以 先访达到 /usr/local,然后新建一个bin文件夹即可。在启动台中,类似于注册或者授权输入:
cd /usr/local/bin
chmod +x apktool
chmod +x apktool.jar
注意第一步必须,不然会提示找不到apktool 和 apktool.jar在启动台中,直接输入 apktool ,查看是否展示相关信息,有则配置成功。
二、dex2jar
https://sourceforge.net/projects/dex2jar/
这个就下载解压即可,但需要注意一点,需要类似于apktool授权一样,在控制台中调用 chmod。
常见问题
huangweideMacBook-Pro:dex2jar-2.0 huangwei$ d2j-dex2jar.sh classes.dex
-bash: d2j-dex2jar.sh: command not found
少了 sh
huangweideMacBook-Pro:dex2jar-2.0 huangwei$ sh d2j-dex2jar.sh classes.dex
d2j-dex2jar.sh: line 36: ./d2j_invoke.sh: Permission denied
没有授权
三、JD-GUI
http://java-decompiler.github.io/
MAC是直接下载之后就可以解压了。这个点进去有一个 .app 。注意直接打开不行,是因为苹果系统的原因,在系统偏好设置里面能改,不想修改的话,在右键后,按住 Control 再打开即可。
四、反编译流程
1. 使用apktool 将APK 文件解析出来,这样能获取到 /res 目录下的资源文件(如果不需要直接掠过)。
在控制台中输入 apktool d xxx.apk
(注意,如果这样输入的话, xxx.apk 要在控制台的当前目录下,想偷懒就直接把 xxx.apk 拖到这里来,不过,这样生成的文件就会在当前文件夹下)
其中d是decode的意思,表示我们要对Demo.apk这个文件进行解码。那除了这个基本用法之外,我们还可以再加上一些附加参数来控制decode的更多行为:
· f 如果目标文件夹已存在,则强制删除现有文件夹(默认如果目标文件夹已存在,则解码失败)。
·o 指定解码目标文件夹的名称(默认使用APK文件的名字来命名目标文件夹。
·s 不反编译dex文件,也就是说classes.dex文件会被保留(默认会将dex文件解码成smali文件)。
·r 不反编译资源文件,也就是说resources.arsc文件会被保留(默认会将resources.arsc解码成具体的资源文件)。
常用用法就这么多了,那么上述命令的执行结果如下图所示:
原文链接:https://blog.csdn.net/u013082948/article/details/52195514
原文链接:https://blog.csdn.net/fengyuzhengfan/article/details/80286704
2. 使用解压软件将APK解压,得到若干个 classes.dex ,然后用dex2Jar 将 classes.dex 解析成 jar 包。
将直接解压的文件中的classes.dex 文件拖到 dex2jar 文件夹中,然后在控制台里面运行:
sh d2j-dex2jar.sh classes2.dex
每个dex文件生成一个jar包
这里需要主要 控制台要进入 dex2jar 文件夹下才运行上述代码,且,最后会有一个错误报告,直接忽视就好。。。
3. 打开 JD-GUI ,将 jar 拖拽到 JD-GUI 区域就可以看代码了(该代码是混淆之后的)
涉及公司代码就不放出来了,反正是混淆过后的,也没啥用 X_X