TraceEagle 系统级抓包教程 macOS 系统自带 App 和顽固应用也能抓成明文

0 阅读4分钟

系统级抓包

本篇教你用「系统级抓包」抓下 macOS 系统自带 App 和那些顽固、藏得很深的应用:不进入程序、不碰证书,只从系统底层旁路观测,把连别的抓法都够不着的目标也读成明文。这是本机抓法的最后一张底牌——前面几种都拿不下时,用它。

一、什么时候用这种抓法

适合你满足下面任一条:

  • 想看 macOS 系统自带 App / 系统服务(App Store、系统组件、后台服务等)在跟服务器说什么。
  • 目标是顽固、藏得很深的第三方应用:拒绝一切外部介入,代理进不去、从程序内部取明文也被挡在门外。
  • 前面几种抓法都试过了——代理被拒、应用层抓包 拒绝介入、网卡上只剩一堆密文——还是要拿到明文。

如果只是常规程序(浏览器 / 脚本 / CLI),用 指定程序抓包 或 应用层抓包 更省事,系统级抓包属于杀鸡用牛刀。

二、前置条件

  • 运行在 macOS 上(本篇讲的是 macOS 系统级抓法)。
  • 已安装并启动 TraceEagle,第一次启动时同意系统权限即可。
  • 知道要抓的目标:一个正在运行的程序,或它的程序路径 / 名称
  • 无需装证书、无需改系统代理——这种抓法不做中间人、不碰证书。

三、开始抓:三步抓下第一条

  1. 新建会话,选择 「本机系统级抓包」
  2. 选目标:从下拉里选一个正在运行的程序,或直接填程序路径 / 名称
  3. 可选 抓「启动那一刻」:勾上后工具会先把目标关掉、再由自己拉起,把启动初期的流量也一并抓到——很多鉴权、握手就发生在这一瞬间,不勾容易漏掉。
  4. 开始。工具会从系统底层旁路观测这个程序,读出它收发的明文。

本机系统级抓包

让目标程序产生网络请求(在系统 App 里点一下会联网的操作),流量就会实时出现在请求列表里。

四、验证:确认抓到并解密了

在请求列表点开任意一条,看详情:

  • 能看到请求:请求行、请求头、body 都在。
  • TLS 显示「已解密」:请求与响应是可读的明文(如 JSON),不是乱码密文。

系统级抓包不注入、不改动程序、不碰证书,所以哪怕目标做了严格的证书校验,也影响不到这里读出的明文。

实际效果

五、抓不到 / 解不开?逐条排查

现象多半是怎么办
选不到目标 / 下拉里没有程序还没运行先把目标程序跑起来,再回来在下拉里选;或直接填程序路径 / 名称
抓到了,但漏了最开头的握手 / 鉴权关键流量发生在启动初期,开抓时已经过去了勾上 抓「启动那一刻」,让工具先关掉目标、再拉起,把启动初期一并覆盖
一条流量都没有选错了目标,或该程序此刻没联网确认选的是真正在联网的那个程序;触发一次会联网的操作再看
常规程序也想用它系统级抓包对普通程序是杀鸡用牛刀常规程序改用 指定程序抓包(能命令启动)或 应用层抓包(已在运行)

六、本机四种抓法怎么选

你的情况用哪种
macOS 上的系统自带 App、顽固应用(别的方式抓不到)系统级抓包(本篇)
程序已在运行 / 证书绑定 / 不认代理 / 自研加密应用层抓包
能用命令启动的常规程序(浏览器 / 脚本 / CLI)指定程序抓包
想看整机全部流量、非 HTTP 流量网卡抓包

下一步

  • 抓到之后怎么读、怎么切换视图、怎么解码:见 数据查看与解码。
  • 遇到私有 / 自研协议、想自己教它怎么读:见 自定义协议解码。
  • 想改请求再发、或半路拦下来手动改:见 请求构造与重放、规则改写与断点拦截。

项目地址:traceeagle.com/zh/