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

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

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

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

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
manul — Manul هو مفزر متوازي موجه بالتغطية للثنائيات مفتوحة المصدر والصندوق الأسود على أنظمة Windows و Linux و MacOS. | Kitploit
أدوات/GitHubGitHub/mxmssh/manul
التحليل الديناميكي (عزل)تحليل الثغرات الأمنيةالاختبار العشوائيتحليل الملفات الثنائية
GitHubmxmssh/manul

manul

Manul هو مفزر متوازي موجه بالتغطية للثنائيات مفتوحة المصدر والصندوق الأسود على أنظمة Windows و Linux و MacOS.

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

الأكثر شعبية

عرض الكل →

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

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

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

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

مانول

Travis AppVeyor

شعار

مانول هو مدمج موازٍ موجه بالتغطية للتطبيقات مفتوحة المصدر ومغلقة المصدر على ويندوز ولينكس وماك أو إس (نسخة تجريبية) مكتوب بلغة بايثون النقية.

بداية سريعة

pip3 install psutil
git clone https://github.com/mxmssh/manul
cd manul
mkdir in
mkdir out
echo "AAAAAA" > in/test
python3 manul.py -i in -o out -n 4 "linux/test/test_afl @@"

تثبيت Radamsa

sudo apt-get install gcc make git wget
git clone https://gitlab.com/akihe/radamsa.git && cd radamsa && make && sudo make install

لا حاجة لتثبيت radamsa على ويندوز، حيث يتم توزيع مانول مع المكتبة الأصلية لـ radamsa على هذا النظام الأساسي.

قائمة بـ CVEs العامة

معرفات CVEالمنتجالمكتشف
CVE-2019-9631 CVE-2019-7310 CVE-2019-9959PopplerMaksim Shudrak
CVE-2018-17019 CVE-2018-16807 CVE-2019-12175Bro/ZeekMaksim Shudrak

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

عرض توضيحي

عرض توضيحي قصير

المتطلبات

  1. Python3 (تم إيقاف Python2 اعتبارًا من 1 يناير 2020 ولكن مانول ما زال يعمل بشكل جيد تحت Python2)
  2. psutil
  3. pywin32 (pip install pywin32) على ويندوز (مطلوب لوضع استمرارية DBI فقط).

التدمير الموجه بالتغطية

حاليًا، يدعم مانول نوعين من التجهيز: القائم على AFL (afl-gcc, afl-clang و afl-clang-fast) و DBI.

التدمير الموجه بالتغطية (وضع تجهيز AFL)

قم بتجهيز الهدف باستخدام afl-gcc أو afl-clang-fast و Address Sanitizer (موصى به للحصول على نتائج أفضل). مثال:

CC=afl-gcc CXX=afl-g++ CFLAGS=-fsanitize=address CXXFLAGS=-fsanitize=address cmake <path_to_your_target>
make -j 8
USE_ASAN=1 CC=afl-clang-fast CXX=afl-clang-fast++ cmake <path_to_your_target>
make -j 8

راجع هذه التعليمات لمزيد من التفاصيل.

التدمير الموجه بالتغطية في وضع DBI

لا تحتاج إلى تجهيز هدفك في هذا الوضع ولكن تحتاج إلى تنزيل أحدث إصدار من إطار DynamoRIO لويندوز أو لينكس.

يتم توزيع مانول مع عملاء مُجمَّعين مسبقًا لويندوز ولينكس بتقنيتي x86/x64. يمكنك العثور عليهم في المجلدات التالية:

linux/dbi_32|dbi_64/libbinafl.so (عميل DynamoRIO)
win/dbi_32|dbi_64/binafl.dll

لسوء الحظ، DynamoRIO غير مدعوم رسميًا على ماك أو إس.

استخدام DynamoRIO لتدمير التطبيقات مغلقة المصدر

يمكنك العثور على حزم إصدار DynamoRIO الأحدث على صفحة تحميل DynamoRIO.

يجب إلغاء تعليق الأسطر التالية في ملف manul.config وتقديم المسار الصحيح لمشغل DynamoRIO وعميله.

# اختر إطار DBI لتوفير التغطية لمانول ("dynamorio" أو "pin"). مثال dbi = dynamorio
dbi = dynamorio
# إذا كانت معلمة dbi ليست None، يجب تحديد مسار مشغل محرك DBI وعميل DBI.
dbi_root = /home/max/DynamoRIO/bin64/drrun
dbi_client_root = /home/max/manul/linux/dbi_64/libbinafl.so
dbi_client_libs = None

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

dbi_persistence_mode = 1
dbi_target_module = afl_test
dbi_target_method = open_file
#dbi_target_offset = 0x3198 # اختياريًا يمكنك تقديم إزاحة هذه الدالة بدلاً من الاسم
dbi_fuzz_iterations = 1000

يقدم مؤلفو winAFL شرحًا جيدًا جدًا لكيفية عمل ذلك فعليًا هنا. يستخدم مانول جزءًا كبيرًا من كود مكتبة تجهيز winAFL للتواصل وتجهيز الهدف.

ملاحظة هامة: يجب استخدام مشغل 32 بت وعميل 32 بت لتدمير التطبيقات ذات 32 بت، ومشغل 64 بت وعميل 64 بت للتطبيقات ذات 64 بت!

تجميع مكتبة عميل DynamoRIO

لتجميع مكتبة التجهيز، تحتاج إلى استخدام أحدث إصدار من DynamoRIO. يمكن العثور على الكود المصدري لمكتبة التجهيز في dbi_clients_src الموجود في المجلد الرئيسي لمانول.

لينكس 64 بت

cd dbi_clients_src
wget <DynamoRIO-x86_64-Linux-X.XX.XXXX-X.tar.gz> - قم بتنزيل أحدث إصدار من DynamoRIO
tar xvf DynamoRIO-x86_64-X.XX.XXXX-X.tar.gz
mkdir client_64
cd client_64
cmake ../dr_cov/ -DDynamoRIO_DIR=/home/max/manul/dbi_clients_src/DynamoRIO-x86_64-Linux-X.XX.XXXX-X.tar.gz/cmake
make
لينكس 32 بت
cd dbi_clients_src
wget <DynamoRIO-i386-Linux-X.XX.XXXX-X.tar.gz> - قم بتنزيل أحدث إصدار من DynamoRIO
tar xvf DynamoRIO-x86_64-X.XX.XXXX-X.tar.gz
mkdir client_64
cd client_64
CFLAGS=-m32 CXXFLAGS=-m32 cmake ../dr_cov/ -DDynamoRIO_DIR=/home/max/manul/dbi_clients_src/DynamoRIO-i386-Linux-X.XX.XXXX-X.tar.gz/cmake
make

على ويندوز، أسهل طريقة لتجميع المكتبة هي تثبيت Visual Studio (تم اختباره على إصداري 2017 و 2013)، تشغيل VS20XX Cross Tools Command Prompt وتشغيل الأوامر التالية:

ويندوز 64 بت
cd dbi_clients_src
<قم بتنزيل واستخراج أحدث إصدار من DynamoRIO>
mkdir client_64
cd client_64
cmake -G"Visual Studio 15 Win64" ..\dr_cov\ -DDynamoRIO_DIR=C:\Users\max\manul\dbi_clients_src\DynamoRIO-Windows-XXXX.XX.X.X\cmake
cmake --build . --config RelWithDebInfo (أو Debug إذا لزم الأمر)
ويندوز 32 بت
cd dbi_clients_src
<قم بتنزيل واستخراج أحدث إصدار من DynamoRIO>
mkdir client_32
cd client_32
cmake -G"Visual Studio 15" ..\dr_cov\ -DDynamoRIO_DIR=C:\Users\max\manul\dbi_clients_src\DynamoRIO-Windows-XXXX.XX.X.X\cmake
cmake --build . --config RelWithDebInfo (أو Debug إذا لزم الأمر)

استخدام Intel PIN لتدمير التطبيقات مغلقة المصدر على لينكس

كان مانول يدعم في البداية التدمير الموجه بالتغطية عبر Intel PIN ولكن نظرًا لضعف الأداء وارتفاع تكلفة الصيانة، لم يعد هذا مدعومًا.

وسائط سطر الأوامر

يمكن تقديم الخيارات الأكثر استخدامًا عبر سطر الأوامر. يتم دعم المزيد من الخيارات باستخدام ملف التكوين (manul.config).

مثال: python3 manul.py -i corpus -o out_dir -n 40 "target @@"

الوسائط الموضعية:
  target_binary  التطبيق الهدف والخيارات التي سيتم تنفيذها (لا تنس تضمين علامات الاقتباس مثل "target e @@").

الوسائط الاختيارية:
  -h, --help     يعرض رسالة المساعدة هذه ويخرج
  -n NFUZZERS    عدد المدمجين المتوازيين
  -s             تشغيل التدمير الأعمى (بدون تجهيز كود)
  -c CONFIG      مسار ملف التكوين مع خيارات إضافية (انظر قسم خيارات ملف التكوين أدناه)
  -r             استعادة الجلسة السابقة

المعاملات المطلوبة:
  -i INPUT       مسار الدليل الذي يحتوي على النماذج الأولية
  -o OUTPUT      مسار دليل الإخراج

خيارات ملف التكوين

يتم توزيع مانول مع ملف manul.config الافتراضي حيث يمكن للمستخدم العثور على جميع الخيارات المدعومة وأمثلة الاستخدام. يجب تحديد الخيارات بالتنسيق التالي Format: <option_name> = <value>. يمكن استخدام الرمز # لتجاهل سطر.

قاموس

dict = /home/max/dictionaries/test.dict. تسمح استراتيجية الطفرات في AFL للمستخدم بتحديد قائمة من الرموز المخصصة التي يمكن إدراجها في أماكن عشوائية في الملف المدمَّر. يدعم مانول هذه الوظيفة عبر هذا الخيار (يُفضل المسارات المطلقة).

أوزان المطفرات

mutator_weights=afl:7,radamsa:2,my_mutator:1. تسمح أوزان المطفرات للمستخدم بإخبار مانول بعدد الطفرات لكل 10 عمليات تنفيذ التي يجب أن يقوم بها مدمج معين. في هذا المثال، سيتم تنفيذ مطفر AFL في 7/10 من الطفرات، و Radamsa 2/10، وسيحصل my_mutator المخصص على 1/10. إذا كنت تريد تعطيل مطفر معين، يجب تعيين الوزن إلى 0 (مثل mutator_weights=afl:0,radamsa:1,my_mutator:9).

بذرة محددة (خيار Radamsa)

deterministic_seed = False|True. بتقديم True، ستصبح طفرات Radamsa حتمية وبالتالي كل تشغيلة لمانول ستؤدي إلى نفس المخرجات.

تنزيل الأداة