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

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

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

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

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

श्रेणियाँ

सभी श्रेणियाँ देखें
Loading categories
frelatage — पायथन अनुप्रयोगों के लिए कवरेज-आधारित फ़ज़र | Kitploit
उपकरण/GitHubGitHub/rog3rsm1th/frelatage
गतिशील विश्लेषण (सैंडबॉक्सिंग)भेद्यता विश्लेषणकोड विश्लेषणफज़िंग
GitHubrog3rsm1th/frelatage

frelatage

पायथन अनुप्रयोगों के लिए कवरेज-आधारित फ़ज़र

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

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

सभी देखें →

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

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

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

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


pip3 install frelatage


फ़ज़र जिसकी दुनिया हक़दार है

स्थापना    |    यह कैसे काम करता है    |    विशेषताएँ    |    Frelatage का उपयोग    |    कॉन्फ़िगरेशन

Frelatage प्रदर्शन

Frelatage एक कवरेज-आधारित Python फ़ज़िंग लाइब्रेरी है जिसका उपयोग Python कोड को फ़ज़ करने के लिए किया जा सकता है। Frelatage के विकास को विभिन्न अन्य फ़ज़र्स से प्रेरणा मिली, जिनमें AFL/AFL++, Atheris और PythonFuzz शामिल हैं। परियोजना का मुख्य उद्देश्य इन फ़ज़र्स की सर्वोत्तम विशेषताओं का लाभ उठाना और उन्हें एक नए उपकरण में एकत्रित करना है ताकि Python अनुप्रयोगों को कुशलतापूर्वक फ़ज़ किया जा सके।

अस्वीकरण : यह परियोजना अल्फा चरण में है और अभी भी कई अप्रत्याशित व्यवहार उत्पन्न कर सकती है। इस समय Frelatage का उपयोग उत्पादन वातावरण में नहीं किया जाना चाहिए।

आवश्यकताएँ

Python 3

स्थापना

pip से स्थापित करें (अनुशंसित)

root@kitploit:~
pip3 install frelatage

या स्रोत से बनाएँ

डेवलपर्स के लिए अनुशंसित। यह स्वचालित रूप से frelatage रेपो से मुख्य शाखा को क्लोन करता है और स्रोत से स्थापित करता है।

root@kitploit:~
# स्वचालित रूप से Frelatage रिपॉजिटरी को क्लोन करें और स्रोत से Frelatage स्थापित करें
bash <(wget -q https://raw.githubusercontent.com/Rog3rSm1th/Frelatage/main/scripts/autoinstall.sh -O -)

यह कैसे काम करता है

Frelatage के डिज़ाइन के पीछे का विचार एक आनुवंशिक एल्गोरिथ्म का उपयोग करना है जो उत्परिवर्तन उत्पन्न करता है जो अधिक से अधिक कोड को कवर करेगा। एक फ़ज़िंग चक्र की कार्यप्रणाली को इस आरेख के साथ मोटे तौर पर संक्षेपित किया जा सकता है:

root@kitploit:~
graph TB

    m1(उत्परिवर्तन 1) --> |input| function(फ़ज़्ड फ़ंक्शन)
    m2(उत्परिवर्तन 2) --> |input| function(फ़ज़्ड फ़ंक्शन)
    mplus(उत्परिवर्तन ...) --> |input| function(फ़ज़्ड फ़ंक्शन)
    mn(उत्परिवर्तन n) --> |input| function(फ़ज़्ड फ़ंक्शन)
    
    function --> generate_reports(रिपोर्ट उत्पन्न करें)
    generate_reports --> rank_reports(रिपोर्ट को रैंक करें)  
    rank_reports --> select(सर्वश्रेष्ठ n रिपोर्ट चुनें)
    
    select --> |mutate| nm1(उत्परिवर्तन 1) & nm2(उत्परिवर्तन 2) & nmplus(उत्परिवर्तन ...) & nmn(उत्परिवर्तन n)
    
    subgraph चक्र उत्परिवर्तन
    direction LR
    m1
    m2
    mplus
    mn
    end
    
    subgraph अगले चक्र के उत्परिवर्तन
    direction LR
    nm1
    nm2
    nmplus
    nmn
    end
     
    style function fill:#5388e8,stroke:white,stroke-width:4px

विशेषताएँ

विभिन्न तर्क प्रकारों को फ़ज़ करना:

  • स्ट्रिंग
  • पूर्णांक
  • फ्लोट
  • सूची
  • टपल
  • शब्दकोश

फ़ाइल फ़ज़िंग

Frelatage एक फ़ंक्शन को इनपुट के रूप में फ़ाइल पास करके फ़ज़ करने की अनुमति देता है।

फ़ज़र दक्षता

  • कोर्पस
  • शब्दकोश

Frelatage का उपयोग

एक सामान्य पैरामीटर को फ़ज़ करें

root@kitploit:~
import frelatage
import my_vulnerable_library

def MyFunctionFuzz(data):
  my_vulnerable_library.parse(data)

input = frelatage.Input(value="initial_value")
f = frelatage.Fuzzer(MyFunctionFuzz, [[input]])
f.fuzz()

एक फ़ाइल पैरामीटर को फ़ज़ करें

Frelatage आपको फ़ाइल प्रकार के इनपुट पैरामीटर को फ़ज़ करने की संभावना देता है। इन फ़ाइलों के मान को प्रारंभ करने के लिए, आपको इनपुट फ़ोल्डर (डिफ़ॉल्ट रूप से ./in) में फ़ाइलें बनानी होंगी।

यदि हम फ़ज़ करने के लिए उपयोग की जाने वाली फ़ाइल के मान को प्रारंभ करना चाहते हैं, तो हम इसे इस प्रकार कर सकते हैं:

root@kitploit:~
echo "initial value" > ./in/input.txt

और फिर फ़ज़र चलाएँ:

root@kitploit:~
import frelatage
import my_vulnerable_library

def MyFunctionFuzz(data):
  my_vulnerable_library.load_file(data)

input = frelatage.Input(file=True, value="input.txt")
f = frelatage.Fuzzer(MyFunctionFuzz, [[input]])
f.fuzz()

डेकोरेटर का उपयोग करके कई विधियों को फ़ज़ करें (प्रायोगिक)

root@kitploit:~
import frelatage
import my_vulnerable_library

input = frelatage.Input(file=True, value="input.txt")

@frelatage.instrument([[input]])
def MyFunctionFuzz_1(data):
  my_vulnerable_library.load_file(data)

@frelatage.instrument([[input]])
def MyFunctionFuzz_1(data):
  my_vulnerable_library.load_file_but_different(data)
# और इसी तरह

# यह इंस्ट्रूमेंटेड विधियों को एक के बाद एक फ़ज़ करेगा
frelatage.Fuzzer.fuzz_all()

एक साथ एक कोर्पस में कई फ़ाइलें लोड करें

यदि आपको एक साथ कई फ़ाइलों को कोर्पस में लोड करने की आवश्यकता है (यदि आप एक बड़े कोर्पस का उपयोग करते हैं तो उपयोगी) तो आप Frelatage के अंतर्निहित फ़ंक्शन load_corpus का उपयोग कर सकते हैं। यह फ़ंक्शन इनपुट की एक सूची लौटाता है।

load_corpus(directory: str, file_extensions: list) -> list[Input]

  • directory: इनपुट निर्देशिका की उपनिर्देशिका (सापेक्ष पथ), जैसे ./, ./images
  • file_extensions: कोर्पस प्रविष्टियों में शामिल करने के लिए फ़ाइल एक्सटेंशन की सूची, जैसे ["jpeg", "gif"], ["pdf"]
root@kitploit:~
import frelatage
import my_vulnerable_library

def MyFunctionFuzz(data):
  my_vulnerable_library.load_file(data)
  my_vulnerable_library.load_file(data2)

# ./in निर्देशिका में प्रत्येक फ़ाइल लोड करें
corpus_1 = frelatage.load_corpus(directory="./")
# ./in/images उपनिर्देशिका में सभी .gif/.jpeg फ़ाइलें लोड करें
corpus_2 = frelatage.load_corpus(directory="./images", file_extension=["gif", "jpeg"])

f = frelatage.Fuzzer(MyFunctionFuzz, [corpus_1, corpus_2])
f.fuzz()

एक शब्दकोश के साथ फ़ज़ करें

आप यहाँ स्थित एक या अधिक शब्दकोशों को शब्दकोशों के लिए समर्पित निर्देशिका (डिफ़ॉल्ट रूप से ./dict) में कॉपी कर सकते हैं।

डिफरेंशियल फ़ज़िंग

डिफरेंशियल फ़ज़िंग एक लोकप्रिय सॉफ़्टवेयर परीक्षण तकनीक है जो कई लाइब्रेरी/प्रोग्राम को समान इनपुट प्रदान करके और उनके व्यवहार में अंतर देखकर बग का पता लगाने का प्रयास करती है। आपको यहाँ json और ujson लाइब्रेरी के साथ Frelatage के साथ डिफरेंशियल फ़ज़िंग के उपयोग का एक उदाहरण मिलेगा।

उदाहरण

आप उदाहरण निर्देशिका में फ़ज़र्स और कोर्पस के और उदाहरण पा सकते हैं।

  • बग और कमजोरियाँ खोजने के लिए Frelatage के साथ Pillow को फ़ज़ करना

क्रैश रिपोर्ट

प्रत्येक क्रैश रिपोर्ट आउटपुट फ़ोल्डर (डिफ़ॉल्ट रूप से ./out) में एक फ़ोल्डर में सहेजी जाती है, जिसका नाम होता है: id:<क्रैश ID>,err:<त्रुटि प्रकार>,err_pos:<त्रुटि>,err_file:<त्रुटि फ़ाइल>।

रिपोर्ट निर्देशिका निम्नलिखित रूप में है:

root@kitploit:~
    ├── out
    │   ├── id:<क्रैश ID>,err:<त्रुटि प्रकार>,err_file:<त्रुटि फ़ाइल>,err_pos:<त्रुटि स्थान>
    │       ├── message
    │       ├── input
    │       ├── 0
    │            ├── <inputfile1>
    │       ├── ...
    │   ├── ...

प्रत्येक क्रैश रिपोर्ट में एक message फ़ाइल होती है जिसमें त्रुटि संदेश होता है।

कवरेज वृद्धि रिपोर्ट

प्रत्येक कवरेज वृद्धि रिपोर्ट कवरेज फ़ोल्डर (डिफ़ॉल्ट रूप से ./cov) में coverage_<ID> नामक फ़ोल्डर में सहेजी जाती है, और रिपोर्ट निर्देशिका क्रैश रिपोर्ट निर्देशिकाओं के समान रूप में होती है।

एक रिपोर्ट पढ़ें

एक फ़ंक्शन को पास किए गए इनपुट को pickle मॉड्यूल का उपयोग करके क्रमबद्ध किया जाता है, इससे पहले कि उन्हें <report_folder>/input फ़ाइल में सहेजा जाए। इसलिए फ़ाइल की सामग्री को पढ़ने के लिए इसे डिसीरियलाइज़ करना आवश्यक है। यह क्रिया frelatage-report कमांड के साथ की जा सकती है।

root@kitploit:~
$ frelatage-report input

कॉन्फ़िगरेशन

Frelatage को सेट करने के दो तरीके हैं:

पर्यावरण चर का उपयोग करना

एक कॉन्फ़िगरेशन उदाहरण:

root@kitploit:~
export FRELATAGE_DICTIONARY_ENABLE=1 &&
export FRELATAGE_SAVE_NEW_COVERAGE=1 &&
export FRELATAGE_TIMEOUT_DELAY=2 &&
export FRELATAGE_INPUT_FILE_TMP_DIR="/tmp/frelatage" &&
export FRELATAGE_INPUT_MAX_LEN=4096 &&
export FRELATAGE_MAX_THREADS=8 &&
export FRELATAGE_MAX_STAGES=1000000 &&
export FRELATAGE_MAX_CYCLES_WITHOUT_NEW_PATHS=5000 &&
export FRELATAGE_INPUT_DIR="./in" &&
export FRELATAGE_DICTIONARY_DIR="./dict" &&
python3 fuzzer.py

फ़ज़र को तर्क पास करना

root@kitploit:~
import frelatage 

def myfunction(input1_string, input2_int):
    pass

input1 = frelatage.Input(value="initial_value")
input2 = frelatage.Input(value=2)

f = frelatage.Fuzzer(
    # वह विधि जिसे आप फ़ज़ करना चाहते हैं
    method=myfunction,
    # कोर्पस
    corpus=[[input1], [input2]],
    # धागों की संख्या
    threads_count=8,
    # अपवाद जिन पर ध्यान दिया जाएगा
    exceptions_whitelist=(OSError),
    # अपवाद जिन पर ध्यान नहीं दिया जाएगा
    exceptions_blacklist=(),
    # निर्देशिका जहाँ त्रुटि रिपोर्ट संग्रहीत की जाएंगी
    output_directory="./out",
    # निर्देशिका जहाँ कवरेज वृद्धि रिपोर्ट संग्रहीत की जाएंगी
    coverage_directory="./cov",
    # साइलेंट मोड सक्षम या अक्षम करें
    silent=False,
    # अनंत फ़ज़िंग सक्षम या अक्षम करें
    infinite_fuzz=False
)
f.fuzz()

जोखिम

कृपया ध्यान रखें कि कई अन्य कम्प्यूटेशनल-गहन कार्यों के समान, फ़ज़िंग आपके हार्डवेयर और OS पर दबाव डाल सकती है। विशेष रूप से:

  • आपका CPU गर्म होगा और उसे पर्याप्त शीतलन की आवश्यकता होगी। अधिकांश मामलों में, यदि शीतलन अपर्याप्त है या ठीक से काम करना बंद कर देता है, तो CPU की गति स्वचालित रूप से कम हो जाएगी। हालाँकि, विशेष रूप से कम उपयुक्त हार्डवेयर (लैपटॉप, स्मार्टफोन, आदि) पर फ़ज़िंग करते समय, कुछ विस्फोट होना पूरी तरह से असंभव नहीं है।

  • लक्षित प्रोग्राम अनियमित रूप से गीगाबाइट मेमोरी हथिया सकते हैं या डिस्क स्थान को कबाड़ फ़ाइलों से भर सकते हैं। Frelatage बुनियादी मेमोरी सीमाएँ लागू करने का प्रयास करता है, लेकिन हर संभावित दुर्घटना को नहीं रोक सकता। निचली पंक्ति यह है कि आपको उन सिस्टमों पर फ़ज़िंग नहीं करनी चाहिए जहाँ डेटा हानि की संभावना एक स्वीकार्य जोखिम नहीं है।

  • फ़ज़िंग में फ़ाइलसिस्टम पर अरबों रीड और राइट शामिल हैं। आधुनिक सिस्टमों पर, यह आमतौर पर भारी कैश्ड होगा, जिसके परिणामस्वरूप काफी मामूली "भौतिक" I/O होगा - लेकिन ऐसे कई कारक हैं जो इस समीकरण को बदल सकते हैं। संभावित परेशानी की निगरानी करना आपकी जिम्मेदारी है; बहुत भारी I/O के साथ, कई HDD और SSD की उम्र कम हो सकती है।

    Linux पर डिस्क I/O की निगरानी करने का एक अच्छा तरीका 'iostat' कमांड है:

root@kitploit:~
    $ iostat -d 3 -x -k [...वैकल्पिक डिस्क ID...]

🔴 मेरे बारे में/मुझे काम पर रखें 🖥️

मैं Rog3rSm1th हूँ, मैं 21 साल का हूँ और एक फ्रांसीसी कंप्यूटर और साइबर सुरक्षा उत्साही हूँ। मुझे उपकरण विकसित करना (OSINT, फ़ज़िंग...) और CTFs/Wargames खेलना पसंद है। मेरे और मेरी परियोजनाओं के बारे में अधिक जानने के लिए, बस यहाँ क्लिक करें।

➜ यदि आप मुझे अपनी किसी एक परियोजना (प्रोग्रामिंग, साइबर सुरक्षा...) के लिए काम पर रखना चाहते हैं, तो बस मुझसे [email protected] पर संपर्क करें और हम आपकी आवश्यकताओं का एक साथ आकलन करेंगे।

संपर्क

किसी भी टिप्पणी, सुझाव, बग रिपोर्ट के लिए, या यदि आपको Frelatage का उपयोग करके कोई बग मिला है, तो आप मुझसे [email protected] या ट्विटर पर @Rog3rSm1th पर संपर्क कर सकते हैं।

टूल डाउनलोड करें
ENV चरविवरणसंभावित मानडिफ़ॉल्ट मान
FRELATAGE_DICTIONARY_ENABLEशब्दकोश तत्वों पर आधारित उत्परिवर्तन के उपयोग को सक्षम करें1 सक्षम करने के लिए, 0 अन्यथा1
FRELATAGE_SAVE_NEW_COVERAGEनए कवरेज इनपुट को बाद में पुन: उपयोग करने के लिए सहेजें1 सक्षम करने के लिए, 0 अन्यथा1
FRELATAGE_TIMEOUT_DELAYसेकंड में देरी जिसके बाद एक फ़ंक्शन TimeoutError लौटाएगा1 - अनंत2
FRELATAGE_INPUT_FILE_TMP_DIRअस्थायी फ़ोल्डर जहाँ इनपुट फ़ाइलें संग्रहीत की जाती हैंएक फ़ोल्डर का पूर्ण पथ, जैसे /tmp/custom_dir/tmp/frelatage
FRELATAGE_INPUT_MAX_LENबाइट्स में एक इनपुट चर का अधिकतम आकार4 - अनंत4094
FRELATAGE_MAX_THREADSएक साथ धागों की अधिकतम संख्या8 - अनंत8
FRELATAGE_MAX_STAGESएक फ़ज़्ड फ़ंक्शन के लिए चरणों की अधिकतम संख्या1 - अनंत1000000
FRELATAGE_MAX_CYCLES_WITHOUT_NEW_PATHSनए पथों के बिना चक्रों की संख्या जिसके बाद हम अगले चरण पर जाते हैं10 - अनंत5000
FRELATAGE_INPUT_DIRप्रारंभिक इनपुट फ़ाइलों वाली निर्देशिका। इसे एक सापेक्ष पथ (फ़ज़िंग फ़ाइल के पथ के सापेक्ष) होना चाहिएएक फ़ोल्डर का सापेक्ष पथ, जैसे ./in./in
FRELATAGE_DICTIONARY_DIRशब्दकोशों के लिए डिफ़ॉल्ट निर्देशिका। इसे एक सापेक्ष पथ (फ़ज़िंग फ़ाइल के पथ के सापेक्ष) होना चाहिएएक फ़ोल्डर का सापेक्ष पथ, जैसे ./dict./dict
FRELATAGE_DEBUG_MODEडीबग मोड सक्षम करें (जब Frelatage क्रैश होता है तो त्रुटि दिखाएँ)1 सक्षम करने के लिए, 0 अन्यथा1