旁观者eCapture:支持龙芯,text 模式看完整 HTTP

旁观者eCapture:支持龙芯,text 模式看完整 HTTP

💡 原文中文,约1100字,阅读约需3分钟。
📝

内容提要

eCapture v2.9.0 发布,新增龙芯 LoongArch64 支持(需内核 6.6+,真机待验证);tls、gotls、gnutls 增加 pcapng 数据源,可实时解密并重组完整 HTTP 消息,支持 HTTP/1.1 和 HTTP/2,暂不支持 HTTP/3;修复突发流量丢包等问题。解密组件 ecapture_decryptor 可独立使用,支持 Go SDK 及 JSON/HAR 导出。

🔎

延伸解读

龙芯支持:可用但需真机验证

eCapture 从 v2.8.0 起提供 Linux/LoongArch64 发行包,龙芯用户可沿用 TLS 抓包方式且无需安装 CA 证书。但需注意:要求内核 6.6 及以上,下载前用 uname -r 确认;目前仅完成交叉构建和模拟启动检查,真机完整抓包尚未验证。因此,在龙芯设备上部署前应做好功能测试,并关注后续反馈。

text 模式升级:从碎片到完整 HTTP 消息

v2.9.0 为 tls、gotls、gnutls 增加 pcapng 数据源,依赖 ecapture_decryptor 实时解密并重组完整 HTTP 消息,解决以往 text 输出需人工拼包的问题。输出包含时间、方向、两端 IP 和端口,HTTP/2 还有流标识,便于多连接交织时定位。该链路目前支持 TCP 上的 HTTP/1.1 和 HTTP/2,尚不支持 HTTP/3。

解密组件可独立使用,扩展分析场景

ecapture_decryptor 不仅服务于实时解密链路,也能独立解密抓包文件,并作为 Go SDK 接入自有工具,示例提供 JSON/HAR 导出。这为流量分析平台提供了复用解密与重组能力的途径,减少自行实现协议解析的成本。不过文章未说明其性能边界或对非 TCP 流量的支持情况,集成前需自行评估。

稳定性修复与使用注意

本次更新修复了 pcapng 在突发流量下因用户态队列造成的丢包,并在退出时排空待写入的网络包和密钥;重载时保留事件输出地址与轮转设置,统一 CO-RE/非 CO-RE 字节码选择。此外,v2.8.2 补回了 Android 发行包中缺失的可执行文件。使用新数据源时,hook 仍是默认方式,需显式指定 --text-source=pcapng。

❓

Q&A

eCapture 现在支持龙芯处理器了吗?需要什么条件?

是的,从 v2.8.0 开始 eCapture 增加了 Linux/LoongArch64 支持,发行包为 linux-loong64,提供 tar.gz 和 deb 两种格式。要求 Linux 内核 6.6 及以上,下载前可用 uname -r 查看内核版本。目前已完成交叉构建和模拟启动检查,真机完整抓包仍待验证。

eCapture 的 text 模式现在能直接看到完整的 HTTP 消息了吗?

可以。v2.9.0 给 tls、gotls、gnutls 增加了 pcapng 数据源,依赖 ecapture_decryptor 实时解密并重组完整 HTTP 消息,输出包含时间、方向、两端 IP 和端口,HTTP/2 还有流标识,方便定位多连接交织的情况。

如何使用 eCapture 的 pcapng 数据源抓取 HTTPS 明文?

以 OpenSSL 为例,命令为:sudo ecapture tls -m text --text-source=pcapng -i eth0 'tcp port 443',将 eth0 替换为实际网卡,明文会直接输出到终端。加上 --pcapfile capture.pcapng 还能保存文件供 Wireshark 复查。

eCapture 的 pcapng 数据源支持 HTTP/3 吗?

目前不支持。新链路仅支持 TCP 上的 HTTP/1.1 和 HTTP/2,尚不支持 HTTP/3。

ecapture_decryptor 是什么?可以单独使用吗?

ecapture_decryptor 是实时解密链路的关键组件,eCapture 负责抓包和提取密钥,它负责解密和重组 HTTP 消息。它可以独立解密抓包文件,也可作为 Go SDK 接入自己的工具,示例提供 JSON/HAR 导出。

v2.9.0 修复了哪些问题?

修复了 pcapng 在突发流量下因用户态队列造成的丢包,退出时会排空待写入的网络包和密钥;配置与加载方面,重载时保留事件输出地址和轮转设置,统一 CO-RE/非 CO-RE 字节码选择。

🏷️

标签

➡️

继续阅读