TraceEagle 指定程序抓包教程 填一条命令只抓一个程序的流量

7 阅读4分钟

指定程序抓包

本篇教你用「指定程序抓包」抓下某一个程序的流量:给它一条启动命令,工具替你把程序拉起来,只抓它一个、启动即看明文。不用配代理、也不用装证书,抓完不用善后——是上手最快、最干净的一种抓法。

一、什么时候用这种抓法

适合你满足下面任一条:

  • 想看某一个能用命令启动的程序在发什么(浏览器、脚本、命令行工具)。
  • 不想改系统全局代理、也不想装证书,更不想波及机器上其它软件。
  • 只是临时调个脚本、验证一个接口,想填条命令立刻开抓

如果程序已经在运行、做了证书绑定、走自研加密或不认代理,指定程序抓包可能抓不到或解不开,改用 应用层抓包。

二、前置条件

  • 已安装并启动 TraceEagle(第一次启动同意系统权限即可)。
  • 知道要抓的程序的启动命令(例如 python3 app.py、一条 curl 命令,或浏览器的可执行文件路径)。
  • 无需装证书、无需改系统代理。

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

  1. 新建会话,选择 「本机指定程序抓包」
  2. 「启动命令」 里填要运行的命令。不想手打可以点内置的一键示例,会自动填好、还能再改:
    • 浏览器示例:拉起一个独立、干净的浏览器窗口(不影响你日常在用的浏览器),并已帮你把 HTTP/3(QUIC)回退成普通连接,好抓、能解。
    • Python 示例:一条命令发个请求,最稳地看到明文。
    • 命令行示例:命令行发起的 HTTPS 请求即抓。
  3. 开始。工具会替你启动这个程序,并只抓它的流量;程序内部再拉起的子进程也会一并被抓到,不漏。

指定程序抓包

让程序跑起来、产生网络请求(浏览器里打开一个网站、脚本发一次请求),流量就会实时出现在请求列表里。

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

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

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

常见程序——浏览器、Electron 类桌面应用、Node、Python、桌面 Java,以及使用通用加密库的命令行工具——启动即明文,不用任何额外操作。

实际效果

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

现象多半是怎么办
抓到了,但只有密文程序用了特殊加密库(最典型是 macOS 系统自带的 curl,以及部分纯 Go 编写的程序)命令行想看明文,用「Python 示例」最稳;或改用 OpenSSL 版的 curl;再不行换 应用层抓包
一条流量都没有这个程序完全不认代理设置换 应用层抓包(从程序内部取明文)或 网卡抓包(网卡层什么都抓得到)
抓到了但走的是 HTTP/3、看不全目标用了 HTTP/3(QUIC)开启会话级的 「阻止 HTTP/3」,让它回退成普通连接,同样好抓、能解
目标程序已经在运行这种抓法要由工具启动程序才生效先关掉它、用启动命令重新拉起;或改用 应用层抓包 直接附到运行中的进程

六、本机四种抓法怎么选

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

下一步

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

项目地址:github.com/traceeagle/…