如果你写的java程序源代码意外丢了,只有服务器运行的编译后的代码怎么办?
这个时候就可以用JADX这款开源的反编译工具逆向出源代码。
JADX特点
-
将Dalvik字节码从APK, dex, aar, aab和zip文件反编译为java类
-
从resources.arsc解码AndroidManifest.xml和其他资源
-
也可以处理混淆后的代码
GitHub数据
-
31.3k stars -
787 watching -
4k forks
开源地址:https://github.com/skylot/jadx
jadx-gui
提供一个可视化的操作界面,主要功能
-
高亮显示查看反编译代码 -
跳转方法定义 -
查看方法引用 -
全文搜索 -
Smali调试器
安装
需要安装
JDK 8
或更高的版本
-
Linux sudo pacman -S jadx
-
macOS brew install jadx
-
Flathub flatpak install flathub com.github.skylot.jadx
或者直接在https://github.com/skylot/jadx/releases下载安装包
我下载了
jadx-1.4.3.zip
,然后执行对应操作系统的脚本
反编译asm-9.3.jar
用
jade-gui
打开asm-9.3.jar
。
可以查看每个类的源码并高亮显示。
右键选择
搜索
,可以进行方法名
,字段名
,注释
,代码
等信息的搜索,支持正则匹配。
双击变量名和方法名可以高亮所有出现的地方
鼠标定位到方法上右键,查找被调用的地方
![](/Users/mac/Library/Application Support/typora-user-images/image-20220818113017422.png)
如图找到两个调用的地方
反混淆
一般安卓的apk安装包为了防止被反编译破解。会对代码进行混淆,使得代码难以阅读理解。jadx可以对混淆后的代码进行还原,使代码变得可读。
jadx动态调试安卓apk
-
在模拟器上安装apk -
jadx打开apk包
导出为Gradle工程
源码反编译完成后还可以很方便的导出成Gradle工程,方便二次开发。
更多功能广大网友可以继续挖掘。
原文始发于微信公众号(开源日记):31.3k stars的反编译高效工具JADX
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/49947.html