Android反编译之jadx

技术是一个需要不断学习和积累的过程,除了研究底层源码以外,有时候借鉴别人的代码也是学习的一部分;今天介绍一款好用的反编译软件----jadx;记录自己的学习历程;

首先,我找到了dex2jar、apktool、jd-gui;这三种配合使用也可以完成反编译;但是步骤繁琐,使用的工具也麻烦;

而jadx只需要一步到位,而且图形化界面,找代码的话也很方便。

安装

jadx在github上开源了,所以我们可以直接去下载了

https://github.com/skylot/jadx

Android反编译之jadx_第1张图片

点击进行下载,也给大家准备了现成的,大家可以自行下载

https://download.csdn.net/download/upuprita/11060376

下载完解压后可以看到如下目录

Android反编译之jadx_第2张图片

进入bin目录下,双击jadx-gui.bat即可运行

Android反编译之jadx_第3张图片

简单使用

单击左上角文件目录-->打开-->选择你要反编译的apk文件

Android反编译之jadx_第4张图片

即可看到对应的资源和大部分逻辑代码。

全局查找

Ctrl+Shift+F

Android反编译之jadx_第5张图片

查找类

jadx可以在应用它的类中跳转到他的主类中

按住Ctrl,鼠标移动到要跳转的类名字上,左键单击跳转

反混淆

我们在打包的时候都会对apk进行混淆,但是我们在阅读代码的时候被混淆后的代码的类名都是用abc命名的,这样使我们的阅读体验非常不好,所以,在这里,jadx还帮助我们反混淆,虽然有些名字反混淆后还是不规范,但是为我们理解代码提供了很大的帮助,操作办法:工具-->反混淆

反混淆前:

Android反编译之jadx_第6张图片

反混淆后:

Android反编译之jadx_第7张图片

导出Gradle文件

jadx中操作代码始终没有在编辑器中方便,jadx考虑到这一点,故提供了可以将项目导出成gradle文件:文件-->另存为Gradle项目,导出后

src目录下main下:

Android反编译之jadx_第8张图片

可以看到资源文件、清单列表、等大部分代码。

你可能感兴趣的:(Android)