Skip to content
KitploitKITPLOIT
उपकरणब्लॉग
जमा करें
उपकरणब्लॉग
जमा करें

हैकिंग, पेनटेस्ट और साइबर सुरक्षा उपकरण आपके सुरक्षा शस्त्रागार के लिए!

Kitploit हैकिंग, साइबर सुरक्षा और पेंटेस्टिंग टूल्स की एक निर्देशिका है। कमजोरियों को खोजने, सिस्टम का विश्लेषण करने, परीक्षण को स्वचालित करने और अपनी सुरक्षा को मजबूत करने के लिए नवीनतम प्रोजेक्ट अपडेट खोजें।

··फ़ीड·संपर्क·गोपनीयता·© 2026 Kitploit

टूल निर्देशिका

श्रेणियाँ

सभी श्रेणियाँ देखें
Loading categories
frida-fuzzer — यह प्रायोगिक fuzzer API in-memory fuzzing के लिए उपयोग किया जाने वाला है। | Kitploit
उपकरण/GitHubGitHub/andreafioraldi/frida-fuzzer
गतिशील विश्लेषण (सैंडबॉक्सिंग)शोषणएपीआई सुरक्षा परीक्षणफज़िंगमोबाइल सुरक्षाबाइनरी विश्लेषणArchived
GitHubandreafioraldi/frida-fuzzer

frida-fuzzer

यह प्रायोगिक fuzzer API in-memory fuzzing के लिए उपयोग किया जाने वाला है।

रिपॉजिटरी देखें
577906 साल पहलेKitploit द्वारा समीक्षित

सबसे लोकप्रिय

सभी देखें →

हमारे समुदाय द्वारा सबसे अधिक उपयोग किए जाने वाले उपकरण खोजें।

सभी उपकरण खोजें

हमारे उपकरणों का संग्रह ब्राउज़ करें

सभी उपकरण देखें →
साझा करें

Frida API Fuzzer

v1.4 कॉपीराइट (C) 2020 Andrea Fioraldi [email protected]

Apache लाइसेंस v2.0 के तहत जारी

यह प्रायोगिक फज़र API इन-मेमोरी फज़िंग के लिए उपयोग किया जाने वाला है।

डिज़ाइन AFL/AFL++ से अत्यधिक प्रेरित और आधारित है।

ATM (अभी के लिए) म्यूटेटर काफी सरल है, केवल AFL के हैवॉक और स्प्लाइस चरण।

मैंने केवल tests/ के अंतर्गत उदाहरणों का परीक्षण किया है, यह एक WIP प्रोजेक्ट है लेकिन कम से कम 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 का उपयोग प्रारंभिक सीड के रूप में किया जाता है।

यदि आप किसी स्थानीय एप्लिकेशन को फज़ कर रहे हैं, तो आप frida-fuzzer से पहले system-config चलाना चाह सकते हैं ताकि आपके सिस्टम के पैरामीटर ट्यून हो सकें और चीजें तेज़ हो सकें।

./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 पर)।

उदाहरण

चलिए tests में उदाहरण Android ऐप में देशी साझा लाइब्रेरी को फज़ करते हैं।

सुनिश्चित करें कि आपके वर्चुअल डिवाइस पर रूट है:

root@kitploit:~
host$ adb root

Android x86_64 frida-server को रिपो रिलीज़ पेज से डाउनलोड करें और इसे डिवाइस पर /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

एमुलेटर में ऐप खोलें।

टेस्ट ऐप के साथ शिप की गई libnative-lib.so लाइब्रेरी के test_func फ़ंक्शन को निम्नलिखित कमांड से फज़ करें:

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

दिलचस्प टेस्टकेस और क्रैश दोनों output_folder में सहेजे जाते हैं।

आनंद लें।

screen1

TODO

अरे OSS समुदाय, यदि कोई योगदान देना चाहता है तो बहुत सारे TODOs हैं।

  • जावा कोड फज़िंग (frida-java-bridge में अतिरिक्त उजागर विधियों की प्रतीक्षा, आसान होना चाहिए, लगभग पूर्ण)
  • स्प्लाइस स्टेज (दो टेस्टकेस को क्यू में मर्ज करें और उस पर हैवॉक लागू करें)
  • डिक्शनरी का समर्थन (और इस प्रकार हैवॉक को भी संशोधित करें)
  • सीड चयन
  • आर्म64 के लिए इनलाइन इंस्ट्रूमेंटेशन
  • प्रदर्शन स्कोरिंग (AFL का अन्वेषण अनुसूची)
  • संरचनात्मक म्यूटेटर (JSON में लिखे गए व्याकरण के आधार पर बाइट्स को म्यूटेट करें)
  • CompareCoverage (फज़िंग रोडब्लॉक को बायपास करने के लिए उप-निर्देश प्रोफाइलिंग)
  • frida-fuzzer को C में frida-core के साथ फिर से लिखें ताकि सभी सामग्री मोबाइल डिवाइस पर चल सके

यदि इनमें से किसी एक सुविधा के बारे में संदेह है तो बेझिझक मुझे Twitter पर DM करें।

सुविधा प्रस्तावों के लिए, Issues अनुभाग है।

टूल डाउनलोड करें
-i FOLDERप्रारंभिक सीड्स वाला फ़ोल्डर
-o FOLDERमध्यवर्ती सीड्स और क्रैश वाला आउटपुट फ़ोल्डर
-UUSB से कनेक्ट करें
-spawnस्पॉन और अटैच करें बजाय केवल अटैच करने के
-script SCRIPTस्क्रिप्ट फ़ाइल नाम (डिफ़ॉल्ट fuzzer-agent.js है)