Skip to content
KitploitKITPLOIT
उपकरणएक्सप्लॉइटब्लॉग
Log in
जमा करें
उपकरणएक्सप्लॉइटब्लॉग
जमा करें

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

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

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

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

श्रेणियाँ

सभी श्रेणियाँ देखें
Loading categories
VulnFanatic-NG — डीकंपाइल बाइनरीज़ में कमजोरियों की पहचान करने के लिए BianryNinja प्लगइन, जिसमें प्रोग्रामैटिक स्कैन और LLM सपोर्ट दोनों शामिल हैं। | Kitploit
उपकरण/GitHubGitHub/martyx00/vulnfanatic-ng
स्थैतिक कोड विश्लेषण (SAST)भेद्यता विश्लेषणकोड विश्लेषणशोषणरिवर्स इंजीनियरिंगफज़िंगपेनिट्रेशन टेस्टिंगहार्डवेयर सुरक्षाबाइनरी विश्लेषणआपूर्ति श्रृंखला सुरक्षालर्निंग और शिक्षाAI-सहायित रिवर्सिंग
141153 महीने पहलेअभी तक समीक्षित नहीं

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

सभी देखें →

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

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

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

सभी उपकरण देखें →
साझा करें
GitHubmartyx00/vulnfanatic-ng

VulnFanatic-NG

डीकंपाइल बाइनरीज़ में कमजोरियों की पहचान करने के लिए BianryNinja प्लगइन, जिसमें प्रोग्रामैटिक स्कैन और LLM सपोर्ट दोनों शामिल हैं।

रिपॉजिटरी देखें

VulnFanatic-NG

Binary Ninja के लिए LLM-सहायता प्राप्त भेद्यता अनुसंधान।

VulnFanatic-NG एक साइडबार पैनल जोड़ता है जो वर्तमान बाइनरी को स्कैन करता है और एक LLM — डिफ़ॉल्ट रूप से स्थानीय रूप से होस्ट किया गया OpenAI-संगत मॉडल, या Anthropic Claude, Google Gemini, या Azure OpenAI (देखें LLM बैकएंड) — से पूछता है कि क्या संदिग्ध कोड वास्तव में कमजोर है। यह मुख्य रूप से Binary Ninja के डीकंपाइलर आउटपुट (HLIL) से काम करता है, जब आवश्यक हो तो असेंबली पर वापस आता है, और केवल पुष्टि की गई समस्याओं की रिपोर्ट करता है जिनके कोड पर क्लिक करने योग्य संदर्भ होते हैं।


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

एक स्कैन अधिकतम तीन चरणों में चलता है (चरण 3 ऑप्ट-इन और केवल ऑनलाइन है):

चरण 1 — खतरनाक फ़ंक्शन कॉल

rules/phase1_rules.json में परिभाषित खतरनाक फ़ंक्शनों के कॉल साइट ढूँढता है — strcpy, memcpy, sprintf/फ़ॉर्मेट स्ट्रिंग, system, alloca, scanf, कमांड/निष्पादन API, कमज़ोर RNG, free/delete परिवार (use-after-free / double-free), निश्चित बफ़र में अविश्वसनीय इनपुट पढ़ना (recv/read/fread/ReadFile), SQL इंजेक्शन (sqlite3_exec/mysql_query/PQexec), अक्षम TLS प्रमाणपत्र सत्यापन (SSL_CTX_set_verify/curl), SSRF, और अनुचित विशेषाधिकार प्रबंधन (setuid/setresgid), memset/bzero परिवार, और हमलावर-नियंत्रित लंबाई के साथ तुलना (memcmp/strncmp → प्रमाणीकरण बाईपास) — C/C++, Win32, और (सर्वोत्तम प्रयास) Rust FFI पर। इसमें मजबूत _chk (FORTIFY) और Annex-K _s वेरिएंट शामिल हैं। सीमित फ़ॉर्मेटेड-आउटपुट फ़ंक्शन (snprintf और वेरिएंट) के अपने डिफ़ॉल्ट-सुरक्षित नियम हैं ताकि सही आकार तर्क को ओवरफ़्लो के रूप में रिपोर्ट न किया जाए। कॉल साइट तीन तरीकों से पाए जाते हैं: नामित प्रतीकों के लिए प्रत्यक्ष कॉल; फ़ॉरवर्डिंग थंक / PLT स्टब के माध्यम से रूट की गई कॉल (वास्तविक कॉलर्स पुनर्प्राप्त किए जाते हैं, इसलिए एक आयात जो केवल स्टब के माध्यम से पहुँचा जाता है वह छूटता नहीं है); और — जब तक vulnfanatic.scanIndirectCalls बंद न हो — फ़ंक्शन पॉइंटर या vtable के माध्यम से भेजी गई अप्रत्यक्ष कॉल जिन्हें Binary Ninja ने खतरनाक फ़ंक्शन में हल किया है। प्रत्येक कॉल साइट के लिए यह एक अंतरप्रक्रियात्मक, डीकंपाइलर-केंद्रित संदर्भ बनाता है, जो एक टोकन सीमा (डिफ़ॉल्ट 100k) पर बजट किया जाता है:

  • कॉल एक्सप्रेशन और उसके तर्क,
  • कॉल किए गए फ़ंक्शन का घोषित प्रोटोटाइप (Binary Ninja के प्रकार की जानकारी से, अन्यथा एक अंतर्निहित तालिका) ताकि मॉडल तर्कों को पैरामीटर से सही ढंग से मैप कर सके — मजबूत __*_chk और बाउंड-जांचे गए *_s वेरिएंट अतिरिक्त अग्रणी तर्क लेते हैं, जो फ़ॉर्मेट/आकार/गंतव्य स्थिति को स्थानांतरित करते हैं,
  • प्रत्येक कॉल तर्क का प्रकार और बाइट आकार (बफ़र क्षमताएँ), तर्क के HLIL एक्सप्रेशन प्रकार से व्युत्पन्न, ताकि एक स्ट्रक्चर फ़ील्ड जैसे s->buf s के पॉइंटर आकार के बजाय फ़ील्ड के वास्तविक सरणी आकार में हल हो जाए; प्रकार अनुभाग में स्ट्रक्चर परिभाषाएँ प्रति-फ़ील्ड बाइट आकार भी रखती हैं,
  • प्रत्येक तर्क का ठोस मान / सीमा Binary Ninja के स्थिर-प्रसार और मान-सेट विश्लेषण द्वारा हल किया गया (उदा. एक लंबाई स्थिर 0x40 या [0, 0xff] तक सीमित सिद्ध), जिसका उपयोग मॉडल बफ़र क्षमता के विरुद्ध आकार की तुलना करते समय अनुमान लगाने के बजाय जमीनी सत्य के रूप में करता है,
  • कॉल करने वाले फ़ंक्शन का स्टैक फ्रेम लेआउट (चर ऑफ़सेट और बाइट आकार) जब इसमें एक निश्चित-आकार का बफ़र होता है, ताकि स्टैक ओवरफ़्लो का निर्णय आसन्न चर और सहेजे गए रिटर्न पते के विरुद्ध किया जा सके (vulnfanatic.includeStackLayout),
  • पथ बाधाएँ (कॉल की रक्षा करने वाली if/लूप/switch स्थितियाँ),
  • एक तर्क डेटा-प्रवाह सारांश — फ़ंक्शन के भीतर प्रत्येक कॉल तर्क को कहाँ परिभाषित और उपयोग किया गया है,
  • कॉलर्स में पैरामीटर समाधान — जब एक खतरनाक तर्क कॉल करने वाले फ़ंक्शन का पैरामीटर होता है, तो संदर्भ रिपोर्ट करता है कि प्रत्येक कॉलर वास्तव में इसके लिए क्या पास करता है (उदा. "सभी कॉलर एक स्ट्रिंग लिटरल पास करते हैं"), ताकि एक फ़ॉर्मेट/आकार पैरामीटर जो हमेशा स्थिर होता है उसे हमलावर-नियंत्रित समझने की गलती न हो,
  • कॉल करने वाले फ़ंक्शन का पूरा डीकंपाइल किया गया बॉडी,
  • डेटा-प्रकार परिभाषाएँ (struct/union/enum) कॉल श्रृंखला और तर्क चर में संदर्भित प्रकारों के लिए, ताकि मॉडल वास्तविक बफ़र/फ़ील्ड आकार और पूर्णांक चौड़ाई जान सके,
  • उन फ़ंक्शनों के डीकंपाइल किए गए बॉडी जो कॉल के तर्क चर का उत्पादन या उपभोग करते हैं (HLIL def/use के माध्यम से ट्रेस), जो उपयोग-मुक्ति / दोहरी-मुक्ति और दूषित-आकार तर्क को संभव बनाता है,
  • प्रवेश बिंदुओं / निर्यातित फ़ंक्शनों से कॉल तक कॉल पथ,
  • उन कॉल पथों के साथ प्रत्येक फ़ंक्शन का डीकंपाइल किया गया बॉडी (खतरनाक कॉल के सबसे निकट पहले), प्रत्येक कॉल साइट और अगले हॉप की रक्षा करने वाली स्थितियों से एनोटेट किया गया,
  • उन पथ फ़ंक्शनों द्वारा कॉल किए गए अन्य फ़ंक्शनों के बॉडी (उदा. MAIN→ABCD→strcpy के लिए, MAIN और ABCD द्वारा कहीं और कॉल किए गए फ़ंक्शन भी), क्योंकि उनमें वे बाउंड/सत्यापन जाँच हो सकती हैं जो खतरनाक मान को गेट करती हैं (vulnfanatic.includeCallPathSiblings, बजट अनुमति देने पर भरी जाती हैं), और
  • दूषित-स्रोत संकेत (उसी फ़ंक्शन में कॉल किए गए recv/read/getenv जैसे इनपुट फ़ंक्शन)।

वह संदर्भ प्लस एक नियम-विशिष्ट प्रॉम्प्ट मॉडल को भेजा जाता है, जो एक संरचित निर्णय लौटाता है। गैर-समस्याएँ हटा दी जाती हैं। प्रॉम्प्ट एक मजबूत स्थानीय कोड मॉडल (जैसे Qwen2.5-Coder) के लिए तैयार किए गए हैं और इसे पूरे प्रवाह का विश्लेषण करने और केवल JSON आउटपुट करने का निर्देश देते हैं।

तर्क, स्क्रैचपैड, और आत्मविश्वास

मॉडल को रिकॉल पसंद करने का निर्देश दिया गया है — प्रशंसनीय, सुरक्षा-प्रासंगिक समस्याओं की रिपोर्ट करें और अनिश्चितता को आत्मविश्वास के माध्यम से व्यक्त करें न कि किसी ऐसी चीज़ को हटाएँ जिसे वह पूरी तरह से साबित नहीं कर सकता। यह एक स्क्रैचपैड में अपना काम दिखाता है जो उन शाब्दिक कोड स्निपेट को उद्धृत करता है जिन पर यह निर्भर था (इनपुट स्रोत, प्रत्येक गार्ड, आकार/लंबाई, प्रासंगिक प्रकार, और सिंक), जो निष्कर्ष पर संग्रहीत किया जाता है ताकि आप तर्क का ऑडिट कर सकें।

प्रत्येक निष्कर्ष में एक आत्मविश्वास (उच्च/मध्यम/निम्न) होता है: उच्च = पूरी श्रृंखला संदर्भ में दिखाई गई है; मध्यम = संभावित, एक या दो लिंक अनुमानित; निम्न = एक सुराग जो मैन्युअल समीक्षा के योग्य है। यह मुख्य मीट्रिक है (मॉडल का गंभीरता अनुमान एक द्वितीयक क्षेत्र है)। vulnfanatic.minConfidence सेट करें ताकि एक सीमा से नीचे कुछ भी हटा दिया जाए।

सटीकता बनाम रिकॉल को ट्यून करना

डिफ़ॉल्ट रूप से VulnFanatic-NG रिकॉल (वास्तविक समस्याओं को पकड़ना) का पक्ष लेता है। यदि आपको बहुत अधिक झूठी सकारात्मकताएँ मिलती हैं, तो किसी के साथ कसें:

  • vulnfanatic.validationPass (डिफ़ॉल्ट बंद) — एक दूसरा LLM पास चलाता है जो प्रत्येक चिह्नित समस्या की उसी संदर्भ के विरुद्ध दोबारा जाँच करता है (स्क्रैचपैड स्निपेट को सत्यापित करता है और प्रवाह को फिर से ट्रेस करता है) और निर्णय या आत्मविश्वास को सही कर सकता है। चिह्नित उम्मीदवारों के लिए LLM कॉल दोगुनी करता है।
    • पृथक वैलिडेटर मॉडल (अनुशंसित जब आप सत्यापन पास का उपयोग करते हैं). vulnfanatic.validatorModel (प्लस validatorProvider / validatorBaseUrl / validatorApiKey) सेट करें ताकि दूसरा पास एक भिन्न मॉडल पर चले। एक दूसरी राय एक स्वतंत्र मॉडल से कहीं अधिक उपयोगी होती है — यह कम अंधे धब्बे साझा करता है और पहले निर्णय को रबर-स्टैम्प करने की संभावना बहुत कम होती है (मॉडल अपने स्वयं के उत्तरों को पसंद करते हैं)। एक अच्छा पैटर्न एक कैस्केड है: एक तेज़ मॉडल विश्लेषक के रूप में (व्यापक रिकॉल) और आपका सबसे मजबूत मॉडल वैलिडेटर के रूप में, जो केवल चिह्नित उम्मीदवारों पर चलता है। वैलिडेटर मॉडल को खाली छोड़ें ताकि विश्लेषक मॉडल के साथ सत्यापन हो। वैलिडेटर विश्लेषक से कम से कम उतना ही सक्षम होना चाहिए — एक कमजोर मुख्य रूप से झूठी अस्वीकृतियाँ जोड़ता है। प्रदाता/बेस URL/कुंजी/मॉडल को छोड़कर सब कुछ विश्लेषक कनेक्शन सेटिंग्स से विरासत में मिलता है; एक खाली वैलिडेटर कुंजी विश्लेषक कुंजी का पुन: उपयोग करती है; और यदि वैलिडेटर एंडपॉइंट अप्राप्य है, तो पहला निर्णय रखा जाता है (निष्कर्ष कभी भी वैलिडेटर आउटेज के कारण खोता नहीं है)।
  • vulnfanatic.minConfidence (डिफ़ॉल्ट low) — medium/high तक बढ़ाएँ ताकि केवल मजबूत निष्कर्ष रिपोर्ट हों।
  • vulnfanatic.skipConstantArgCalls (डिफ़ॉल्ट बंद) — ओवरफ़्लो-श्रेणी के कॉल साइट को छोड़ें जिनके तर्क सभी संकलन-समय स्थिरांक हैं।
टूल डाउनलोड करें