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

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

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

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

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
frida-fuzzer — هذا المُختبر التجريبي مخصص لاستخدامه في اختبار API في الذاكرة. | Kitploit
أدوات/GitHubGitHub/andreafioraldi/frida-fuzzer
التحليل الديناميكي (عزل)الاستغلالاختبار أمان APIالاختبار العشوائيأمن الجوالتحليل الملفات الثنائيةArchived
GitHubandreafioraldi/frida-fuzzer

frida-fuzzer

هذا المُختبر التجريبي مخصص لاستخدامه في اختبار API في الذاكرة.

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

الأكثر شعبية

عرض الكل →

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

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

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

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

فازر API فريدا

الإصدار 1.4 حقوق النشر (C) 2020 أندريا فيورالدي [email protected]

تم الإصدار بموجب رخصة Apache الإصدار 2.0

تم تصميم هذا الفازر التجريبي لاستخدامه في فازر API داخل الذاكرة.

التصميم مستوحى بشكل كبير ومبني على AFL/AFL++.

ATM المحول بسيط للغاية، فقط مراحل havoc و splice الخاصة بـ AFL.

اختبرت فقط الأمثلة الموجودة تحت tests/، هذا مشروع قيد التطوير ولكن من المعروف أنه يعمل على الأقل على GNU/Linux x86_64 و Android x86_64.

تحتاج إلى Frida >= 12.8.1 لتشغيل هذا (pip3 install -U frida) و frida-tools لتجميع الهارنس.

الاستخدام

يجب استيراد مكتبة fuzz في هارنس مخصص ثم تجميعها باستخدام frida-compile لتوليد العامل الذي سيقوم frida-fuzzer بحقنه في التطبيق الهدف.

معظم منطق الفازر موجود في العامل.

الهارنس له التنسيق التالي:

root@kitploit:~
var fuzz = require("./fuzz");

var TARGET_MODULE = "test_linux64";
var TARGET_FUNCTION = DebugSymbol.fromName("target_func").address;;
var RET_TYPE = "void";
var ARGS_TYPES = ['pointer', 'int'];

var func_handle = new NativeFunction(TARGET_FUNCTION, RET_TYPE, ARGS_TYPES, { traps: 'all' });

fuzz.target_module = TARGET_MODULE;

var payload_mem = Memory.alloc(fuzz.config.MAX_FILE);

fuzz.fuzzer_test_one_input = function (/* Uint8Array */ payload) {

  Memory.writeByteArray(payload_mem, payload, payload.length);

  func_handle(payload_mem, payload.length);

}

fuzz.fuzzer_test_one_input إلزامي. إذا لم تحدد fuzz.target_module، فسيتم تجهيز جميع الأكواد التي يتم تنفيذها.

يمكنك أيضًا تعيين fuzz.manual_loop_start = true لإخبار الفازر بأنك ستستدعي fuzz.fuzzing_loop() في رد اتصال وبالتالي لا يجب عليه استدعائها نيابة عنك (على سبيل المثال، لبدء الفازر عند النقر على زر في تطبيق Android).

يمكن تعيين رد الاتصال fuzz.init_callback لتنفيذ الكود عندما يكون الفازر جاهزًا للبدء. انظر tests/test_java.js للحصول على مثال.

fuzz.dictionary هو قاموس فازر كلاسيكي، مصفوفة يمكنك إضافة عناصر إليها (الأنواع المقبولة هي Array، ArrayBuffer، Uint8Array، String) تُستخدم كقيم إضافية في المحول. انظر tests/test_libxml2.js للحصول على مثال.

frida-fuzzer يقبل الوسائط التالية:

إذا لم تحدد مجلد الإخراج، يتم إنشاء مجلد مؤقت تحت /tmp. إذا لم تحدد المجلد الذي يحتوي على البذرة الأولية، يتم استخدام بذرة غير موجهة 0000 كبذرة بداية.

إذا كنت تقوم بفازر تطبيق محلي، فقد ترغب في تنفيذ system-config قبل frida-fuzzer لضبط معلمات النظام وتسريع الأمور.

عند تشغيل ./frida-fuzzer -spawn ./tests/test_linux64 سترى شيئًا مثل شاشة الحالة التالية على الطرفية الخاصة بك:

screen

يمكنك أيضًا إضافة مرحلة مخصصة بسهولة في fuzz/fuzzer.js وإضافتها إلى قائمة المراحل في fuzz/index.js.

لتخصيص الفازر، قم بتعديل fuzz/config.js. المتغيرات التي قد ترغب في تغييرها هي MAP_SIZE (إذا كان الكود الذي تقوم بفازره صغيرًا، يمكنك تقليله وكسب القليل من السرعة)، MAX_FILE (الحد الأقصى لحجم الإدخال المولد) و QUEUE_CACHE_MAX_SIZE (زيادة حجم ذاكرة التخزين المؤقت لقائمة الانتظار لمزيد من السرعة، خاصة على Android).

مثال

دعونا نقوم بفازر المكتبة المشتركة الأصلية في تطبيق Android المثال في tests.

تأكد من أن لديك صلاحية الجذر على جهازك الافتراضي:

root@kitploit:~
host$ adb root

قم بتنزيل خادم frida-server لنظام Android x86_64 من صفحة إصدار المستودع وانسخه على الجهاز تحت /data/local/tmp (استخدم adb push).

ابدأ شيل وقم بتشغيل frida-server:

root@kitploit:~
device# cd /data/local/tmp
device# ./frida-server

الآن قم بتثبيت تطبيق الاختبار tests/app-debug.apk باستخدام السحب والإفلات في نافذة المحاكي.

ثم افتح التطبيق.

قم بتجميع نص العامل باستخدام frida-compile:

root@kitploit:~
host$ frida-compile -x tests/test_ndk_x64.js -o fuzzer-agent.js

افتح التطبيق في المحاكي.

قم بفازر دالة test_func في المكتبة libnative-lib.so المرفقة مع تطبيق الاختبار باستخدام الأمر:

root@kitploit:~
host$ ./frida-fuzzer -U -o output_folder/ com.example.ndktest1

يتم حفظ حالات الاختبار المثيرة للاهتمام والانهيارات في مجلد output_folder.

استمتع.

screen1

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

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

  • فازر كود Java (في انتظار طرق إضافية مكشوفة في frida-java-bridge، يجب أن يكون سهلاً، تم تقريبًا)
  • مرحلة splice (دمج حالتين اختبار في قائمة الانتظار وتطبيق havoc عليهما)
  • دعم القواميس (وبالتالي تعديل havoc أيضًا)
  • اختيار البذور
  • تجهيز مدمج لـ arm64
  • تسجيل الأداء (استكشاف جدول AFL)
  • محول هيكلي (تحويل البايتات بناءً على قواعد نحوية مكتوبة بلغة JSON)
  • CompareCoverage (تحليل تعليمات فرعية لتجاوز عقبات الفازر)
  • إعادة كتابة frida-fuzzer بلغة C مع frida-core لتتمكن من تشغيل كل شيء على الجهاز المحمول

إذا كان لديك شك في إحدى هذه الميزات، فلا تتردد في مراسلتي على Twitter.

لاقتراحات الميزات، يوجد قسم المشكلات.

تنزيل الأداة
-i FOLDERالمجلد الذي يحتوي على البذور الأولية
-o FOLDERمجلد الإخراج الذي يحتوي على البذور الوسيطة والانهيارات
-Uالاتصال بـ USB
-spawnإنشاء وإرفاق بدلاً من الإرفاق البسيط
-script SCRIPTاسم ملف النص البرمجي (الافتراضي هو fuzzer-agent.js)