
CPPLumber es una herramienta de análisis estático que ayuda a detectar y realizar un seguimiento de la información del código fuente C y C ++ que se filtra en archivos ejecutables compilados.
El proyecto está escrito en Rust y depende de LibClang, por lo que es multiplataforma y puede usarse en proyectos que utilizan los últimos estándares C y C ++.
Imagine que tiene un archivo de archivo file1.c origen1.c que compiló en a.out y desea saber si alguna cadena literal terminó en a.out , simplemente puede hacer:
$ 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!
La documentación completa del usuario está disponible aquí (y también aquí como Markdown).
Rust Version 1.63.0 o más se necesita para construir el proyecto.
git clone https://github.com/ergrelet/cpplumber.git
cd cpplumber
cargo build --release
Si tiene el óxido instalado, puede instalar fácilmente CPPLumber con cargo :
cargo install --git https://github.com/ergrelet/cpplumber --tag 0.1.0
Después de eso, puede invocar cpplumber desde cualquier lugar a través de la línea de comandos.
Tenga en cuenta que necesita tener las dependencias requeridas instaladas para cpplumber para ejecutarse correctamente. Consulte la documentación del usuario para obtener más detalles.