咨询发布 发表于 2026-4-24 20:34:14

安卓逆向入门:从 apktool 反编译到 jadx 看源码,一次走通完整流程

想学安卓逆向,但不知从哪下手?其实门槛没你想的那么高。这篇带你从零走通"拿到 APK →反编译→看源码"的完整链路。

一、准备工具

[*]apktool:反编译资源文件(布局、图片、清单)
[*]jadx:把 DEX 反编译成可读 Java 代码(最好用的一个)
[*]dex2jar:备选方案,把 DEX 转 jar 再用 JD-GUI 看

三个工具都是免费开源的,Java 环境装好就能跑。

二、第一步:用 apktool 拆开 APK
apktool d target.apk -o output_dir
拆完后你会看到:

[*]AndroidManifest.xml — 应用的清单,声明了权限、组件、入口
[*]res/ — 所有资源文件,布局 XML、图片、字符串都在这
[*]smali/ — 反编译出的 Dalvik 字节码(类似汇编)

看 smali 能了解底层逻辑,但对新手来说,先看 res 和 Manifest 就够定位入口了。

三、第二步:用 jadx 看 Java 源码
jadx target.apk -d output_src
jadx 直接把 DEX 反编译成 Java,比 smali 好读太多。打开后:

[*]先找 Application 类(在 Manifest 里注册的)— 这是应用初始化入口
[*]再找 MainActivity — 看应用启动后第一个页面做了什么
[*]顺着方法调用往下追,关注网络请求、加密、权限检查等关键逻辑


四、实用技巧

[*]APK 加壳了?先脱壳再分析,常见脱壳工具如 BlackDex、Frida 脱壳脚本
[*]代码混淆了?用 jadx 的"重命名"功能,把 a.b.c 重命名成可读的
[*]只关心网络接口?直接搜 "http"、"api"、"Retrofit" 关键字定位


https://www.metk.cn/img/posts/reverse_apk.jpg

安卓逆向的入门关键不是"学多少工具",而是先走通一次完整流程。随便找个小 APK 拆一遍,比看十篇教程都管用。

微光柚子 发表于 2026-4-25 12:16:55

写得很好,不过第三部分有点跳跃,新手可能跟不上。

旧巷69 发表于 2026-4-26 00:54:37

我这边环境是Mac,有些步骤要调整,回头补个差异说明。

寒山散记 发表于 2026-4-27 02:10:02

看完最大的感受是基础知识还是要扎实,不然工具报错都不知道怎么查。

北岛林间 发表于 2026-4-28 16:03:10

楼主的排版可以再优化下,代码块用起来会更清楚。

半夏听雨 发表于 2026-4-30 18:34:01

感谢分享,之前一直卡在这个点,看完豁然开朗。

清和记事 发表于 2026-5-3 09:42:34

这篇干货,比那些只有命令没有解释的强太多了。

闲云 发表于 2026-5-6 13:28:50

感谢,正需要这个,之前找的资料都太老了。

有点困 发表于 2026-5-10 05:52:49

步骤写得很清楚,跟着走了一遍,卡在第二步的环境配置上,后来装了老版本才好。

橙子64 发表于 2026-5-14 10:54:31

实战出来的经验和文档里写的完全是两码事,楼主这个很真实。
页: [1] 2 3
查看完整版本: 安卓逆向入门:从 apktool 反编译到 jadx 看源码,一次走通完整流程