ecapture v0.7.4发布,支持Pcap FIlter包过滤语法

ecapture v0.7.4发布,支持Pcap FIlter包过滤语法

💡 原文中文,约2600字,阅读约需7分钟。
📝

内容提要

eCapture是一个无需CA证书的HTTPS/TLS明文抓包工具,支持包过滤和Pcap Filter语法。该工具在Linux和Android上可用,具有强大的特性。

🔎

延伸解读

Pcap Filter 的适用条件与限制

Pcap Filter 语法仅在 tls 或 gotls 模块下,且运行模式参数 -m 为 pcap 时生效。用户需在命令行末尾添加过滤表达式,例如 host 1.1.1.1 or src port 443。注意,在个别 Android 发行版上该过滤语法可能无效,官方表示未来会修复。

module 与 mode 的区分

eCapture 的 module 模块和 mode 模式是两个独立概念,用户常混淆导致运行出错。module 指定抓包目标(如 tls、gotls),mode 决定运行方式(如 pcap)。正确理解二者区别有助于避免配置错误,具体可参考官方图解。

技术实现原理

Pcap Filter 功能由 Leon Hwang 贡献。其原理是:libpcap 将过滤表达式编译为 cbpf 字节码,再转换为 ebpf 字节码,并插入到 eCapture 的 TC HOOK 字节码中,最终由内核加载全部 eBPF 字节码实现过滤。依赖库包括 elibpcap、cbpfc 和 ebpfmanager v0.4.5。

❓

Q&A

eCapture是什么工具?它有什么主要特点?

eCapture是一个无需CA证书、无侵入的HTTPS/TLS明文抓包工具,支持Linux 4.18以上和Android arm64 5.5以上版本。

eCapture v0.7.4版本新增了什么功能?

eCapture v0.7.4版本新增了对Pcap Filter包过滤语法的支持,可以像tcpdump一样使用pcap filter表达式来过滤网络包。

如何在eCapture中使用Pcap Filter过滤网络包?

在tls或gotls模块中,当运行模式参数-m为pcap时,支持pcap filter表达式。在命令行最后的参数中设定,例如:sudo bin/ecapture tls -m pcap -i ens160 -w a.pcapng host 1.1.1.1 or src port 443。

eCapture的module和mode有什么区别?

eCapture的module模块和mode模式是两个不同的功能点,用户经常混淆。module指定要抓包的应用类型(如tls、gotls),mode指定运行模式(如pcap、keylog等)。

eCapture的Pcap Filter功能在哪些环境下可能无效?

在个别Android的发行版上,pcap filter过滤语法可能没有效果,未来会修复。

eCapture的Pcap Filter功能是如何实现的?

该功能由Leon Hwang贡献。技术原理是:libpcap编译pcap filter表达式为cbpf字节码,cbpf字节码转为ebpf字节码,ebpf字节码插入到eCapture的TC HOOK字节码中,由内核加载全部eBPF字节码,实现表达式过滤。

eCapture v0.7.4依赖哪些库?

eCapture v0.7.4依赖elibpcap、cbpfc和ebpfmanager v0.4.5(eBPF bytecode InstructionPatchers)。

在哪里可以下载eCapture v0.7.4?

eCapture v0.7.4的下载地址可在CFC4N的博客找到。

🏷️

标签

➡️

继续阅读