
O CPPLUMBER é uma ferramenta de análise estática que ajuda a detectar e acompanhar as informações do código -fonte C e C ++ que vazam para arquivos executáveis compilados.
O projeto é escrito em ferrugem e depende do Libclang, por isso é plataforma cruzada e pode ser usada em projetos que usam os mais recentes padrões C e C ++.
Imagine que você tem um arquivo de origem file1.c que você compilou em a.out e deseja saber se alguma string literal acabou em a.out , você pode simplesmente fazer:
$ 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!
A documentação completa do usuário está disponível aqui (e também aqui como Markdown).
Rust Versão 1.63.0 ou maior é necessário para construir o projeto.
git clone https://github.com/ergrelet/cpplumber.git
cd cpplumber
cargo build --release
Se você estiver instalado de ferrugem, pode instalar facilmente o CPPLUMBER com cargo :
cargo install --git https://github.com/ergrelet/cpplumber --tag 0.1.0
Depois disso, você pode invocar cpplumber de qualquer lugar através da linha de comando.
Lembre -se de que você precisa ter as dependências necessárias para cpplumber funcionar corretamente. Confira a documentação do usuário para obter mais detalhes.