Mac下Android反编译初探

1. 工具准备

工具

需要的三件套,下载请戳

  1. AndroidCrackTool 用于反编译apk文件
    与直接解压apk不同,用该工具获得的文件资源可以直接打开阅读,而直接解压得到的是字节码。
  2. dex2jar 用于将.dex文件转为jar文件
    传统的Java程序经过编译,生成Java字节码保存在class文件中,Java虚拟机通过解码class文件中的内容来运行程序。而Dalvik虚拟机运行的是Davik字节码,所有的Davik字节码由Java字节码转换而来,并被打包到一个DEX(Dalvik Executable)可执行文件中,Dalvik虚拟机通过解释DEX文件来执行这些字节码。
  3. jd-gui 用于阅读源码

2. 开始工作

使用AndroidCrackTool反编译apk,设置好目录点击执行按钮,出现end字样即成功。
反编译apk
在这里可以查看一些资源文件

查看资源文件
将apk以普通解压的方式解压出来,找到其中的classes.dex文件,
classes.dex位置
将其复制到dex2jar目录,使用终端进入dex2jar目录并执行如下命令。

1
sh dex2jar.sh classes.dex

可以看到在dex2jar目录下生成了classes_dex2jar.jar的文件。

终端下操作

生成的classes_dex2jar.jar
使用 jd-gui打开classes_dex2jar.jar即可看到源码,可以看到我的apk并没有混淆,所以名字都是正常的命名,经过混淆的名字大都是些字母。

阅读源码

查看评论