
مكتبة متقدمة للاختبار العشوائي - قم بتجميع أداة الاختبار العشوائي الخاصة بك في Rust! يتوسع عبر الأنوية والأجهزة. لـ Windows و Android و MacOS و Linux و no_std و ...
LibAFL، مكتبة التشويشمكتبة تشويش متقدمة - قم بتجميع أدوات التشويش الخاصة بك وتوسيع ميزاتها باستخدام Rust.
LibAFL هي مجموعة من القطع القابلة لإعادة الاستخدام من أدوات التشويش، مكتوبة بلغة Rust، حيث تمنحك العديد من فوائد أداة التشويش الجاهزة مع كونها قابلة للتخصيص بالكامل.
تتضمن بعض الميزات البارزة حالياً ما يلي:
LLMP أو Low Level Message Passing تسمح لـ LibAFL بالتوسع بشكل خطي تقريباً عبر النوى، وعبر TCP إلى أجهزة متعددة.LibAFL. على سبيل المثال، BytesInput هو مجرد أحد أشكال المدخلات المحتملة: لا تتردد في إضافة مدخلات قائمة على AST للتشويش المنظم، والمزيد.LibAFL على Windows وmacOS وiOS وLinux وAndroid وغيرها. يمكن بناء LibAFL في وضع no_std لحقن LibAFL في أهداف غامضة مثل الأجهزة المضمنة ومشغّلات الآلات الافتراضية.LibAFL سريعة، متعددة المنصات، متوافقة مع no_std، وقابلة للتوسع عبر النوى والأجهزة. تقدم كريت رئيسية توفر لبنات بناء لأدوات تشويش مخصصة: libafl وهي مكتبة تحتوي على كود شائع يمكن استخدامه لتجهيز الأهداف، وlibafl_targets وهي مكتبة توفر التسهيلات لتغليف المترجمات، وlibafl_cc. تقدم تكاملات مع أطر التجهيز الشائعة. حالياً، المحركات الخلفية المدعومة هي:
SanitizerCoverage في libafl_targetsFrida في libafl_fridaQEMU وضع المستخدم ووضع النظام، بما في ذلك الخطافات للمحاكاة، في libafl_qemuTinyInst في libafl_tinyinst بواسطة elbiazoنوصي بشدة بعدم استخدام حزمة توزيع Linux الخاصة بك مثلاً لأنها قد تكون قديمة. لذا قم بتثبيت Rust مباشرةً، يمكن العثور على التعليمات هنا.
الحد الأدنى لإصدار Rust المدعوم محدد. يمكنك دائماً التحقق من الإصدار المطلوب حالياً في ملف LibAFL’s Cargo.toml:
إذا كان إصدار Rust المثبت لديك أقدم من المذكور في Cargo.toml، قم بالتحديث إلى أحدث سلسلة أدوات مستقرة:
rustup update stable
fuzzers/. يمكنك العثور على تعليمات تثبيته في بيئتك في دليل مستخدم Just.LibAFL باستخدامgit clone https://github.com/AFLplusplus/LibAFL
cargo build --release
cargo doc
LibAFL (قيد التطوير!) باستخدام (يتطلب mdbook)cd docs && mdbook serve
نقوم بتجميع جميع أدوات التشويش المثال في ./fuzzers.
تأكد من قراءة توثيقها (ومصادرها)، هذه هي الطريقة الطبيعية للبدء!
just run
يمكنك تشغيل كل أداة تشويش مثال باستخدام هذا الأمر التالي، طالما أن دليل أداة التشويش يحتوي على ملف Justfile. أفضل أداة تشويش تم اختبارها هي ./fuzzers/inprocess/libfuzzer_libpng، وهي أداة تشويش متعددة النوى تشبه libfuzzer تستخدم LibAFL لـ harness libpng.
LibAFL (قيد التطوير) على الإنترنت أو في المستودعlibaf_qemu، Hacking TMNF - تشويش خادم اللعبة، بواسطة RickdeJager.LibAFL مكتوب ومُدار بواسطة
يرجى الاطلاع على CONTRIBUTING.md للحصول على إرشادات المساهمة.
لا تعمل أداة التشويش الخاصة بك كما هو متوقع؟ حاول قراءة DEBUGGING.md لفهم كيفية تصحيح مشاكلك.
إذا كنت تستخدم LibAFL في عملك الأكاديمي، يرجى الاستشهاد بالورقة التالية:
@inproceedings{libafl,
author = {Andrea Fioraldi and Dominik Maier and Dongjia Zhang and Davide Balzarotti},
title = {{LibAFL: A Framework to Build Modular and Reusable Fuzzers}},
booktitle = {Proceedings of the 29th ACM conference on Computer and communications security (CCS)},
series = {CCS '22},
year = {2022},
month = {November},
location = {Los Angeles, U.S.A.},
publisher = {ACM},
}