[tool] apk反编译工具 jadx 使用

#[tool] apk反编译工具 jadx 使用
##一.下载
1.工具下载
下载地址: https://bintray.com/skylot/jadx/releases#files(但是可能不是最新的)
2.源码下载
下载地址: https://github.com/skylot/jadx
##二. 源码编译
下载下来之后是源码后解压,进入到目录中执行命令:

git clone https://github.com/skylot/jadx.git
cd jadx
./gradlew dist


主要是拉下来jadx的git主工程,然后跑对应的gradle task。之后会生成运行脚本,多出了build目录:

这里写图片描述
生成了可运行的脚本 jadx,jadx-gui等:

这里写图片描述

##三. 使用

  1. 可以将build下的jadx文件夹拷贝至别处使用,运行jadx-gui:
chengang@chengang-dev:~/dev_tools/jadx-master/build/jadx/bin$ ./jadx-gui

gui打开后可以选择需要反编译的apk:

这里写图片描述

找到apk点击确定之后反编译需要一定时间,耐心等待,之后即可以显示反编译后的代码,如下是反编译豌豆荚apk后的结果:

这里写图片描述

  1. 同样可以使用命令直接反编译目的地址的apk:
./jadx-gui ~/下载/Wandoujia_224660_web_inner_referral_binded.apk 

##三. 优点:

  1. 方便的搜索功能(支持全局类,方法,text查询):
    这里写图片描述

  2. 可以导出gradle工程,使用Itellij或AS看代码
    File->save as gradle project 选择一个新文件夹(最好新建空文件夹,生成的文件在选择的文件夹中)
    生成后即可用IDE查看代码了:
    这里写图片描述

##四. 出错处理

chengang@mi:~/dev_tools/jadx-master/build/jadx/bin$ ./jadx-gui
Exception in thread "main" java.lang.UnsupportedClassVersionError: jadx/gui/JadxGUI : Unsupported major.minor version 52.0
	at java.lang.ClassLoader.defineClass1(Native Method)
	at java.lang.ClassLoader.defineClass(ClassLoader.java:803)
	at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142)
	at java.net.URLClassLoader.defineClass(URLClassLoader.java:449)
	at java.net.URLClassLoader.access$100(URLClassLoader.java:71)
	at java.net.URLClassLoader$1.run(URLClassLoader.java:361)
	at java.net.URLClassLoader$1.run(URLClassLoader.java:355)
	at java.security.AccessController.doPrivileged(Native Method)
	at java.net.URLClassLoader.findClass(URLClassLoader.java:354)
	at java.lang.ClassLoader.loadClass(ClassLoader.java:425)
	at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308)
	at java.lang.ClassLoader.loadClass(ClassLoader.java:358)
	at sun.launcher.LauncherHelper.checkAndLoadMain(LauncherHelper.java:482)

jdk版本不对,jdk版本改为1.8就ok了

猜你喜欢

转载自blog.csdn.net/TaylorPotter/article/details/79110244