Skip to content
KitploitKITPLOIT
أدواتالمدونة
إرسال
أدواتالمدونة
إرسال

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

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

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

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
uniFuzzer — أداة اختبار تشويش للبرامج الثنائية مغلقة المصدر مبنية على Unicorn و LibFuzzer | Kitploit
أدوات/GitHubGitHub/pagalaxylab/unifuzzer
أمان الأنظمة المدمجةأمان إنترنت الأشياءالاختبار العشوائيتحليل الملفات الثنائية
GitHubpagalaxylab/unifuzzer

uniFuzzer

أداة اختبار تشويش للبرامج الثنائية مغلقة المصدر مبنية على Unicorn و LibFuzzer

عرض المستودع
346575منذ 7 سنواتتمت المراجعة من قبل Kitploit

الأكثر شعبية

عرض الكل →

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

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

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

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

uniFuzzer

uniFuzzer هي أداة اختبار تشويش (fuzzing) للملفات الثنائية مغلقة المصدر تعتمد على Unicorn و LibFuzzer. تدعم حالياً اختبار تشويش ملفات ELF ذات 32 بت بنظام LSB على معماريات ARM/MIPS، والتي توجد عادةً في أجهزة إنترنت الأشياء.

中文介绍

الميزات

  • اختراق بسيط جداً وسهل البناء
  • يمكن استهداف أي دالة أو مقطع كودي محدد
  • اختبار تشويش موجه بالتغطية بسرعة معقولة
  • تحليل التبعيات وتحميلها تلقائياً
  • تجاوز دوال المكتبات باستخدام PRELOAD

البناء

  1. قم بعكس (Reverse) الملف الثنائي المستهدف وابحث عن دوال مثيرة للاهتمام لاختبار التشويش.
  2. أنشئ ملف .c في الدليل callback، ويجب أن يحتوي على دوال رد النداء التالية:
  • void onLibLoad(const char *libName, void *baseAddr, void *ucBaseAddr): تُستدعى في كل مرة يتم تحميل مكتبة تابعة داخل Unicorn.
  • int uniFuzzerInit(uc_engine *uc): تُستدعى بعد تحميل جميع الملفات الثنائية داخل Unicorn. يمكن إعداد المكدس/الكومة/المسجلات هنا.
  • int uniFuzzerBeforeExec(uc_engine *uc, const uint8_t *data, size_t len): تُستدعى قبل كل جولة تنفيذ اختبار التشويش.
  • int uniFuzzerAfterExec(uc_engine *uc): تُستدعى بعد كل جولة تنفيذ اختبار التشويش.
  1. قم بتشغيل make وستحصل على أداة اختبار التشويش المسماة uf.

التشغيل

يستخدم uniFuzzer متغيرات البيئة التالية كبارامترات:

  • UF_TARGET: مسار الملف الهدف (ELF)
  • UF_PRELOAD: مسار مكتبة التحميل المسبق. تأكد من أن المكتبة لها نفس معمارية الملف الهدف.
  • UF_LIBPATH: المسارات التي توجد بها المكتبات التابعة. استخدم : لفصل المسارات المتعددة.

ويمكن بدء اختبار التشويش باستخدام الأمر التالي:

root@kitploit:~
UF_TARGET=<target> [UF_PRELOAD=<preload>] UF_LIBPATH=<libPath> ./uf

عرض توضيحي

يوجد عرض توضيحي للاستخدام الأساسي. يحتوي العرض على الملفات التالية:

  • demo-vuln.c: هذا هو الهدف لاختبار التشويش. يحتوي على دالة بسيطة تدعى vuln() والتي عرضة لفيضان المكدس/الكومة.
  • demo-libcpreload.c: هذا لتجاوز PRELOAD. يعرّف دالة printf() فارغة ونسخة مبسطة من malloc()/free().
  • callback/demo-callback.c: يعرّف دوال رد النداء اللازمة لاختبار تشويش دالة vuln() التوضيحية.

أولاً، يرجى تثبيت gcc لمعمارية mipsel (الحزمة gcc-mipsel-linux-gnu على Debian) لبناء العرض التوضيحي:

root@kitploit:~
# الملف الثنائي الهدف
# الخيار '-Xlinker --hash-style=sysv' يخبر gcc باستخدام 'DT_HASH' بدلاً من 'DT_GNU_HASH' للبحث عن الرموز
# لأن uniFuzzer حالياً لا يدعم 'DT_GNU_HASH'
mipsel-linux-gnu-gcc demo-vuln.c -Xlinker --hash-style=sysv -no-pie -o demo-vuln

# مكتبة التحميل المسبق
mipsel-linux-gnu-gcc -shared -fPIC -nostdlib -Xlinker --hash-style=sysv demo-libcpreload.c -o demo-libcpreload.so

أو يمكنك استخدام الملفين demo-vuln و demo-libcpreload.so مباشرة، وهما مُجمَّعان باستخدام الأوامر أعلاه.

بعد ذلك، قم بتشغيل make لبناء uniFuzzer. يرجى ملاحظة أنه إذا قمت بتجميع عرض MIPS بنفسك، فقد تختلف بعض العناوين عن تلك المُجمَّعة مسبقاً ويجب تحديث demo-callback.c وفقاً لذلك.

أخيراً، تأكد من تجهيز مكتبة libc الخاصة بـ MIPS. على Debian توجد في /usr/mipsel-linux-gnu/lib/ بعد تثبيت الحزمة libc6-mipsel-cross، وهذا هو ما يجب أن تشير إليه UF_LIBPATH:

root@kitploit:~
UF_TARGET=<path to demo-vuln> UF_PRELOAD=<path to demo-libcpreload.so> UF_LIBPATH=<lib path for MIPS> ./uf

اختراق Unicorn

يقوم Unicorn بمسح ذاكرة التخزين المؤقت JIT الخاصة بـ QEMU بسبب هذه المشكلة، مما يبطئ سرعة اختبار التشويش حيث سيتم إعادة ترجمة الملف الثنائي المستهدف عبر JIT في كل جولة تنفيذ.

يمكننا التعليق على tb_flush(env); كما هو مذكور في تلك المشكلة لتحسين الأداء.

المهام المستقبلية

  • دعم استدعاءات النظام (syscall)
  • دعم معماريات وتنسيقات ثنائية أخرى
  • دعم GNU_HASH
  • دعم IFUNC
  • دمج إعداد البيئة وتوفير واجهات برمجة تطبيقات (APIs)
تنزيل الأداة