跳转到内容

本机应用层抓包

有些程序,代理和网卡都拿它没办法,它做了证书绑定、根本不认代理,或者用了自研加密。应用层抓包换一条路:直接从程序内部取明文。不装证书、不配代理、不抓网卡,这些「设防」对它统统失效,照样看到它真正收发的内容。这是普通抓包工具最典型的盲区,也是本模式的杀手锏。


目标程序的「设防」 代理抓包 网卡抓包 本机应用层抓包
证书绑定(Pinning) ❌ 连不上 / 报错 🔒 只有密文 ✅ 明文
不认系统代理 ❌ 抓不到 🔒 只有密文 ✅ 明文
自研 / 非标准加密 ❌ 解不了 🔒 只有密文 ✅ 明文

原理很简单:它从程序内部直接取明文,不做中间人、不碰证书,所以那些针对「中间人」和「证书」的设防,对它统统失效。

实拍效果:选中一个正在运行的程序,直接从其内部读出收发明文,按方向(Sent ↑ / Rec ↓)逐条列出,详情里是完整的明文 HTTP 请求


不挑加密库、不挑技术栈,从程序内部取明文,能覆盖的程序远比代理 / 网卡多

  • 不管程序用的是主流还是冷门的加密库,都能从内部把明文取出来。
  • 不管是原生程序,还是各类跨平台框架写的应用(桌面客户端、跨平台 App……),一样拿得下。
  • 直接用操作系统自带加密通信的程序也不放过,包括用 Windows 系统网络栈的 .NET / PowerShell 等程序。这类往往是其它工具最头疼的盲区,这里照样从内部取到明文。
  • 一句话:浏览器、桌面客户端、原生程序……很多在别处「只有密文」的目标,这里直接是明文。

针对最难搞的那批程序,还有两手:

  • 「socket 流量」,更底层的兜底:遇到精简过、去掉符号、或用较新技术栈(例如纯 Go、Rust,或走 Windows 系统网络栈)编写的程序,普通方式找不到它的加解密入口时,打开这个开关,它换一条更底层的路取数据、照样解出明文,不依赖能否定位程序的加解密入口,也不依赖网卡。很多工具彻底没辙的程序,这一手能拿下。
  • 抓「启动那一刻」:很多鉴权、握手就发生在程序刚启动的瞬间。让它先关掉再由工具拉起,就能把这段启动初期的流量也一并抓到,不错过关键的第一个请求。

新建会话 · 本机应用层抓包:选一个正在运行的程序(或填程序路径),直接从其内部取明文;可勾「重启目标」抓启动初期、「socket 流量」走更底层兜底


四、抓到之后:看得懂、解得开

Section titled “四、抓到之后:看得懂、解得开”

从内部取到的明文,走的是和其它抓包方式同一套处理

  • 多种查看方式:结构化、文本美化、十六进制、自动识别,收发两侧独立切换。详见 数据查看与解码
  • 自动解压与识别:自动解压 gzip / brotli / deflate / zstd(含多层叠加),自动识别并美化 JSON、XML、表单、protobuf / gRPC 等。
  • 自定义编解码器:遇到私有 / 自研的 socket 协议,写一小段脚本自己教它怎么读。详见 自定义协议解码

  • 最适合:做了证书绑定、不认代理、用了自研 / 非标准加密,代理和网卡都取不到明文的程序。
  • 对正在运行的程序直接下手:选中一个在跑的程序,就地从内部取它的明文,不必重启、不必改它的任何设置(也可以填程序路径,让工具替你把它启动起来)。
  • 只针对选中的那个程序:默认不会自动展开它的全部子进程;多进程 / 多窗口的程序可能需要分别选。
  • 交给系统级抓包的情况:macOS 上的系统自带 App、以及格外顽固、藏得很深的应用,会拒绝一切外部介入,本模式进不去,这类目标改用 本机系统级抓包(它不进入程序、从系统底层观测)。

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

相关:代理抓包 · 解除证书绑定(去 Pin) · 数据查看与解码