Cpplumber
Static analysis tool based on clang, which detects source-to-binary information leaks in C and C++ projects
Install / Use
/learn @ergrelet/CpplumberREADME
cpplumber

Cpplumber is a static analysis tool that helps detecting and keeping track of C and C++ source code information that leaks into compiled executable files.
The project is written in Rust and depends on libclang, so it's cross-platform and can be used on projects that use the latest C and C++ standards.
Key Features
- Supports JSON compilation databases
- Tracks leaks of string literals, struct names and class names
- Allows filtering reported leaks through a YAML configuration file
- Generates raw text and JSON reports
Quick Example
Imagine you have a source file file1.c that you compiled into a.out and
you want to know if some string literal ended up in a.out, you can simply do:
$ cpplumber --bin a.out file1.c
[2022-09-24T19:57:14Z INFO cpplumber] Gathering source files...
[2022-09-24T19:57:14Z INFO cpplumber] Filtering suppressed files...
[2022-09-24T19:57:14Z INFO cpplumber] Extracting artifacts from source files...
[2022-09-24T19:57:15Z INFO cpplumber] Filtering suppressed artifacts...
[2022-09-24T19:57:15Z INFO cpplumber] Looking for leaks in 'a.out'...
"My_Super_Secret_API_Key" (string literal) leaked at offset 0x14f20 in "/full/path/to/a.out" [declared at /full/path/to/file1.c:5]
Error: Leaks detected!
Documentation
The full user documentation is available here (and also here as Markdown).
How to Build
Rust version 1.63.0 or greater is needed to build the project.
git clone https://github.com/ergrelet/cpplumber.git
cd cpplumber
cargo build --release
How to Install
If you have Rust installed, you can easily install Cpplumber with cargo:
cargo install --git https://github.com/ergrelet/cpplumber --tag 0.1.0
After that, you can invoke cpplumber from anywhere through the command-line.
Keep in mind that you need to have the required dependencies installed for
cpplumber to run properly. Check out the user documentation for more details.
Related Skills
himalaya
343.1kCLI to manage emails via IMAP/SMTP. Use `himalaya` to list, read, write, reply, forward, search, and organize emails from the terminal. Supports multiple accounts and message composition with MML (MIME Meta Language).
node-connect
343.1kDiagnose OpenClaw node connection and pairing failures for Android, iOS, and macOS companion apps
frontend-design
90.0kCreate distinctive, production-grade frontend interfaces with high design quality. Use this skill when the user asks to build web components, pages, or applications. Generates creative, polished code that avoids generic AI aesthetics.
coding-agent
343.1kDelegate coding tasks to Codex, Claude Code, or Pi agents via background process
