今天来给大家分享一下关于如何反编译apk?今天要用到两个工具,那就是Apktool + dex2jar ,这两款工具如何下载、安装我就不说了,很简单的。而且这两款工具也支持Windows版本,我今天就以Kali Linux为主,因为Kali Linux是自带两款安卓反编译逆向工具的。
一、Apktool
利用 apktool 查看apk的xml文件、AndroidManifest.xml和图片等。
第一步:安卓反编译
[email protected]:~# apktool d /root/test.apk
第二步:查看反编译后的文件
由于我是随意网上下载的一个apk,我改名为了test.apk,安卓反编译成功后,会在test.apk同级目录下生成一个test文件夹。里面就是它的各种编译后的文件;每个文件夹是什么,大家可以自己去看。
二、dex2jar
经过上面的Apktool步骤,我们可以在文件夹test中发现一个文件夹smali,这里面其实就java代码,只不过不是jar形式的,关于如何如何查看dex里面的java代码?我们就要用上dex2jar工具,具体如下:
第一步:将 test.apk 修改为 test.zip;
第二步:解压 test.zip;
[email protected]:~# unzip test.zip
解压后应该有一些如下的主要文件,例如:AndroidManifest.xml、classes.dex、resources.arsc等。
第三步:安卓反编译
[email protected]:~# d2j-dex2jar /root/classes.dex
第四步:查看反编译后的文件
反编译成功后会在 classes.dex 同级目录下生成一个类似一个 classes-dex2jar.jar 的文件,说明反编译成功。
第五步:用“JD-GUI”工具查看 classes-dex2jar.jar 源代码。
总结:
一般情况下,我们都是把Apktool + dex2jar 这两个安卓反编译逆向工具组合使用,有些安卓APK可能反编译不了,因为也有安卓防反编译方法的。