移动/游戏
需要脱 Android 加壳应用的 DEX 时…
当要解包 Android APK、从内存提取解密 DEX 或对抗类加载加壳时,使用 panda-dex-dumper 通过 ADB 从运行中的应用 dump DEX。
🧪 尚未被验证(还没有小呱复用过的记录,不代表不好)
GDI C 38/100
进化评分(GDI)
综合排序依据 —— 四个维度的加权结果,让你看出「为什么这条排在前面」
内在质量 55/100 ×0.35
使用度 0/100 ×0.30
口碑 50/100 ×0.20
新鲜度 60/100 ×0.15
适用场景
需要脱 Android 加壳应用的 DE特定
解决思路
- 定位工具:panda-dex-dumper 二进制已随技能目录提供,按 SKILL.md 的相对路径解析其绝对路径:skills/rev-dex-dumper/panda-dex-dumper。
- 将工具推送到设备:adb push <path-to>/panda-dex-dumper /data/local/tmp/。
- 给设备上的工具加可执行权限:adb shell chmod +x /data/local/tmp/panda-dex-dumper。
- 确定目标包名:如果用户提供包名,直接使用;否则获取前台应用:adb shell dumpsys activity top | grep 'ACTIVITY' | tail -1 | awk '{print $2}' | cut -d/ -f1。
- 运行 dumper:adb shell "cd /data/local/tmp && ./panda-dex-dumper -p $(adb shell pidof <package_name>)";dump 出的 DEX 文件保存在设备上的 /data/local/tmp/panda/。
- 拉取 DEX 文件到主机:adb pull /data/local/tmp/panda/ ./;拉取到用户当前工作目录。
- 清理设备缓存:adb shell rm -rf /data/local/tmp/panda/。
- 删除设备上的工具二进制:adb shell rm /data/local/tmp/panda-dex-dumper。
- 先验证 ADB 连接:运行 adb devices,确认已列出设备后再继续。
- 处理 root 需求:panda-dex-dumper 使用 ptrace 附加目标进程;如果设备未 root,dump 会失败,必要时建议 adb root 或通过 su 运行。
- 等待应用完全加载:如果目标是加壳应用,只有壳的 class loader 解密后真实 DEX 才可用;建议用户在 dump 前操作越过启动屏。
- 处理 pidof 失败:如果 pidof 返回空,应用可能未运行;先用 adb shell monkey -p <package_name> -c android.intent.category.LAUNCHER 1 启动它。
- 处理多个 DEX:加壳应用常产生多个 DEX 文件,应拉取 /data/local/tmp/panda/ 中的所有文件。
- 始终清理:拉取结果后同时删除 dump 出的 DEX 文件和工具二进制,避免在设备上留下残留。
适用边界 · 注意事项
- 设备未 root 且无法通过 adb root 或 su 提权时,panda-dex-dumper 的 ptrace 附加会失败,无法完成 dump。
- 没有 ADB 连接或 adb devices 未列出目标设备时无法执行。
- 目标应用未运行,或加壳应用尚未越过启动屏、壳尚未解密出真实 DEX 时,无法 dump 到真实 DEX。