很多同学对App逆向感兴趣,但总觉得门槛高,不知道从何下手。其实,只要选对工具,逆向分析并没有那么神秘。今天我们就来介绍一款安卓逆向必备的神器——JADX,并带大家通过一个真实的靶场题目,体验一把‘透视’App代码的快感。
JADX 是基于 Java 开发的,所以在运行它之前,你的电脑里必须要有 Java 环境(JDK/JRE)。
如何检查是否已安装 Java?
打开命令行(Windows 下 Win+R 输入 cmd,Mac 下打开终端),输入:java -version
JAVA下载链接:https://www.oracle.com/cn/java/technologies/downloads/1. 获取安装包:前往 GitHub 的 Releases 页面下载最新版。(注:如果你担心 GitHub 访问慢,可以在后台回复【JADX】获取网盘下载链接)JADX下载链接🔗: https://github.com/skylot/jadx/releases/tag/v1.5.3jadx-gui-1.5.3-with-jre-win.zip - 包含 JRE 的 jadx-gui 版本
jadx-gui-1.5.3-win.zip - jadx-gui Windows可执行文件(必须安装系统JRE)
jadx-1.5.3.zip - 跨平台命令行和图形用户面板(必须安装系统JRE)
2. 解压文件:下载下来的通常是一个 zip 压缩包,找个没有中文路径的文件夹解压它(这里我下载的是jadx-gui-1.5.3-with-jre-win.zip)
3. 启动:双击exe文件启动启动成功后,你会看到一个灰色的空界面。别急,学会下面这三招,你就能应对 80% 的静态分析场景。1. 一键载入:操作非常简单,直接把你要分析的 APK 文件(或者 dex、jar、aar 文件)拖入 JADX 的窗口即可。它会自动开始反编译,左下角会有进度条。
2. 界面概览:
3. 搜索大法 (关键!)在做 CTF 题目或分析 App 时,我们不可能从头读到尾。我们需要定位关键信息。
4. 交叉引用 (顺藤摸瓜)当你找到了一个关键变量(比如 checkFlag 函数),想知道是谁调用了它?
🔗入口:http://www.loveli.com.cn/有宝子就问了,主播主播,这么好的靶场怎么用:首先关注好靶场 然后发送bug,可以点击链接直接登录找到个人中心,邀请码输入3e5adb8a55db48b8,白嫖14天高级会员。关注好靶场bilibili。拿着关注截图找到客服,领取5积分或者7天高级会员。光说不练假把式。接下来,我们结合一个具体的 CTF 靶场案例,带大家实际操作一遍。这个题目虽然定位是 Level 1,但它非常典型地展示了 JADX 在实战中的威力。🔗靶场链接:http://www.loveli.com.cn/see_bug_one?id=659这里根据题目,flag为hbcflag开头,我们直接点击放大镜搜索通过今天的实战,相信你已经感受到了 JADX 的强大。对于初级逆向题目,“拖入 JADX -> 全局搜索 -> 分析逻辑” 这一套连招往往能通过 90% 的关卡。
当然,JADX 是静态分析工具。如果遇到代码混淆严重、或者逻辑在 Native 层(.so文件)的情况,我们可能还需要结合 Frida 进行动态调试。
最后,谢谢大家的观看。如果觉得这期文章对你有帮助,请不吝点赞、在看、分享给身边更多的朋友。如果你有任何疑问或建议,欢迎在评论区留言交流。