移动端渗透测试—Android 客户端
安卓逆向工具
参考资源
- 教程参考:AndroidReverse
- 工具参考:android-reverse
jd-gui.jar
功能:
用于反编译 .jar
文件,将其还原为可读的 Java 源代码。
JEB
功能:
- 反编译 Android APK 文件,还原为 smali 代码。
- 支持将 smali 代码转换为 Java 代码。
操作步骤:
- 打开 JEB 并反编译目标 APK 文件。
- 在 JEB 界面中,点击目标类名,查看 smali 代码。
- 按 Tab 键,将 smali 代码转换为 Java 代码。
JADX
功能: 直接反编译 Android APK 文件为 Java 源代码,操作简单,适合快速分析。
操作步骤:
- 安装并打开 JADX 工具。
- 加载目标 APK 文件,JADX 会自动反编译并显示 Java 代码。
ApkScan-PKID
相关概念:
- 查壳:检测 APK 是否经过加壳保护,以及壳的类型和版本。
- 加壳:指为软件添加保护机制,防止反编译和逆向分析。
功能: 查看软件是否加壳。
常见加固厂商:
- 娜迦、榔郡、爱加密、通付盾
- 360 加固、百度加固、阿里加固、腾讯加固
- 盛大加固、瑞星加固、网秦加固、国信灵通加固
- apkprotec 协固、几维安全加固、顶像科技加固、网易易盾
示例说明: 以下截图显示了一个加壳的 APK 文件,壳类型为某一加固厂商的保护机制。
BlackDex
功能:
从加密或混淆的 Android APK 文件中提取原始的可执行代码(脱壳),生成 .dex
文件。
操作步骤:
- 安装并运行 BlackDex 工具。
- 选择目标 APK 文件进行脱壳。
- 脱壳后生成
.dex
文件,存储在指定目录。
后续处理:
脱壳后生成的 .dex
文件为 Android 中间层代码,需进一步使用 dex2jar
转换为 .jar
文件,再用 jd-gui
查看 Java 代码。
dex2jar
功能:
将 Android 的 .dex
文件转换为 .jar
文件,以便使用 jd-gui
等工具查看 Java 代码。
操作步骤:
将脱壳后生成的
.dex
文件传输到 Windows 系统(例如,通过 Android 设备上的 Pictures 文件夹同步)。在命令行中运行以下命令,将
.dex
文件转换为.jar
文件:.\d2j-dex2jar.bat D:\AndroidReverse\dex\com.xingin.xhs\*.dex
转换完成后,生成
.jar
文件。使用
jd-gui
打开生成的.jar
文件,查看 Java 源代码。