Skip to content
KitploitKITPLOIT
أدواتعمليات الاستغلالالمدونة
Log in
إرسال
أدواتعمليات الاستغلالالمدونة
إرسال

أدوات الاختراق واختبار الاختراق والأمن السيبراني لترسانتك الأمنية!

Kitploit هو دليل لأدوات الاختراق والأمن السيبراني واختبار الاختراق. اكتشف آخر تحديثات المشاريع للعثور على الثغرات وتحليل الأنظمة وأتمتة الاختبارات وتعزيز أمنك.

الخلاصاتاتصالالخصوصية© 2026 Kitploit

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
Binvariants — إطار اختبارات تشويش موجه بالثوابت على مستوى السجلات للبرامج الثنائية مغلقة المصدر، يستفيد من انتهاكات الثوابت المحتملة لاكتشاف الأعطال والأخطاء في الملفات التنفيذية الثنائية. | Kitploit
أدوات/GitHubGitHub/futureslab/binvariants
تحليل الثغرات الأمنيةالاستغلالالاختبار العشوائيتحليل الملفات الثنائية
GitHubfutureslab/binvariants

Binvariants

إطار اختبارات تشويش موجه بالثوابت على مستوى السجلات للبرامج الثنائية مغلقة المصدر، يستفيد من انتهاكات الثوابت المحتملة لاكتشاف الأعطال والأخطاء في الملفات التنفيذية الثنائية.

عرض المستودع
5129منذ 3 أشهرلم تتم المراجعة بعد

الأكثر شعبية

عرض الكل →

اكتشف الأدوات الأكثر استخدامًا من قبل مجتمعنا.

استكشف جميع الأدوات

تصفح مجموعتنا من الأدوات

عرض جميع الأدوات →
مشاركة

Binvariants: Fuzzing موجّه بالثوابت المحتملة على مستوى السجلات للثنائيات

شعار Binvariants

يوفر هذا المستودع الشيفرة المصدرية لـ Binvariants: إطار عمل أولي للـ fuzzing يستفيد من انتهاكات الثوابت المحتملة على مستوى السجلات من أجل إجراء fuzzing للثنائيات.

يُقدَّم هذا العمل في ورقتنا البحثية Binvariants: Enhancing Fuzzing of Closed-source Binary Executables via Register-level Likely Invariants | الشرائح، والتي تظهر في المؤتمر الدولي ACM لعام 2026 حول أسس هندسة البرمجيات (FSE’26).

  • تثبيت Binvariants
  • استخدام Binvariants
  • ملاحظات إضافية
  • حالات الأخطاء المكتشفة


سير عمل Binvariants
سير عمل Binvariants

الاستشهاد بهذا المستودع: @article{yang:binvariants, title = {Binvariants: Enhancing Fuzzing of Closed-source Binary Executables via Register-level Likely Invariants}, author = {Zao Yang and Stefan Nagy}, year = {2026}, issue_date = {July 2026}, publisher = {Association for Computing Machinery}, address = {New York, NY, USA}, volume = {3}, number = {FSE}, journal = {Proc. ACM Softw. Eng.}}
المطوّرون: Zao Yang ([email protected]) و Stefan Nagy ([email protected])
الترخيص: رخصة MIT
إخلاء المسؤولية: يُقدَّم هذا البرنامج كما هو دون أي ضمان.

تثبيت Binvariants

بُني Binvariants فوق AFL++ وQEMU-AFL. ثبّت الاعتماديات التي تتطلبها هذه المشاريع قبل إعداد Binvariants:

sudo apt-get update
sudo apt-get install -y build-essential python3-dev automake cmake git flex bison libglib2.0-dev libpixman-1-dev python3-setuptools cargo libgtk-3-dev
# try to install llvm-18 and install the distro default if that fails
sudo apt-get install -y lld-18 llvm-18 llvm-18-dev clang-18 || sudo apt-get install -y lld llvm llvm-dev clang
sudo apt-get install -y gcc-$(gcc --version|head -n1|sed 's/\..*//'|sed 's/.* //')-plugin-dev libstdc++-$(gcc --version|head -n1|sed 's/\..*//'|sed 's/.* //')-dev
sudo apt-get install -y meson ninja-build # for QEMU mode

يتضمن Binvariants مكوّنين:

  • 1-Invariant_Learner/
  • 2-Fuzzer/

لبناء كل منهما، انتقل إلى الدليل المقابل له وشغّل الأوامر التالية:

./1_patch.sh
./2_build.sh

استخدام Binvariants

يحتوي Example/ على سكربتات المثال وحالات الاختبار لاستخدام Binvariants لتشغيل fuzzing على الملف التنفيذي nconvert. يمكنك تعديل السكربتات لتشغيل fuzzing على ملفات تنفيذية أخرى.

الإعداد

قبل استخدام Binvariants، عطّل ASLR، لأنه يحتاج إلى عناوين كتل أساسية متسقة بين تعلّم الثوابت وتشغيل fuzzing:

sudo sysctl -w kernel.randomize_va_space=0

تعلّم الثوابت المحتملة على مستوى السجل (RLIs)

لتعلّم الثوابت، شغّل:

./Example/1-learn_invs.sh [Binvariants_Root]

سيتم حفظ RLIs المستنتجة في الدليل المحدد بواسطة BINV_TRACES_DIR في 1-learn_invs.sh، باسم: [PROGRAM]_trace_qemu_invs.

التشويش باستخدام RLIs

لبدء التشويش باستخدام Binvariants، شغّل:

./Example/2-fuzz.sh [Binvariants_Root] [Fuzz_Time] [Trial_Number]

على سبيل المثال، شغّل التجربة الأولى من حملة اختبار تشويش (fuzzing) مدتها 48 ساعة من الدليل الجذر لـ Binvariants:

./Example/2-fuzz.sh $PWD 48h 1

ملاحظات إضافية

فيما يلي تحسينات محتملة على Binvariants.

التعلّم التكيفي للثوابت

حاليًا، يتعلّم Binvariants الثوابت قبل التشويش ثم يشغّل التشويش بشكل منفصل. من التحسينات المحتملة تعلّم الثوابت أثناء التشويش وتحديثها عند حدوث الانتهاكات، مما يسمح بتطوّر التغذية الراجعة بمرور الوقت.

اعتبارات التصميم المحتملة:

  1. إذا تم تحديث الثوابت أثناء تنفيذ حالة اختبار تنهار لاحقًا أو تنتهي مهلتها، فقد يلزم التراجع عن التحديث. الحل العملي هو تطبيق التحديثات على نسخة من الثوابت وتثبيتها فقط إذا اكتملت حالة الاختبار بشكل طبيعي (أي FSRV_RUN_OK).
  2. مع تشغيل التشويش وتحديث الثوابت، ستصبح الانتهاكات أقل تكرارًا بشكل طبيعي. وهذا يخاطر بأن يختار AFL++ مرارًا حالات اختبار المراحل المبكرة (التي تُحدث انتهاكات أكثر لكنها تمثّل حالات برنامج أقل تطورًا). قد يلزم تعديل weight/perf_score/top_rated على جانب AFL++ لضمان اختيار حالات اختبار لاحقة أكثر تمثيلاً.

الثوابت العابرة للكتل الأساسية

يركّز Binvariants حاليًا على الثوابت أحادية الكتلة. من التحسينات المحتملة دعم الثوابت العابرة للكتل. ويتطلب ذلك هياكل بيانات جديدة لتتبّع قيم السجلات عبر حدود الكتل، بالإضافة إلى أدوات تتبع إضافية للتحقق من الانتهاكات عند انتقال التحكم بين الكتل.

خزانة جوائز الأخطاء

البرامجالأخطاء المُبلَّغ عنها
nconverthttps://newsgroup.xnview.com/viewtopic.php?t=49598
xls2csvhttps://github.com/vbwagner/catdoc/issues/6, https://github.com/vbwagner/catdoc/issues/7, https://github.com/vbwagner/catdoc/issues/8, https://github.com/vbwagner/catdoc/issues/9, https://github.com/vbwagner/catdoc/issues/10, https://github.com/vbwagner/catdoc/issues/11, https://github.com/vbwagner/catdoc/issues/12, https://github.com/vbwagner/catdoc/issues/13
gpmfhttps://github.com/gopro/gpmf-parser/issues/201, https://github.com/gopro/gpmf-parser/issues/202, https://github.com/gopro/gpmf-parser/issues/203
hdf5https://github.com/HDFGroup/hdf5/issues/5831, https://github.com/HDFGroup/hdf5/issues/5832, https://github.com/HDFGroup/hdf5/issues/5834
stormhttps://github.com/ladislav-zezula/StormLib/issues/397, https://github.com/ladislav-zezula/StormLib/issues/398
mp4splithttps://github.com/axiomatic-systems/Bento4/issues/1038, https://github.com/axiomatic-systems/Bento4/issues/1039
cpdfhttps://github.com/johnwhitington/camlpdf/issues/75
sfconverthttps://github.com/mpruett/audiofile/issues/73

إذا وجدت أي أخطاء أخرى باستخدام Binvariants، فيرجى إخبارنا!

شكر وتقدير

تستند هذه المادة إلى عمل مدعوم من مؤسسة العلوم الوطنية (NSF) بموجب الجائزة رقم 2419798، ومن وكالة مشاريع البحوث المتقدمة الدفاعية (DARPA) بموجب الجائزة رقم FA8750-24-2-0002، والمنحة الفرعية رقم GR105409-SUB00001384.

تنزيل الأداة