Mac下Android反编译初探

工作第四天,被要求学习逆向开发方面的知识,于是先将自己之前写的未经混淆的apk反编译,记录之。

感谢该博文提供的思路

1. 工具准备

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字样即成功。


Mac下Android反编译初探_第2张图片
反编译apk

在这里可以查看一些资源文件

Mac下Android反编译初探_第3张图片
查看资源文件

将apk以普通解压的方式解压出来,找到其中的classes.dex文件,


Mac下Android反编译初探_第4张图片
classes.dex位置

将其复制到dex2jar目录,使用终端进入dex2jar目录并执行如下命令。

sh dex2jar.sh classes.dex  

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

终端下操作
Mac下Android反编译初探_第5张图片
生成的classes_dex2jar.jar

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

Mac下Android反编译初探_第6张图片
阅读源码

你可能感兴趣的:(Mac下Android反编译初探)