美文网首页
Android 反编译(MAC 下Apktool,dex2Jar

Android 反编译(MAC 下Apktool,dex2Jar

作者: 与猎犬赛跑的野兔 | 来源:发表于2019-08-26 20:35 被阅读0次

一、Apktool 安装

1. 下载

https://ibotpeaches.github.io/Apktool/install/

安装教程

2.安装

  1. 右键“wrapper script” ,链接另存为,名字为“apktool”,注意不要有扩展名,这个类似于windows下的bat文件

  2. 下载 apktool-2xxx.jar

  3. 重命名为“apktool.jar”

  4. 把 apktool.jar 和 apktool 移到 /usr/local/bin
    4.1 Finder 访达 /usr/local/bin
    4.2 如果显示“No such file” 或 “文件不存在”,可以 先访达到 /usr/local,然后新建一个bin文件夹即可。

  5. 在启动台中,类似于注册或者授权输入:
    cd /usr/local/bin
    chmod +x apktool
    chmod +x apktool.jar
    注意第一步必须,不然会提示找不到apktool 和 apktool.jar

  6. 在启动台中,直接输入 apktool ,查看是否展示相关信息,有则配置成功。

二、dex2jar

https://sourceforge.net/projects/dex2jar/

点击绿色Download

这个就下载解压即可,但需要注意一点,需要类似于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 再打开即可。

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

生成文件夹结构
直接解压和apktool解析生成的不同
原文链接: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包

x_x

这里需要主要 控制台要进入 dex2jar 文件夹下才运行上述代码,且,最后会有一个错误报告,直接忽视就好。。。

3. 打开 JD-GUI ,将 jar 拖拽到 JD-GUI 区域就可以看代码了(该代码是混淆之后的)

涉及公司代码就不放出来了,反正是混淆过后的,也没啥用 X_X

相关文章

网友评论

      本文标题:Android 反编译(MAC 下Apktool,dex2Jar

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