安卓常见脱壳方法
字数 1018 2025-08-18 11:38:49

Android应用脱壳技术详解

一、drizzleDumper脱壳方法

环境准备

  1. 夜神模拟器设置:

    • 调整为手机模式
    • 进入设置→关于→连续点击版本号5次激活开发者模式
    • 开启USB调试功能
  2. ADB连接:

    # 进入夜神模拟器安装目录的bin文件夹
    cd E:\ProgramFiles\yeshen\Nox\bin
    
    # 连接模拟器(端口号可能为62001或52001)
    nox_adb.exe connect 127.0.0.1:62001
    adb connect 127.0.0.1:52001
    
    # 查看连接状态
    adb devices
    

脱壳步骤

  1. 推送工具和目标APK:

    # 推送脱壳工具
    adb push E:\drizzleDumper-master /data/local/tmp
    
    # 推送目标APK
    adb push C:\anma_driver.apk /data/local/tmp
    
  2. 设置权限:

    adb shell
    chmod 777 /data/local/tmp/drizzleDumper/libs/x86/drizzleDumper
    
  3. 执行脱壳:

    /data/local/tmp/drizzleDumper/libs/x86/drizzleDumper com.amcx.driver
    
    • 脱壳后的文件保存在/data/local/tmp目录

二、Xposed框架+Fdex2脱壳

环境准备

  1. 所需工具:

    • FDex2
    • MT管理器
    • 开发者助手
    • Xposed Installer
    • 目标APK
  2. Xposed框架安装问题解决:

    • 报错"The Xposed framework is not installed":
      • 下载SDK platform23
      • 放入模拟器安装目录的platforms文件夹
    • 框架未激活:
      • 在Xposed Installer中选择official版本安装
      • 重启模拟器
      • 在模块中勾选FDex2并重启

脱壳步骤

  1. 使用开发者助手检查目标APP是否加壳
  2. 打开FDex2,选择目标APP,记录dex输出目录
  3. 使用MT管理器进入/data/user/0/[包名]查看hook出的dex文件
  4. 将有用的dex文件移动到左侧文件列表
  5. /data/app/[包名]-1路径下找到base.apk
  6. 比较dex文件大小,找到与原始classes.dex相近的文件
  7. 重命名选定的dex文件为classes.dex并替换原文件
  8. 修改AndroidManifest.xml:
    • com.tencent.StuShell.TxAppEntry替换为[包名].BaseApplication
    • 删除多余行
  9. 保存并签名APK
  10. 卸载旧版,安装修改后的APK

三、Frida脱壳

环境安装

  1. Windows客户端安装:

    pip install frida
    pip install frida-tools
    
  2. 手机服务端安装:

    • 从GitHub下载对应架构的frida-server
    • 推送至手机:
      adb push frida-server /data/local/tmp
      chmod 755 /data/local/tmp/frida-server
      
  3. 环境测试:

    # 手机端以root权限启动
    /data/local/tmp/frida-server &
    
    # PC端查看进程
    frida-ps -U
    

脱壳操作

  1. 启动手机上的frida-server
  2. 执行脱壳脚本
  3. 脱壳后的dex文件保存在/data/data/[应用包名]/目录

注意事项

  1. 端口号可能因模拟器版本不同而变化(62001/52001)
  2. 文件路径需根据实际情况调整
  3. Xposed框架安装需对应正确的SDK版本
  4. Frida客户端和服务端版本需保持一致
  5. 脱壳操作可能需要root权限
  6. 修改APK后必须重新签名才能安装

以上方法适用于不同场景下的Android应用脱壳需求,可根据实际情况选择最适合的方法。

Android应用脱壳技术详解 一、drizzleDumper脱壳方法 环境准备 夜神模拟器设置: 调整为手机模式 进入设置→关于→连续点击版本号5次激活开发者模式 开启USB调试功能 ADB连接: 脱壳步骤 推送工具和目标APK: 设置权限: 执行脱壳: 脱壳后的文件保存在 /data/local/tmp 目录 二、Xposed框架+Fdex2脱壳 环境准备 所需工具: FDex2 MT管理器 开发者助手 Xposed Installer 目标APK Xposed框架安装问题解决: 报错"The Xposed framework is not installed": 下载SDK platform23 放入模拟器安装目录的platforms文件夹 框架未激活: 在Xposed Installer中选择official版本安装 重启模拟器 在模块中勾选FDex2并重启 脱壳步骤 使用开发者助手检查目标APP是否加壳 打开FDex2,选择目标APP,记录dex输出目录 使用MT管理器进入 /data/user/0/[包名] 查看hook出的dex文件 将有用的dex文件移动到左侧文件列表 在 /data/app/[包名]-1 路径下找到base.apk 比较dex文件大小,找到与原始classes.dex相近的文件 重命名选定的dex文件为classes.dex并替换原文件 修改AndroidManifest.xml: 将 com.tencent.StuShell.TxAppEntry 替换为 [包名].BaseApplication 删除多余行 保存并签名APK 卸载旧版,安装修改后的APK 三、Frida脱壳 环境安装 Windows客户端安装: 手机服务端安装: 从GitHub下载对应架构的frida-server 推送至手机: 环境测试: 脱壳操作 启动手机上的frida-server 执行脱壳脚本 脱壳后的dex文件保存在 /data/data/[应用包名]/ 目录 注意事项 端口号可能因模拟器版本不同而变化(62001/52001) 文件路径需根据实际情况调整 Xposed框架安装需对应正确的SDK版本 Frida客户端和服务端版本需保持一致 脱壳操作可能需要root权限 修改APK后必须重新签名才能安装 以上方法适用于不同场景下的Android应用脱壳需求,可根据实际情况选择最适合的方法。