Tool
eCapture
eBPF-based Linux and Android tool that attaches uprobes to TLS libraries such as OpenSSL, BoringSSL, GnuTLS and NSS, and to Go's TLS stack, recording the plaintext a process sends and receives without a proxy or an installed CA certificate, so analysts can inspect an application's encrypted traffic on a host they control. Output modes write plaintext text, NSS key logs, or pcapng files with embedded TLS secrets for Wireshark and tshark, and a text mode can rebuild complete HTTP/1.1 and HTTP/2 messages from the captured stream. Separate modules audit bash and zsh commands and MySQL and PostgreSQL queries.
- Targets
- App · Protocol
- Category
- Protocol analysis tools
- Relationship
- Foundation tool
- Sources reviewed
Requirements & limits
- Latest release at review: v2.9.0, published 2026-10-24; the reviewed master commit is identical to that tag. Release assets are Linux amd64, arm64 and loong64 archives and .deb packages plus Android amd64 and arm64 archives; the Docker image is Linux only. The README states that Windows and macOS are not supported; the separate eCaptureQ GUI can connect from them to a remote eCapture service.
- Needs Linux kernel 4.18+ on x86_64, 5.5+ on aarch64 or 6.6+ on LoongArch64, or Android on x86_64 or aarch64. Loading the eBPF programs requires root or, per the minimum-privileges guide, CAP_BPF, CAP_PERFMON and CAP_SYS_PTRACE on kernel 5.8+ (CAP_SYS_ADMIN on older kernels), plus CAP_NET_ADMIN for pcapng mode. Source builds need Go 1.26+, clang and LLVM 9+, cmake 3.18.4+, libelf and the pinned libpcap submodule; make nocore builds for kernels without BTF.
- Analysts choose the library or program to observe: the tls module locates the system OpenSSL through ld.so.conf paths or takes --libssl, which can also name a statically linked program, and gotls takes the Go program's ELF path; pcapng mode also needs a network interface and capture filter. Pcap mode records TLS-protected HTTP/1.x and HTTP/2 over TCP and HTTP/3 over QUIC, while the pcapng text source rebuilds only HTTP/1.1 and HTTP/2 over TCP. The project documents root-only end-to-end tests per module (make e2e).
- Apache-2.0; libpcap is a git submodule and the bin, dist, deps and bytecode directories hold only placeholders. Captured plaintext and keys can contain passwords, tokens and personal data: the project's defense-and-detection guide asks for written authorization before production use, scoping capture to chosen processes with --pid and handling the data under organizational policy, and describes how to detect eBPF capture tools.
About this entry
The description was reviewed against primary sources.
Primary sources
- README.md GitHub · gojue/ecapture · Revision e834aa0
- README.md#L34-L37 GitHub · gojue/ecapture · Revision e834aa0
- README.md#L120-L198 GitHub · gojue/ecapture · Revision e834aa0
- docs/compilation.md GitHub · gojue/ecapture · Revision e834aa0
- docs/minimum-privileges.md GitHub · gojue/ecapture · Revision e834aa0
- docs/defense-detection.md#L151-L166 GitHub · gojue/ecapture · Revision e834aa0
- docs/e2e-tests.md GitHub · gojue/ecapture · Revision e834aa0
- CHANGELOG.md GitHub · gojue/ecapture · Revision e834aa0
- .gitmodules GitHub · gojue/ecapture · Revision e834aa0
- LICENSE GitHub · gojue/ecapture · Revision e834aa0
- https://github.com/gojue/ecapture/releases/tag/v2.9.0
More in Protocols
- USBPcap · Tool
- cantools · Tool
- inspectrum · Tool
- PULSAR · Tool
- CanLab · Tool
- Facedancer · Tool