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

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

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

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

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

श्रेणियाँ

सभी श्रेणियाँ देखें
Loading categories
उपकरण/GitHubGitHub/adelapie/ghidra-evm
स्थैतिक विश्लेषणभेद्यता विश्लेषणरिवर्स इंजीनियरिंगबाइनरी विश्लेषण
GitHubadelapie/ghidra-evm

ghidra-evm

Ghidra मॉड्यूल जो Ethereum स्मार्ट कॉन्ट्रैक्ट बाइटकोड को डिसअसेंबल, डीकंपाइल और विश्लेषित करता है। असुरक्षित निर्देशों का पता लगाता है, छिपे हुए तरीकों को निकालता है, और सुरक्षा ऑडिट के लिए कंट्रोल-फ़्लो ग्राफ़ उत्पन्न करता है।

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

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

सभी देखें →

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

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

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

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

Ghidra EVM मॉड्यूल

front

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

ghidra-EVM स्मार्ट अनुबंधों के रिवर्स इंजीनियरिंग के लिए एक Ghidra मॉड्यूल है। इसका उपयोग एथेरियम ब्लॉकचेन से एथेरियम वर्चुअल मशीन (EVM) बाइटकोड डाउनलोड करने और स्मार्ट अनुबंध को डिस्सेम्बल और डीकंपाइल करने के लिए किया जा सकता है। इसके अलावा, यह निर्माण कोड का विश्लेषण कर सकता है, अनुबंध विधियाँ ढूंढ सकता है और असुरक्षित निर्देशों का पता लगा सकता है।

इसमें एक प्रोसेसर मॉड्यूल, कस्टम लोडर और प्लगइन(s) शामिल हैं जो एथेरियम VM (EVM) बाइटकोड को डिस्सेम्बल करते हैं और एक स्मार्ट अनुबंध का नियंत्रण-प्रवाह ग्राफ (CFG) उत्पन्न करते हैं।

नवीनतम संस्करण Ghidra 9.1.2 API का उपयोग करता है। यह CFG निर्माण प्रक्रिया में Ghidra की सहायता के लिए crytic evm_cfg_builder लाइब्रेरी (https://github.com/crytic/evm_cfg_builder) पर निर्भर करता है।

Ghidra-evm में शामिल हैं:

  • एक लोडर जो क्रमशः .evm और .evm_h फ़ाइलों से बाइट और हेक्स कोड पढ़ता है (उदाहरण देखें examples)।
  • Ghidra कोर सीमाओं को ध्यान में रखते हुए EVM निर्देश सेट की SLEIGH परिभाषा (नोट्स देखें)।
  • एक सहायक स्क्रिप्ट जो Ghidra को CFG उत्पन्न करने और स्मार्ट अनुबंध के फ़ंक्शन गुणों का पता लगाने में सहायता करने के लिए evm_cfg_builder और ghidra_bridge का उपयोग करती है।
  • स्क्रिप्ट का एक संग्रह जो स्मार्ट अनुबंध के विभिन्न पहलुओं के रिवर्स इंजीनियरिंग में मदद करता है:
स्क्रिप्टविवरण
search_codecopy.pyजब किसी स्मार्ट अनुबंध में निर्माण कोड का विश्लेषण किया जाता है, तो हम केवल _dispatcher फ़ंक्शन देख सकते हैं जो रन टाइम कोड को मेमोरी में लिखने के लिए CODECOPY का उपयोग करता है। यह स्क्रिप्ट उपयोगी CODECOPY निर्देशों की खोज करती है और अनुबंध के रनटाइम भाग में छिपे स्मार्ट अनुबंध विधियों को ढूंढती है।
search_dangerous_instructions.pyCALL, CALLCODE, SELFDESTRUCT और DELEGATECALL जैसे निर्देशों का कभी-कभी दुरुपयोग किसी अन्य अनुबंध में धन हस्तांतरित करने के लिए किया जा सकता है। यह स्क्रिप्ट उन्हें ढूंढती है और प्रत्येक घटना के लिए एक लेबल बनाती है।
load_external_contract.pyब्लॉकचेन से स्मार्ट अनुबंध बाइटकोड को .evm_h फ़ाइल में डाउनलोड करता है जिसे ghidra-evm में लोड किया जा सकता है।

स्थापना निर्देश

  • ghidra_bridge स्थापित करें, https://github.com/justfoxing/ghidra_bridge पर दिए गए निर्देशों का पालन करें।
  • crytic evm_cfg_builder लाइब्रेरी स्थापित करें, https://github.com/crytic/evm_cfg_builder पर दिए गए निर्देशों का पालन करें।
  • ghidra_evm/dist/ पर नवीनतम ghidra-evm रिलीज़ फ़ाइल स्थापित करें:
    • ghidra खोलें
    • फ़ाइल -> एक्सटेंशन स्थापित करें
    • '+' पर क्लिक करें और ज़िप फ़ाइल चुनें जैसे ghidra_9.1.2_PUBLIC_20201102_ghidra_evm.zip
    • ठीक क्लिक करें
    • Ghidra पुनः प्रारंभ करें

संकलन निर्देश

ghidra-evm निर्देशिका की सामग्री का उपयोग ghidra_evm को विस्तारित या डीबग करने के लिए Eclipse में प्रोसेसर और लोडर के साथ एक Ghidra मॉड्यूल बनाने के लिए किया जा सकता है।

ट्यूटोरियल

middle

ट्यूटोरियलविवरण
Utilizationtest.evm के साथ सरल उपयोग निर्देश
Analyzing creation bytecodeनिर्माण कोड का विश्लेषण करने और छिपी विधियों को खोजने के लिए search_codecopy.py का उपयोग करना
Looking for dangerous instructionsSELFDESTRUCT घटना का विश्लेषण करने के लिए search_dangerous_instructions.py का उपयोग करना
Downloading smart contract bytecode from the blockchain into Ghidraब्लॉकचेन से EVM बाइटकोड को .evm_h फ़ाइल में डाउनलोड करने के लिए load_external_contract.py का उपयोग करना

बाहरी प्रतीकात्मक निष्पादन उपकरणों के साथ एकीकरण

स्क्रिप्टविवरण
teetherयह एक्सप्लॉइट उत्पन्न करने से पहले Ghidra में महत्वपूर्ण पथ को चिह्नित करता है। teether की आवश्यकता है।

नोट्स

  • CFG evm_cfg_builder के अनुसार बनाया गया है: JUMP और JUMPI निर्देशों का उपयोग किया जाता है।
  • डिस्सेम्बली और नियंत्रण प्रवाह विंडो में शाखाओं का पता लगाने और दिखाने के लिए तदनुसार 32x32 (evm_jump_table) का एक जंप टेबल उत्पन्न किया जाता है।
  • Ghidra को 64-बिट से अधिक शब्द आकार वाली आर्किटेक्चर और मेमोरी से निपटने के लिए डिज़ाइन नहीं किया गया है। इसका मतलब है कि PUSH32 जैसे निर्देश डीकंपाइलेशन विंडो में सही ढंग से नहीं दिखाए जाते हैं।

लाइसेंस

Ghidra-evm AGPLv3 के तहत लाइसेंस प्राप्त और वितरित किया गया है।

धन्यवाद

  • यह कार्य यूरोपीय आयोग द्वारा H2020 कार्यक्रम की परियोजना M-Sec के तहत अनुदान 814917 के माध्यम से समर्थित था।
  • Ghidra-EVM को ब्लैक हैट एशिया 2021 के शस्त्रागार ट्रैक में प्रस्तुत किया गया था। आप स्लाइड्स यहाँ पा सकते हैं।
टूल डाउनलोड करें