APK 本质上是一个 ZIP 压缩包。理解其内部结构是逆向分析的第一步。
jadx 是最好的 DEX 反编译工具之一,能将 Dalvik 字节码还原为可读的 Java 代码。
| 快捷键 | 功能 |
|---|---|
| Ctrl+Shift+F | 全局搜索(搜索字符串/类名/方法名) |
| Ctrl+左键 | 跳转到定义(类/方法/变量) |
| Ctrl+右键 | 查找使用(交叉引用,谁调用了这个方法) |
| Alt+H | 调用层级分析 |
| F4 | 搜索结果导航 |
apktool 用于解包 APK、修改资源与 smali 代码、重打包并签名。是修改 APK 的核心工具。
AndroidManifest.xml 是 APK 最核心的配置文件,包含权限声明、组件定义、导出配置等关键安全信息。
商业 App 通常使用加固保护代码,使直接反编译无法获取真实逻辑。
以下演示从 APK 中提取硬编码的 API 密钥和加密密钥的完整流程。
apktool 解包后生成 smali 代码,修改 smali 可以改变应用逻辑。以下是一个绕过登录检查的示例。