jadx 支持 Windows、Linux、 macOS,能够帮我们打开.apk, .dex, .jar,.zip等格式的文件
作者:JavaGuide
链接:https://www.zhihu.com/question/20264247/answer/2306405289
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
jadx 是一款功能强大的反编译工具,使用起来简单方便(拖拽式操作),不光提供了命令行程序,还提供了 GUI 程序。一般情况下,我们直接使用 GUI 程序就可以了。
jadx 支持 Windows、Linux、 macOS,能够帮我们打开.apk
, .dex
, .jar
,.zip
等格式的文件
就比如说我们需要反编译一个 jar 包查看其源码的话,直接将 jar 包拖入到 jadx 中就可以了。效果如下:
再比如说我们想看看某个 apk 的源码,我们拿到 apk 之后直接拖入进 jadx 中就可以了。效果如下:
jadx 安装
jadx 是一款开源软件,是可以免费使用的。我们可以在 jadx 的项目主页下载 jadx 最新版。
- 项目地址:https://github.com/skylot/jadx
- 下载地址:https://github.com/skylot/jadx/releases/tag/v1.3.1
我们直接下载第一个即可。
下载之后,解压下载好的 jadx 压缩文件后进入 bin
目录即可找到可执。
- jadx:命令行版本
- jadx-gui:图形操作界面版本
你也可以自己克隆源码,本地编译,这也是我比较推荐的方式。
git clone https://github.com/skylot/jadx.git
jadx 由 Java 语言编写,使用 Gradle 进行构建。克隆到本地之后,你可以直接使用 Gradle 命令进行构建:
cd jadx
# Windows 平台使用 gradlew.bat 而不是 ./gradlew
./gradlew dist
你也可以直接使用 IDE 打开,然后像运行普通 Java 程序那样使用它:
jadx 使用
反编译文件
通过 File -> Open files... 打开需要反编译的文件或者直接将文件拖拽进 jadx 中就可以了。
从上图可以看出,jadx 支持.apk
, .dex
, .jar
,.zip
,.class
等格式的文件。
搜索功能
jadx 自带强大的搜索功能,支持多种匹配模式。
通过 Navigation
即可打开搜索功能,我们可以选择搜索指定的类,方法,属性,代码,文件,甚至是注释。
查看类,变量或者方法使用情况
对于某个类、变量或者方法,我们还可以查看哪些地方使用了它。
直接选中对应的类、变量或者方法,然后点击右键选择 Find Usage 即可。
很快,jadx 就会帮你找出整个项目有哪些地方使用了它。
添加注释
我们还可以自定义注释到源代码中。
选中对应的位置之后,点击右键选择 Comment 即可。
反混淆
一般情况下,为了项目的安全,我们在打包发布一个 apk 之前都会对其代码进行混淆加密比如用无意义的短变量去重命名类、变量、方法,以免代码被轻易破解泄露。
经过混淆的代码在功能上是没有变化的,但是去掉了部分名称中的语义信息。
为了代码的易读性,我们可以对代码进行反混淆。
在 jadx 中,我们通过 Tools -> Deobfuscation 即可开启反混淆功能。
专注 Java 原创干货分享,大三开源JavaGuide ,目前已经 115k+ Star。
原创不易,欢迎点赞分享,欢迎关注 @JavaGuide,我会持续分享原创干货!加油,冲
jadx 支持 Windows、Linux、 macOS,能够帮我们打开.apk, .dex, .jar,.zip等格式的文件相关推荐
- 蓝牙鼠标windows linux,Windows+Linux+MacOS三大系统共用蓝牙鼠标
首先要做的是在三个系统里都匹配一次.让系统留下蓝牙鼠标的信息.然后先去MacOS系统里去查看LinkKeys,再到Linux或Windows下去修改相应值. 一.MacOS(Mojave)下命令行输入 ...
- vnc远程linux命令,用VNC实现远程桌面共享(支持Windows, Linux, …) | 易水博客
用VNC实现远程桌面共享(支持Windows, Linux, -) VNC,全称为Virtual Network Computing,它是一个桌面共享系统.它的功能,类似于windows中的远程桌面功 ...
- Traffmonetizer利用vps小鸡赚钱,支持windows,linux,Android,MacOS多平台
注册可获得5美元,Traffmonetizer不怎么占用CPU和内存以及流量,流量单价也比较高. 机器越多收益越多,支持paypal usdt btc Payoneer等提现 Traffmonetiz ...
- ev1百家云视频解密工具、ev1视频提取工具,支持Windows、MacOS、Linux
介绍: 根据你的系统进入相对应的文件夹 打开 终端 键入:ev1_decode 后面空格隔开键入 ev1文件路径 回车.转换将在瞬间完成 网盘下载地址: http://www.bytepan.net/ ...
- 【转】Windows Linux MacOS操作系统的区别
首先,不管是Windows操作系统.Linux操作系统还是MacOS操作系统,甚至包括操作系统的鼻祖UNIX操作系统,最早都是用C语言编写的. 实际上UNIX操作系统和C语言都是由贝尔实验室的汤普森( ...
- cmake使用方法详解 - Windows Linux MacOS cmake安装教程
一 什么是CMake,为什么要使用它 CMake 是用于构建.测试和软件打包的开源跨平台工具, 为什么要用cmake,是因为我们需要一个构建系统解决如下问题: 1.你想避免硬编码路径 2.您需要在多台 ...
- anki ios android 同步,让记忆更轻松的Anki,支持Windows,Linux,iOS,Android平台
Anki介绍 Anki是一个记忆辅助软件,它可以让记忆过程变得更加轻松容易.因为,相比传统方法他更加高效更加智能,利用它你可以大大降低你的学习时间,或者你可以在同样长的时间内学习更多的内容. 任何人如 ...
- Compose-jb图片加载库load-the-image,适用于KMM Compose desktop桌面端(Windows,Linux,MacOs)
前言 Android平台上有很多优秀的图片加载框架,比如Glide,Picasso,Fresco 而Compose-jetpack上的图片加载框架有Coil 但Compose-jb上却暂时没有图片加载 ...
- ssh linux工具下载,openssh下载 (支持windows+linux)
OpenSSH 是 SSH (Secure SHell) 协议的免费开源实现.它用安全.加密的网络连接工具代替了 telnet.ftp. rlogin.rsh 和 rcp 工具.OpenSSH 支持 ...
最新文章
- java导入包大全_eclipse快速导入jar包的相关操作步骤
- 2019年上半年收集到的人工智能卷积神经网络干货文章
- Mac OS X 常用快捷键一览
- 二叉树的建立和递归遍历
- Python 微信机器人-用itchat库下载微信接收到的语音、图片等资源实例演示
- 顶层const和底层const的区别
- 逆向工程核心原理读书笔记-API钩取之隐藏进程(一)
- U Sparkle 开发者计划招募中!
- python 月报_python实践--月报分析之获取jira缺陷数据
- 第七章:react-ui
- P30年订单或超2000万 正与苹果抢流水线
- QT每日一练day16:QMessageBox消息对话框
- Video-Swin-Transformer (二)
- linux下部署Tesseract OCR及调用
- svn 同步 linux,linux SVN 中 配置钩子 实现 线上项目同步
- PMP试题 每日一练快速提分
- 路飞学城-Python开发-第一章
- Windows 7各版本的主要功能区别是什么 有何不同
- c++学习笔记:黑客攻击系统-功能菜单
- 一本通2056:【例3.7】最大的数
热门文章
- Hadoop集群垃圾箱配置 | fs.trash.interval
- 儿童身高体重记录检测表
- 023-zabbix性能优化中的几个中肯建议
- java label对齐方式_java – 在BorderLayout中对齐JLabel和JTextField
- 用什么方法可以改变摄像机逆光补偿
- 计算机基础英语文档,最强计算机基础英语总结
- 企业家故事|香港最后一位少爷,走了(下)
- 读书笔记与思考(一)《MIT深度思考法》
- 热烈祝贺:广东省快递行业协会加入2023上海国际快递物流展
- 和我的清华室友经过20天得出的python爬取网站数据!!!