[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等:
##三. 使用
- 可以将build下的jadx文件夹拷贝至别处使用,运行jadx-gui:
chengang@chengang-dev:~/dev_tools/jadx-master/build/jadx/bin$ ./jadx-gui
gui打开后可以选择需要反编译的apk:
找到apk点击确定之后反编译需要一定时间,耐心等待,之后即可以显示反编译后的代码,如下是反编译豌豆荚apk后的结果:
- 同样可以使用命令直接反编译目的地址的apk:
./jadx-gui ~/下载/Wandoujia_224660_web_inner_referral_binded.apk
##三. 优点:
-
方便的搜索功能(支持全局类,方法,text查询):
-
可以导出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了
作者:TaylorPotter
来源链接:https://blog.csdn.net/TaylorPotter/article/details/79110244
版权声明:
1、JavaClub(https://www.javaclub.cn)以学习交流为目的,由作者投稿、网友推荐和小编整理收藏优秀的IT技术及相关内容,包括但不限于文字、图片、音频、视频、软件、程序等,其均来自互联网,本站不享有版权,版权归原作者所有。
2、本站提供的内容仅用于个人学习、研究或欣赏,以及其他非商业性或非盈利性用途,但同时应遵守著作权法及其他相关法律的规定,不得侵犯相关权利人及本网站的合法权利。
3、本网站内容原作者如不愿意在本网站刊登内容,请及时通知本站(javaclubcn@163.com),我们将第一时间核实后及时予以删除。