APP抓包-模拟器Android9+
字数 4251
更新时间 2026-10-25 15:20:09

APP抓包-模拟器Android9+

一句话结论:Android 9+ 模拟器抓 HTTPS 的完整链路是「Magisk Delta 供 root → LSPosed 承载模块 → TrustMeAlready 破证书不信任 → Charles 做中转代理 → Postern 把模拟器流量塞进代理 → Burp 导入 Charles 证书后做流量分析」,其中三个最容易翻车的点是:装 Magisk 前必须先挂载可写的 /system、装完必须从 Magisk 主页点 X 再重启、旧的 su 文件必须删除或改名。

排版说明:本文为兼容纯文本存储环境做了等价书写——命令中的反斜杠路径统一改写为正斜杠,代码示例中的双引号字符串统一改写为单引号。

一、为什么要折腾这一套

渗透测试里抓 APP 包常遇到两重矛盾:

  1. 老系统装不上新 APP:Android 7 镜像虽然默认信任用户证书、抓包省事,但很多 APP 因 CPU 架构、API Level 等底层限制根本无法下载安装,测试做不下去。
  2. 新系统抓不到明文:Android 9+ 是一次重大更新,目标 APP 普遍启用 SSL Pinning(证书钉扎)加「仅信任系统证书」的策略,即便把 Charles/Burp 证书装进手机,抓到的仍是一堆加密内容或握手失败。

因此需要一条「新模拟器 + root + 模块绕过」的组合链路。本文的工具栈:

工具 在链路中的角色
Magisk Delta 提供 root,并用于绕过 root 检测
LSPosed Xposed 框架(Zygisk 模式),负责加载 Hook 模块
TrustMeAlready LSPosed 模块,绕过证书不信任校验
Charles PC 端代理,配合 Postern 做流量过渡与证书载体
Postern 模拟器内的代理/类 VPN 工具,把 APP 流量送进 Charles(同时规避代理检测)
Burp Suite 最终的流量分析台

二、事前准备:让 /system 可写

这一步在装 Magisk 之前做,否则 Magisk 安装直接报错,事后修复要清理镜像,非常麻烦。

找到自己安装的模拟器目录(不同厂商模拟器路径不同),用 adb 连接模拟器实例并重新挂载系统分区为读写:

./adb.exe -s 127.0.0.1:21513 shell 'mount -o rw,remount /system'

说明:

  • -s 127.0.0.1:21513 指定设备序列号,即模拟器对外开放的 adb 端口(以本机实际监听端口为准,可先用 adb devices 查看)。
  • mount -o rw,remount /system 把已挂载的 /system 从只读改为读写。Magisk 及部分模块运行依赖可写的系统分区。
  • 嫌命令麻烦的话,也可以把这条需求直接交给自动化助手执行。

三、安装 Magisk Delta:三个死亡细节

  1. 拖入安装:把 Magisk Delta 的 apk 直接拖进模拟器窗口完成安装。
  2. 点「安装」刷入框架:打开 Magisk,主页提示「需要额外设置」,点击「安装」;选择直接安装(默认方式),按向导下一步走完。
  3. 处理 su 冲突提示:安装成功后一定要按指定方式重启——从 Magisk 主页点右上角的 X(关闭按钮),在弹窗里选择「重启」。重启后再点进 Magisk,可能提示 su 文件问题:因为这个版本的 Magisk 采用「主动取代 root」的策略,与模拟器镜像里旧的 su 冲突。处理办法是把 /system/xbin/su 里的 su 文件删除或重命名(如改成 su.bak),完成后就能看到 Magisk 的版本号,框架部分收工。

踩坑实录(原文作者血泪):

  • Magisk 正式版与这套模拟器可能不兼容,会疯狂卡死;Delta 版本更稳。
  • 安装 Magisk 前必须先给 /system 读写权限,否则装败后要清理镜像,代价极大。
  • 装完 Magisk 后必须按「主页点 X → 重启」的方式重启;直接走系统重启流程可能把镜像搞挂、模拟器无法开机。

四、LSPosed:Hook 模块的宿主

LSPosed 的安装同样分两步:

  1. 把 LSPosed 的 apk 直接拖进模拟器安装管理器侧载(走 Magisk/模块安装入口)。
  2. 回到 Magisk 的「模块」页面,确认 LSPosed 模块已出现并启用,再次重启(同样按 Magisk 主页点 X 的方式)。

重启后模拟器桌面能看到 LSPosed 的 apk 图标,说明框架管理器就位。LSPosed 以 Zygisk 模式运行,职责是把后续安装的 Xposed 模块注入到目标 APP 进程——它自己不干活,只负责「载荷」TrustMeAlready。

五、TrustMeAlready:破证书不信任

  1. 把 TrustMeAlready 的 apk 拖进模拟器安装。
  2. 打开 LSPosed 管理器 → 模块页,能看到刚加载的 TrustMeAlready,勾选启用。
  3. 在 LSPosed 里把 TrustMeAlready 的作用范围设置为「系统框架(Android System)」,需要抓包的 APP 也一并勾选,然后强制停止目标 APP 或重启使其生效。

TrustMeAlready 通过 Hook 证书校验链(TrustManager 相关实现),让 APP「信任一切证书」,从而让中间人代理的证书不再被 SSL Pinning 拒绝。到这一步,Android 9+ 的「不信任用户证书 + 钉扎」两道锁就已被撬开。

六、Charles:PC 端代理与证书载体

Charles 的安装从略,重点是配置:

  1. 关掉 Windows 系统代理:我们只针对模拟器抓包,避免全局代理影响宿主机正常上网。
  2. 代理监听:Charles → Proxy → Proxy Settings,保持默认 HTTP 端口 8888,勾选「MAC/外部设备」允许局域网设备接入。
  3. SSL 代理(SSL Proxying):Proxy → SSL Proxying Settings → 启用,Location 添加「任意主机 + 任意端口」(或按需限定目标域名),使 Charles 参与解密。
  4. 导出证书给模拟器:Charles 的根证书(Help → SSL Proxying → Save Charles Root Certificate)与 Burp 的证书不同,它的 .pem 文件可以直接拖进模拟器安装。在模拟器里安装证书时:名字随便起;锁屏方式建议设置图案密码(部分 Android 版本要求有屏幕锁才能安装凭据证书),确认安装。
  5. WLAN 再来一遍:证书安装走两个入口各装一次(内部存储点开 .pem 走一遍,再到 WLAN 设置里确认代理与网络正常),Charles 部分完事。

七、Postern:把模拟器流量塞进 Charles

Postern 是类 VPN 的代理转发工具,负责让 APP 流量走 Charles,同时规避一些 APP 对「系统代理设置」的检测:

  1. apk 直接拖进模拟器安装。
  2. 服务器配置:新增代理服务器,类型 SOCKS5,地址填宿主机在模拟器视角的网关 IP(在 Windows 上用 ipconfig 找带默认网关的那块网卡地址),端口 8889(对应 Charles 的 SOCKS 代理端口,需在 Charles 的代理设置里开启 SOCKS 并保持一致),保存。
  3. 代理规则:建立全局或按 APP 的规则,把目标流量导向刚建的 SOCKS5 服务器。
  4. 开启:模拟器状态栏右上角出现「钥匙」图标,代表 Postern 已生效。

八、Burp:接管流量分析

Burp 作为最终的分析台,证书不再让模拟器直连 Burp,而是复用 Charles 已装好的证书:

  1. 先把 Charles 的根证书导出。
  2. Burp → Proxy → Settings → TLS → Export/import CA certificate,导入 Charles 的证书(与模拟器中已信任的证书保持一致)。
  3. Burp 监听端口与 Charles 侧转发保持一致(上游指向 Charles,Charles 再转 Burp,模拟器 → Postern → Charles → Burp 形成完整链路)。
  4. 打开目标 APP,最终效果:Burp 中可见完整解密的 HTTPS 请求与响应。

九、全链路总结(通俗版)

各组件的分工一句话说清:

  • Magisk:提供并隐藏 root(绕过 root 检测)。
  • LSPosed:框架宿主,载荷 TrustMeAlready。
  • TrustMeAlready:绕过证书不信任(破 SSL Pinning)。
  • Charles:配合 Postern 做流量过渡,并充当证书颁发/载体。
  • Postern:模拟器内的代理转发(类 VPN),绕过代理检测。
  • Burp:我们真正分析流量的地方。

数据流向:目标 APP → Postern(SOCKS5 8889)→ Charles(SSL Proxying 解密)→ Burp(导入同一证书再分析);证书信任链由「Charles 根证书装入模拟器 + TrustMeAlready Hook 校验」共同保证。

十、工具与参考

  • Magisk Delta 相关下载:https://www.duokaiya.com/1443.html
  • 其他组件(LSPosed/TrustMeAlready/Postern)合集:百度网盘 https://pan.baidu.com/s/1qLP2EhHiV9rTUOJZGsOUGQ (提取码 pdxx)
  • Charles 安装参考:https://blog.csdn.net/qq_45484042/article/details/158655868

再次强调三个最容易翻车的顺序性问题:先 remount /system 再装 Magisk;每次装完框架/模块都从 Magisk 主页点 X 重启;旧 su 文件不清掉 Magisk 就一直报 su 冲突。把这三条刻进肌肉记忆,Android 9+ 模拟器抓包链路就能稳定跑通。

相似文章
相似文章
小程序二维码
 全屏