apk 反编译

时间:2024-04-03 11:02:15

在实际开发中我们需要的一些图片资源,或者UI想用别人APP的,我们可以通过反编译来获取,因为一般代码是有加密的所以是获取不到的!
首先是反编译用到的工具

apktool —
下载地址:https://bitbucket.org/iBotPeaches/apktool/downloads
dex2jar —
下载地址:http://sourceforge.net/projects/dex2jar/files/
jd-gui — 下载地址:http://jd.benow.ca/

Apktool
这个工具主要是反编译资源文件的,当然他也可以反编译出来源码!只是它会把源码反编译到一个smali的文件夹里面,所有的文件都成了.smali文件,我们是没哟办法直接阅读的,所以一把反编译源码会用dex2jar
首先是下载,下载我们就不说了,一般下载下来是一个jar包
我们接下来打开命令行,进入到我们jar包所在的 apktool.jar 的文件夹内

cd F:\BaiduNetdiskDownload\反编译工具集
F:
apk 反编译
apk 反编译

这样我们就可以开始使用我们的apktool

输入命令行

apktool_2.4.0.jar d aaaa.apk

apk 反编译
这样就会在我们相应的文件下面生成一个和我们apk的名字一样的一个文件夹。
还有一种写法

java -jar apktool_2.4.0.jar d -f release-1.0.2.apk -o MMTS
其实大概都是一样,不一样的是这个会把反编译的文件存在MMTS文件夹里面,这MMTS就相当于我们自定义了一个文件夹,MMTS 这个文件夹的名字是可以随便取的。

这个时候我们就可以在我们反编译出来的文件中找我们想要的东西。

dex2jar

它是反编译apk得到Java源代码,当然这个由于签名和加固签名等一些防止反编译的一些操作,我们很少能拿到真正的代码。

首先将要反编译的APK后缀名改为.rar或者 .zip,并解压,得到其中的classes.dex文件;

然后把classes.dex放到我们解压的dex2jar的文件夹里面
apk 反编译

再下来和我们使用cmd命令进入到dex2jar的文件夹中 执行

d2j-dex2jar classes.dex

命令执行成功之后,在当前目录下就可以看到生成的 classes-dex2jar.jar 文件了
apk 反编译
反编译 classes.dex 得到 classes-dex2jar.jar 文件之后,就可以使用 jd-gui 工具将 class 文件反编译成 java 源代码了

jd-gui
这个就比较简单了
我们下载下来的jd-gui 如果是压缩包直接解压,要是得到的是 jd-gui.exe 我们直接启动 jd-gui.exe就可以了

要是我们得到的是jd-gui-1.5.1.jar ,是个jar包这个时候我们需要用cmd命令行来执行

java -jar jd-gui-1.5.1.jar
执行该命令行就可以

apk 反编译

这样我们家打开了jd-gui
然后点File - Open File 打开我们反编译的jar文件就Ok了。

这样我们的反编译就完成了。