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

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

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

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

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

श्रेणियाँ

सभी श्रेणियाँ देखें
Loading categories
grap — बाइनरी कंट्रोल फ्लो ग्राफ्स में उपयोगकर्ता-परिभाषित ग्राफ पैटर्न को परिभाषित और मिलाएं, एक Capstone-आधारित डिसअसेंबलर का उपयोग करके, CLI, Python bindings और IDA प्लगइन समर्थन के साथ। | Kitploit
उपकरण/GitHubGitHub/quosecgmbh/grap
स्थैतिक विश्लेषणरिवर्स इंजीनियरिंगडीबगर्समालवेयर विश्लेषणबाइनरी विश्लेषण
GitHubquosecgmbh/grap

grap

बाइनरी कंट्रोल फ्लो ग्राफ्स में उपयोगकर्ता-परिभाषित ग्राफ पैटर्न को परिभाषित और मिलाएं, एक Capstone-आधारित डिसअसेंबलर का उपयोग करके, CLI, Python bindings और IDA प्लगइन समर्थन के साथ।

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

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

सभी देखें →

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

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

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

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

grap: बाइनरी में ग्राफ़ पैटर्न को परिभाषित और मिलान करें

https://github.com/QuoSecGmbH/grap

grap पैटर्न और बाइनरी फ़ाइलें लेता है, बाइनरी से नियंत्रण प्रवाह ग्राफ़ प्राप्त करने के लिए एक Capstone-आधारित डिसअसेंबलर का उपयोग करता है, फिर उनके विरुद्ध पैटर्न का मिलान करता है।

पैटर्न उपयोगकर्ता-परिभाषित ग्राफ़ होते हैं जिनमें निर्देश शर्तें ("opcode xor है और arg1 eax है") और पुनरावृत्ति शर्तें (3 समान निर्देश, मूल ब्लॉक...) शामिल होते हैं।

grap एक डिसअसेंबलर और पायथन बाइंडिंग के साथ एक स्टैंडअलोन टूल के रूप में उपलब्ध है, और एक IDA प्लगइन के रूप में भी जो IDA और रिवर्सर द्वारा किए गए डिसअसेंबली का लाभ उठाता है।

समर्थन:

  • फ़ाइलें: PE, ELF और रॉ बाइनरी का डिसअसेंबली, आगे की फ़ाइलें IDA में काम करनी चाहिए
  • आर्किटेक्चर: x86 और x86_64

त्वरित पैटर्न मिलान:

त्वरित पैटर्न मिलान

पूर्ण पैटर्न मिलान:

पूर्ण पैटर्न मिलान

एकाधिक फ़ाइलों पर मिलान:

एकाधिक फ़ाइलों पर मिलान

IDA से इंटरैक्टिव रूप से पैटर्न बनाएँ:

IDA से सीधे पैटर्न बनाएँ और मिलान करें

स्थापना

यह दस्तावेज़ बताता है कि Linux वितरण पर grap को कैसे बनाया और स्थापित किया जाए।

आप यह भी पढ़ सकते हैं:

  • WINDOWS.md: Windows पर grap स्थापित करना
  • IDA.md: IDA प्लगइन की स्थापना और उपयोग निर्देश

आवश्यकताएँ

कंपाइलरों (build-essential) के अलावा, निम्नलिखित निर्भरताएँ स्थापित होनी चाहिए:

  • cmake
  • bison
  • flex
  • libboost-regex-dev
  • libboost-system-dev
  • libboost-filesystem-dev
  • libseccomp-dev
  • python3-dev
  • python3-pefile
  • python3-pyelftools
  • python3-capstone
  • swig (संस्करण 3 या नया अनिवार्य है)

इस प्रकार Ubuntu / Debian पर, यह काम करना चाहिए:

root@kitploit:~
sudo apt-get install build-essential cmake bison flex libboost-regex-dev libboost-system-dev libboost-filesystem-dev libseccomp-dev python3-dev python3-pefile python3-pyelftools python3-capstone swig

कृपया ध्यान दें कि इनका परीक्षण नवीनतम Ubuntu LTS (18.04.3) के लिए किया गया था। पैकेज आपके वितरण के आधार पर भिन्न हो सकते हैं।

बनाएँ और स्थापित करें

निम्नलिखित कमांड परियोजना का निर्माण और स्थापना करेंगे:

  • mkdir build; cd build/ जैसा कि हम आपको सलाह देते हैं कि परियोजना को एक समर्पित निर्देशिका में बनाएँ
  • cmake ../src/; make cmake और make के साथ निर्माण करेगा
  • sudo make install grap को /usr/local/bin/ में स्थापित करेगा

SWIG python3 को खोजने में विफल हो सकता है यदि आपका डिफ़ॉल्ट संस्करण python2 है, इसे डिफ़ॉल्ट रूप से python3 पर स्विच करके हल किया जा सकता है। उदाहरण के लिए Ubuntu पर:

root@kitploit:~
sudo update-alternatives --install /usr/bin/python python /usr/bin/python3 10

उपयोग

टूल को निम्नलिखित कमांड का उपयोग करके लॉन्च किया जा सकता है:

$ grap [options] pattern test_paths

नीचे समर्थित विकल्पों के कुछ उदाहरण दिए गए हैं:

  • grap -h: समर्थित विकल्पों का वर्णन करता है

कोई grap को एक स्ट्रिंग से पैटर्न अनुमानित करने दे सकता है। केवल कुछ विकल्प समर्थित हैं लेकिन यह प्रोटोटाइप के लिए उपयोगी है:

  • grap "opcode is xor and arg1 contains '['" (test.exe): मेमोरी राइट के साथ xor की तलाश करें
  • grap -v "sub->xor->sub" (test.exe): -v अनुमानित पैटर्न का पथ आउटपुट करेगा

चुनें कि बाइनरी को कैसे डिसअसेंबल किया जाए:

  • grap -od (pattern.grapp) samples/*: फ़ोल्डर samples/ में फ़ाइलों को बिना मिलान प्रयास के डिसअसेंबल करें
  • grap -f (pattern.grapp) (test.exe): बाइनरी को पुनः डिसअसेंबल करने के लिए बाध्य करें, फिर इसे pattern.grapp के विरुद्ध मिलान करें
  • grap --raw (pattern.grapp) (test.bin): रॉ फ़ाइल को डिसअसेंबल करना (64 बिट बाइनरी के लिए --raw-64 का उपयोग करें)

आउटपुट की वर्बोसिटी को नियंत्रित करें:

  • grap -q -sa (pattern.grapp) (samples/*.grapcfg): डिसअसेंबल की गई फ़ाइलों का मिलान करें, मिलान और गैर-मिलान फ़ाइलों को दिखाएं, प्रति पंक्ति एक
  • grap -m (pattern.grapp) (test.grapcfg): सभी मिलान किए गए नोड दिखाएं

चुनें कि डिसअसेंबल की गई फ़ाइल(एँ) (.grapcfg) कहाँ लिखी जाएँ; एकाधिक फ़ाइलों का एकाधिक पैटर्न के विरुद्ध मिलान करें:

  • grap patterns/basic_block_loop.grapp -o ls.grapcfg /bin/ls: ls को ls.grapp में डिसअसेंबल करें और बेसिक ब्लॉक लूप की तलाश करें
  • grap (pattern1.grapp) -p (pattern2.grapp) (test.exe): एकाधिक पैटर्न फ़ाइलों के विरुद्ध मिलान करें
  • grap -r -q patterns/ /bin/ -o /tmp/ : /bin/ से सभी फ़ाइलों को /tmp/ में डिसअसेंबल करें और उन्हें patterns/ से सभी .grapp पैटर्न के विरुद्ध मिलान करें (पुनरावर्ती विकल्प -r /bin/ पर लागू होता है, patterns/ पर नहीं)

पैटर्न उदाहरण

निम्नलिखित पैटर्न एक डिक्रिप्शन लूप का पता लगाता है जिसमें Backspace नमूने में पाए गए xor के बाद sub शामिल है:

root@kitploit:~
digraph decryption_md5_4ee00c46da143ba70f7e6270960823be {
A [cond=true, repeat=3]
B [cond="opcode is xor and arg2 is 0x11"]
C [cond="opcode is sub and arg2 is 0x25"]
D [cond=true, repeat=3]
E [cond="opcode beginswith j and nchildren == 2"]

A -> B
B -> C
C -> D
D -> E
E -> A [childnumber=2]
}

ध्यान दें कि पैटर्न फ़ाइलों में एकाधिक पैटर्न ग्राफ़ हो सकते हैं।

आप दो निर्देशिकाओं में अतिरिक्त पैटर्न उदाहरण पा सकते हैं:

  • patterns/ में कुछ पैटर्न हैं जो किसी भी बाइनरी पर उपयोगी हो सकते हैं जैसे कि छोटे लूप का पता लगाने या बेसिक ब्लॉक पर लूप का पता लगाने का पैटर्न,
  • examples/ में Backspace मैलवेयर के विरुद्ध उपयोग किए गए पैटर्न हैं (बाइनरी नमूने प्राप्त करने के लिए examples/backspace_samples.md देखें)।

ट्यूटोरियल और आगे के उदाहरण

मैलवेयर नमूनों पर:

  • Navigating malware samples with grap (CLI, IDA): https://yaps8.github.io/blog/grap_qakbot_navigation
  • Automating function parsing and decryption (python bindings): https://yaps8.github.io/blog/grap_qakbot_strings

पायथन बाइंडिंग का उपयोग:

  • Python file demonstrating how to use bindings to analyze Backspace samples: examples/analyze_backspace.py
  • Examples of IDApython scripting are integrated within the IDA plugin, you can see them here: https://yaps8.github.io/grap/html/scripting_css.html

दस्तावेज़ीकरण

आपको doc/ फ़ोल्डर में अधिक दस्तावेज़ीकरण मिलेगा:

  • doc/COMPILE_OPTIONS.md
  • doc/DEBUG.md
  • doc/TESTS.md
  • doc/syntax_highlighting.md

पैटर्न और परीक्षण ग्राफ़ का सिंटैक्स रिलीज़ अनुभाग में फ़ाइल grap_graphs.pdf में विस्तृत है।

लाइसेंस

grap MIT लाइसेंस के तहत लाइसेंस प्राप्त है। पूर्ण लाइसेंस पाठ LICENSE में पाया जा सकता है।

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