安卓常见脱壳方法
字数 1018 2025-08-18 11:38:49
Android应用脱壳技术详解
一、drizzleDumper脱壳方法
环境准备
-
夜神模拟器设置:
- 调整为手机模式
- 进入设置→关于→连续点击版本号5次激活开发者模式
- 开启USB调试功能
-
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
脱壳步骤
-
推送工具和目标APK:
# 推送脱壳工具 adb push E:\drizzleDumper-master /data/local/tmp # 推送目标APK adb push C:\anma_driver.apk /data/local/tmp -
设置权限:
adb shell chmod 777 /data/local/tmp/drizzleDumper/libs/x86/drizzleDumper -
执行脱壳:
/data/local/tmp/drizzleDumper/libs/x86/drizzleDumper com.amcx.driver- 脱壳后的文件保存在
/data/local/tmp目录
- 脱壳后的文件保存在
二、Xposed框架+Fdex2脱壳
环境准备
-
所需工具:
- FDex2
- MT管理器
- 开发者助手
- Xposed Installer
- 目标APK
-
Xposed框架安装问题解决:
- 报错"The Xposed framework is not installed":
- 下载SDK platform23
- 放入模拟器安装目录的platforms文件夹
- 框架未激活:
- 在Xposed Installer中选择official版本安装
- 重启模拟器
- 在模块中勾选FDex2并重启
- 报错"The Xposed framework is not installed":
脱壳步骤
- 使用开发者助手检查目标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客户端安装:
pip install frida pip install frida-tools -
手机服务端安装:
- 从GitHub下载对应架构的frida-server
- 推送至手机:
adb push frida-server /data/local/tmp chmod 755 /data/local/tmp/frida-server
-
环境测试:
# 手机端以root权限启动 /data/local/tmp/frida-server & # PC端查看进程 frida-ps -U
脱壳操作
- 启动手机上的frida-server
- 执行脱壳脚本
- 脱壳后的dex文件保存在
/data/data/[应用包名]/目录
注意事项
- 端口号可能因模拟器版本不同而变化(62001/52001)
- 文件路径需根据实际情况调整
- Xposed框架安装需对应正确的SDK版本
- Frida客户端和服务端版本需保持一致
- 脱壳操作可能需要root权限
- 修改APK后必须重新签名才能安装
以上方法适用于不同场景下的Android应用脱壳需求,可根据实际情况选择最适合的方法。