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

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

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

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

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

श्रेणियाँ

सभी श्रेणियाँ देखें
Loading categories
FindFunc — असेंबली पैटर्न, बाइट अनुक्रम, स्ट्रिंग/नाम संदर्भ, और आकार बाधाओं द्वारा फ़ंक्शन को फ़िल्टर करने के लिए IDA Pro प्लगइन, जिसमें नियम-आधारित खोज और उन्नत बाइनरी कॉपी करना शामिल है। | Kitploit
उपकरण/GitHubGitHub/felixber/findfunc
स्थैतिक विश्लेषणकोड विश्लेषणरिवर्स इंजीनियरिंगडीबगर्सबाइनरी विश्लेषण
GitHubfelixber/findfunc

FindFunc

असेंबली पैटर्न, बाइट अनुक्रम, स्ट्रिंग/नाम संदर्भ, और आकार बाधाओं द्वारा फ़ंक्शन को फ़िल्टर करने के लिए IDA Pro प्लगइन, जिसमें नियम-आधारित खोज और उन्नत बाइनरी कॉपी करना शामिल है।

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

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

सभी देखें →

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

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

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

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

FindFunc: IDA Pro में फ़ंक्शंस की उन्नत फ़िल्टरिंग/खोज

FindFunc एक IDA Pro प्लगइन है जो कोड फ़ंक्शंस को खोजने के लिए है जिनमें एक निश्चित असेंबली या बाइट पैटर्न होता है, एक निश्चित नाम या स्ट्रिंग का संदर्भ होता है, या विभिन्न अन्य बाधाओं का पालन करते हैं।

FindFunc ने 2022 HexRays IDA Pro Plugin Contest में तीसरा स्थान जीता!

ffmain

नियमों के साथ फ़िल्टरिंग

FindFunc की मुख्य कार्यक्षमता उपयोगकर्ता को "Rules" या बाधाओं का एक सेट निर्दिष्ट करने देती है जिसे IDA Pro में एक कोड फ़ंक्शन को संतुष्ट करना होता है। FF फिर उन सभी फ़ंक्शंस को खोजेगा और सूचीबद्ध करेगा जो सभी नियमों को संतुष्ट करते हैं (इसलिए वर्तमान में सभी नियम AND-संयोजन में हैं)। अपवाद: नियमों को नकारात्मक मिलान के लिए "inverted" किया जा सकता है। ऐसे नियम इस प्रकार "AND NOT" के अनुरूप होते हैं।

FF प्रसंस्करण समय को कम करने के लिए नियमों को स्मार्ट क्रम में शेड्यूल करेगा। सुविधा अवलोकन:

  • वर्तमान में 6 नियम उपलब्ध हैं, नीचे देखें
  • फ़ंक्शन चंक्स से अवगत
  • प्रदर्शन के लिए नियमों का स्मार्ट शेड्यूलिंग
  • सरल ASCII प्रारूप में फ़ाइल से/में नियमों को सहेजना/लोड करना
  • प्रयोग के लिए कई स्वतंत्र टैब्स
  • क्लिपबोर्ड के माध्यम से टैब्स के बीच नियमों की प्रतिलिपि (फ़ाइल प्रारूप के समान प्रारूप)
  • पूरे सत्र (सभी टैब्स) को फ़ाइल में सहेजना
  • निर्देश बाइट्स की उन्नत प्रतिलिपि (सभी, केवल ऑपकोड, इमीडिएट्स को छोड़कर सभी, ...)
  • परिणामों को परिष्कृत करने के त्वरित प्रयोगों के लिए टैब्स क्लोन करें
  • कोड मिलान एड्रेसिंग-साइज़-प्रीफ़िक्स और ऑपरेंड-साइज़-प्रीफ़िक्स का सम्मान करता है

बटन "Find Functions" मौजूदा परिणामों को साफ़ करता है और एक ताज़ा खोज शुरू करता है, "Refine Results" केवल पिछली खोज के परिणामों पर विचार करता है।

उन्नत बाइनरी प्रतिलिपि (Advanced Binary Copying)

FF की एक द्वितीयक विशेषता निम्नलिखित विकल्पों के साथ निर्देशों के बाइनरी प्रतिनिधित्व की प्रतिलिपि बनाने का विकल्प है:

  • सभी कॉपी करें -> सभी बाइट्स को क्लिपबोर्ड पर कॉपी करें
  • बिना इमीडिएट्स के कॉपी करें -> निर्देश बाइट्स में किसी भी इमीडिएट मान को रिक्त (AA ?? BB) करें
  • केवल ऑपकोड -> निर्देश के वास्तविक ऑपकोड (और प्रीफ़िक्स) को छोड़कर सब कुछ रिक्त कर देगा
  • ...

विवरण के लिए नीचे "advanced copying" अनुभाग देखें। यह सुविधा बाइट पैटर्न नियम (Byte Pattern rule) के साथ अच्छी तरह से मेल खाती है!

निर्माण और स्थापना

FindFunc एक IDA Pro पायथन प्लगइन है जिसमें कोई बाहरी पैकेज निर्भरता नहीं है। इसे रिपॉजिटरी डाउनलोड करके और फ़ाइल 'findfuncmain.py' और फ़ोल्डर 'findfunc' को अपने IDA Pro प्लगइन निर्देशिका में कॉपी करके स्थापित किया जा सकता है। IDA 9.0+ के लिए रिपॉजिटरी को सीधे प्लगइन निर्देशिका में क्लोन भी किया जा सकता है। किसी भी तरह से निर्माण की आवश्यकता नहीं है।

आवश्यकताएँ: python3 वातावरण के साथ IDA Pro 8.x (8.3+)। FindFunc केवल x86/x64 आर्किटेक्चर के लिए डिज़ाइन किया गया है। इसे Windows 10 + 11 पर IDA 8.3 - 9.2, python 3.11 के साथ परीक्षण किया गया है।

उपलब्ध नियम

वर्तमान में निम्नलिखित छह नियम उपलब्ध हैं। उन्हें प्रदर्शन प्रभाव के संबंध में भारी से हल्के क्रम में यहाँ क्रमबद्ध किया गया है। बड़े डेटाबेस के साथ एक अच्छा विचार है कि पहले एक सस्ते नियम के साथ उम्मीदवार-फ़ंक्शंस को कम करें, फिर भारी मिलान करें जैसे कि कोड नियमों (Code Rules) के माध्यम से। FF स्वचालित रूप से नियमों को स्मार्ट तरीके से शेड्यूल करेगा।

कोड पैटर्न

किसी दिए गए असेंबली कोड स्निपेट को शामिल करने के आधार पर फ़ंक्शन को फ़िल्टर करने का नियम। यह IDA के टेक्स्टुअल डिसअसेंबली प्रतिनिधित्व के लिए टेक्स्ट-खोज नहीं है, बल्कि अंतर्निहित निर्देश का उन्नत मिलान करता है। स्निपेट में कई क्रमिक निर्देश हो सकते हैं, प्रति पंक्ति एक। फ़ंक्शन चंक्स समर्थित हैं। शाब्दिक असेंबली के अलावा विशेष वाइल्डकार्ड मिलान का समर्थन करता है:

  • "pass" -> किसी भी ऑपरेंड के साथ किसी भी निर्देश से मेल खाता है
  • "mov* any,any" -> मेमोनिक "mov*" (जैसे mov, movzx, ...) और किन्हीं दो तर्कों वाले निर्देशों से मेल खाता है।
  • "mov eax, r32" -> मेमोनिक "mov" वाले किसी भी निर्देश से मेल खाता है, जिसका पहला ऑपरेंड रजिस्टर eax और दूसरा ऑपरेंड कोई 32-बिट रजिस्टर हो।
    • समान: r किसी भी रजिस्टर के लिए, r8/r16/r32/r64 एक विशिष्ट चौड़ाई के रजिस्टर के लिए, "imm" किसी भी इमीडिएट के लिए
  • "mov r64, imm" -> एक 64-बिट रजिस्टर में स्थिरांक के किसी भी मूव से मेल खाता है
  • "any r64,r64" -> दो 64-बिट रजिस्टरों के बीच किसी भी ऑपरेशन से मेल खाता है
  • mov -> mov मेमोनिक के किसी भी निर्देश से मेल खाता है

अधिक उदाहरण:

mov r64, [r32 * 8 + 0x100]
mov r, [r * 8 - 0x100]
mov r64, [r32 * 8 + imm]
pass
mov r, word [eax + r32 * 8 - 0x100]
any r64, r64
push imm
push any

सावधानियाँ: IDA से असेंबली कॉपी करते समय सावधान रहें। IDA निर्देश में स्थानीय चर नाम और अन्य जानकारी मिला देता है जो मिलान विफलता का कारण बनता है। साथ ही, लेबल समर्थित नहीं हैं ("call sub_123456")।

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

इमीडिएट मान (स्थिरांक)

फ़ंक्शन में दिए गए इमीडिएट को कम से कम एक बार किसी भी स्थिति में शामिल होना चाहिए। इमीडिएट मान निर्देश के बाइनरी प्रतिनिधित्व में निश्चित मान होता है। इमीडिएट मान 0x100 से मेल खाने वाले निर्देशों के उदाहरण:

mov eax, 0x100
mov eax, [0x100]
and al, [eax + ebx*8 + 0x100]
push 0x100

इमीडिएट्स को सीधे क्लिपबोर्ड से नियमों की सूची में पेस्ट किया जा सकता है। नोट: IDA किसी भी आकार और इमीडिएट की किसी भी स्थिति का व्यापक मिलान करता है। यदि आप इसे 4 या 8 बाइट्स की विशिष्ट चौड़ाई के रूप में जानते हैं, तो एक बाइट पैटर्न तेज़ हो सकता है (लेकिन गलत सकारात्मक उत्पन्न कर सकता है)।

बाइट पैटर्न

फ़ंक्शन में दिए गए बाइट पैटर्न को कम से कम एक बार शामिल होना चाहिए। पैटर्न IDA के बाइनरी खोज के समान प्रारूप का है, और इस प्रकार वाइल्डकार्ड का समर्थन करता है - उन्नत-प्रतिलिपि सुविधा के लिए एकदम सही मेल!

उदाहरण:

11 22 33 44 aa bb cc
11 22 33 ?? ?? bb cc -> ?? कोई भी बाइट हो सकता है

बाइट-पैटर्न को सीधे क्लिपबोर्ड से नियमों की सूची में पेस्ट किया जा सकता है। नोट: पैटर्न मिलान काफी तेज़ है और मैचों को जल्दी से कम करने के लिए एक अच्छा उम्मीदवार है!

स्ट्रिंग संदर्भ

फ़ंक्शन में दिए गए स्ट्रिंग को कम से कम एक बार संदर्भित होना चाहिए। स्ट्रिंग को पायथन के 'fnmatch' मॉड्यूल के अनुसार मिलान किया जाता है, और इस प्रकार वाइल्डकार्ड-जैसे मिलान का समर्थन करता है। मिलान केस-असंवेदनशील है। निम्नलिखित प्रारूपों के स्ट्रिंग पर विचार किया जाता है: [idaapi.STRTYPE_C, idaapi.STRTYPE_C_16] (इसे Config वर्ग में बदला जा सकता है)।

उदाहरण:

  • "TestString" -> फ़ंक्शन को कम से कम एक बार सटीक स्ट्रिंग (केस की अनदेखी) का संदर्भ देना चाहिए
  • "TestStr*" -> फ़ंक्शन को 'TestStr' से शुरू होने वाले स्ट्रिंग का कम से कम एक बार संदर्भ देना चाहिए (जैसे TestString, TestStrong) (केस की अनदेखी)

नोट: स्ट्रिंग मिलान तेज़ है और उम्मीदवारों को जल्दी से कम करने के लिए एक अच्छा विकल्प है!

नाम संदर्भ

फ़ंक्शन में दिए गए नाम/लेबल को कम से कम एक बार संदर्भित होना चाहिए। नाम/लेबल को पायथन के 'fnmatch' मॉड्यूल के अनुसार मिलान किया जाता है, और इस प्रकार वाइल्डकार्ड-जैसे मिलान का समर्थन करता है। मिलान केस-असंवेदनशील है।

उदाहरण:

  • "memset" -> फ़ंक्शन को कम से कम एक बार नाम "memset" का संदर्भ देना चाहिए
  • "mem*" -> फ़ंक्शन को "mem" से शुरू होने वाले नाम (memset, memcpy, memcmp) का कम से कम एक बार संदर्भ देना चाहिए

नोट: नाम मिलान बहुत तेज़ है और उम्मीदवारों को जल्दी से कम करने के लिए आदर्श है!

फ़ंक्शन का आकार

फ़ंक्शन का आकार दी गई सीमा के भीतर होना चाहिए: "min <= functionsize <= max"। डेटा "min,max" फॉर्म के स्ट्रिंग के रूप में दर्ज किया जाता है। फ़ंक्शन के आकार में इसके सभी चंक्स शामिल हैं।

नोट: फ़ंक्शन आकार मिलान बहुत तेज़ है और उम्मीदवारों को जल्दी से कम करने के लिए आदर्श है!

कीबोर्ड शॉर्टकट और GUI

उपयोग में आसानी के लिए FF का उपयोग निम्नलिखित कीबोर्ड शॉर्टकट के माध्यम से किया जा सकता है:

टूल डाउनलोड करें