安卓反编译学习

一.安卓反编译,编译了什么东西

要说安卓反编译,就先得看看安卓编译,如图.安卓反编译学习_第1张图片

从上图可以看出,安卓的编译概况来说就是把资源Java源码整合到了一起。

那么反编译,就是为了将Res资源和java源码从.apk中反向获取。


二.为何要反编译呢?

为了学习,为了学习,为了学习。

当你玩到一个app,觉得里面的动画非常狂拽酷炫你对它的实现方式很很感兴趣,或者你对一个app功能的实现非常感兴趣,这个时候就可以反编译,学习了解一下了。


三.怎么操作?

这是最关键的部分。

(1.)反编译获取Res资源(例如图片、布局等等)

工具: apktool

工具下载地址:下载

操作方式:

1.解压.apktool.zip文件,然后将需要反编译的.apk文件放在解压后的文件中,如图。

安卓反编译学习_第2张图片


2.按住shift+鼠标左键,点击在此处打开命令窗口。


3.在命令行窗口中输入如下命令:apktool.bat d -f  test.apk  test 

apktool.bat   d  -f    [apk文件 ]   [输出文件夹]

安卓反编译学习_第3张图片

安卓反编译学习_第4张图片

安卓反编译学习_第5张图片

(2).反编译获取Java源码

工具:dex2jar

工具下载地址:下载

操作方式:

1.将要反编译的app后缀名改为.zip或.rar。(eg.test.apk---->test.zip)

2.解压test.zip得到其中的classes.dex文件。

3.将classes.dex放到dex2jar-0.0.9.15 解压出来文件夹内,如图。

安卓反编译学习_第6张图片

4.按住shift+鼠标左键,点击在此处打开命令窗口。

5.输入命令dex2jar.bat   classes.dex

6.得到classes_dex2jar文件

安卓反编译学习_第7张图片

(3).利用工具查看反编译得到的java源码

工具:jd-gui

工具下载地址:下载

操作方式:

1.解压后用打开jd-gui.exe.然后把上面的classes_dex2.jar文件直接扔进去就可以看到源码的。显然源码是经过混淆了的。

安卓反编译学习_第8张图片





你可能感兴趣的:(安卓反编译学习)