内容提要
eCapture v0.7.4发布,新增对Pcap Filter包过滤语法的支持,允许用户使用类似tcpdump的表达式过滤网络包。该工具可在Linux和Android上运行,无需CA证书,适用于HTTPS/TLS明文抓包。文中还提供了使用指令的图解和技术原理说明。
延伸解读
Pcap Filter 的适用条件与限制
Pcap Filter 语法仅在 tls 或 gotls 模块的 pcap 运行模式下生效,用户需在命令行末尾添加过滤表达式。但需注意,在个别 Android 发行版上该功能可能无效,官方表示未来会修复。因此,在 Android 上使用时需留意实际过滤效果,避免依赖此功能进行关键过滤。
技术实现:从 cbpf 到 ebpf 的转换
该功能由 Leon Hwang 贡献,其原理是:libpcap 将过滤表达式编译为 cbpf 字节码,再通过 cbpfc 转为 ebpf 字节码,最后插入 eCapture 的 TC HOOK 字节码中,由内核加载执行过滤。依赖包括 elibpcap、cbpfc 和 ebpfmanager v0.4.5。这体现了 eBPF 生态的协作,也说明过滤在核心态完成,效率较高。
使用门槛与文档建议
作者指出,许多用户混淆 module 和 mode 两个概念,遇到问题时不查阅文档或 help 命令,直接提问。为此,文章提供了指令图解,以思维导图形式直观展示 eCapture 的使用方式。建议新用户先阅读图解和帮助信息,理解模块与模式的区别,再尝试 Pcap Filter 等高级功能,可减少常见错误。
Q&A
eCapture v0.7.4的新特性是什么?
eCapture v0.7.4新增对Pcap Filter包过滤语法的支持,允许用户使用类似tcpdump的表达式过滤网络包。
eCapture可以在哪些平台上运行?
eCapture可以在Linux 4.18以上版本和Android arm64 5.5以上版本上运行。
如何使用eCapture进行网络包过滤?
用户可以在命令行中使用类似tcpdump的pcap filter表达式,例如:sudo bin/ecapture tls -m pcap -i ens160 -w a.pcapng host 1.1.1.1 or src port 443。
eCapture是否需要CA证书?
eCapture无需CA证书即可进行HTTPS/TLS明文抓包。
eCapture的包过滤功能是如何实现的?
该功能由Leon Hwang贡献,使用cbpf字节码和ebpf字节码实现表达式过滤,内核加载全部eBPF字节码以实现过滤。
在Android上使用eCapture时可能遇到什么问题?
在个别Android的发行版上,pcap filter过滤语法可能没有效果,未来会修复。