
CPPLumber هي أداة تحليل ثابت تساعد على اكتشاف وتتبع معلومات رمز المصدر C و C ++ التي تتسرب إلى ملفات قابلة للتنفيذ.
يتم كتابة المشروع في الصدأ ويعتمد على libclang ، لذلك فهو متشابك ويمكن استخدامه في المشاريع التي تستخدم أحدث معايير C و C ++.
تخيل أن لديك ملفًا مصدرًا file1.c قمت بتجميعه في a.out وتريد أن تعرف ما إذا كانت بعض الخيوط الحرفية قد انتهت في a.out ، يمكنك ببساطة القيام بها:
$ 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!
وثائق المستخدم الكاملة متوفرة هنا (وكذلك هنا كـ Markdown).
هناك حاجة إلى Rust Version 1.63.0 أو أكثر لبناء المشروع.
git clone https://github.com/ergrelet/cpplumber.git
cd cpplumber
cargo build --release
إذا كنت قد قمت بتثبيت الصدأ ، فيمكنك بسهولة تثبيت CPPlumber مع cargo :
cargo install --git https://github.com/ergrelet/cpplumber --tag 0.1.0
بعد ذلك ، يمكنك استدعاء cpplumber من أي مكان من خلال سطر الأوامر.
ضع في اعتبارك أنك بحاجة إلى تثبيت التبعيات المطلوبة لـ cpplumber لتشغيلها بشكل صحيح. تحقق من وثائق المستخدم لمزيد من التفاصيل.