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

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

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

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

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

श्रेणियाँ

सभी श्रेणियाँ देखें
Loading categories
ida-efiutils — कुछ IDA Pro स्क्रिप्ट्स जो EFI बाइनरीज़ के रिवर्स इंजीनियरिंग में सहायता करती हैं | Kitploit
उपकरण/GitHubGitHub/snare/ida-efiutils
एम्बेडेड सिस्टम सुरक्षारिवर्स इंजीनियरिंगहार्डवेयर और IoT सुरक्षाबाइनरी विश्लेषणफर्मवेयर विश्लेषण
GitHubsnare/ida-efiutils

ida-efiutils

कुछ IDA Pro स्क्रिप्ट्स जो EFI बाइनरीज़ के रिवर्स इंजीनियरिंग में सहायता करती हैं

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

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

सभी देखें →

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

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

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

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

IDA Pro के लिए EFI स्क्रिप्ट्स

EFI एक्ज़ीक्यूटेबल्स के रिवर्स इंजीनियरिंग में सहायता के लिए कुछ IDA स्क्रिप्ट्स।

इस पैकेज में निम्नलिखित फ़ाइलें शामिल हैं:

  1. efiutils.py - कुछ सहायक फ़ंक्शनों वाला IDAPython मॉड्यूल

  2. efiguids.py - EFI प्रोटोकॉल के लिए ज्ञात GUIDs का संग्रह

  3. efiguids_ami.py - AMI BIOS में उपयोग किए जाने वाले प्रोटोकॉल के लिए ज्ञात GUIDs का संग्रह

  4. behemoth.h - EFI के लिए प्रकार और संरचना परिभाषाओं का संग्रह रखने वाला एक विशाल हेडर

  5. structs.idc - कुछ संरचना परिभाषाएँ रखने वाली एक IDC स्क्रिप्ट (behemoth.h द्वारा प्रतिस्थापित)

  6. te_image.bt - TE बाइनरी इमेज के लिए एक 010 Editor टेम्पलेट

  7. te_loader.py - TE बाइनरी इमेज के लिए एक IDA Pro लोडर स्क्रिप्ट

IDA स्क्रिप्टिंग का यह मेरा पहला प्रयास है, इसलिए कृपया मुझे क्षमा करें और बताएं कि क्या मैंने पहिये का पुनः आविष्कार किया है/कुछ अनुचित किया है।

फ़ंक्शन

मुख्य उपयोगी फ़ंक्शन नीचे वर्णित हैं। अन्य फ़ंक्शनों के बारे में अधिक जानकारी के लिए कोड और docstrings देखें।

rename_tables()

बाइनरी के लिए पहला एंट्री पॉइंट ढूंढता है, एंट्री पॉइंट फ़ंक्शन को पारित किए गए पैरामीटरों को ट्रैक करने का प्रयास करता है और उन ग्लोबल वेरिएबल्स का नाम बदलता है जिनमें प्रमुख EFI टेबल्स संग्रहीत हैं। निम्नलिखित नामकरण क्रियाएँ की जाती हैं:

  1. ग्लोबल जहाँ ImageHandle समाप्त होता है उसका नाम बदलकर gImageHandle कर दिया जाता है।

  2. ग्लोबल जहाँ SystemTable समाप्त होता है उसका नाम बदलकर gSystemTable कर दिया जाता है।

  3. ग्लोबल जहाँ SystemTable->BootServices समाप्त होता है उसका नाम बदलकर gBootServices कर दिया जाता है।

  4. ग्लोबल जहाँ SystemTable->RuntimeServices समाप्त होता है उसका नाम बदलकर gRuntimeServices कर दिया जाता है।

कॉल निर्देशों का अनुसरण केवल एक स्तर गहराई तक किया जाएगा, क्योंकि अधिकांश एक्ज़ीक्यूटेबल्स टेबल संदर्भों को एंट्री पॉइंट या एंट्री पॉइंट से कॉल किए गए फ़ंक्शन में कॉपी करते हैं। आवश्यकता पड़ने पर MAX_STACK_DEPTH बदलें।

update_structs()

ऊपर नाम बदले गए टेबल्स के क्रॉस-रेफरेंस ढूंढता है, और उनके नामों को उपयुक्त संरचनाओं से स्ट्रक्चर ऑफसेट होने के लिए अपडेट करता है। यदि rename_tables() विफल रहा तो इसे ठीक से काम करने के लिए आपको ऊपर बताए अनुसार चीज़ों का मैन्युअल रूप से नाम बदलना होगा।

उदाहरण के लिए:

root@kitploit:~
    mov     rax, cs:qword_whatever
    call    qword ptr [rax+150h]

बन जाता है:

root@kitploit:~
    mov     rax, cs:gBootServices
    call    [rax+EFI_BOOT_SERVICES.UninstallMultipleProtocolInterfaces]

rename_guids()

डेटा सेगमेंट में GUIDs ढूंढता है और उनका नाम बदलता है। TianoCore स्रोत से 470 प्रोटोकॉल GUIDs निकाले गए थे, और मालिकाना Apple (और अन्य विक्रेता) GUIDs जोड़े जाएंगे जैसे ही उनका सामना होगा।

go()

सुविधा विधि जो उपरोक्त सभी कार्य करती है।

उपयोग

  1. अपनी EFI बाइनरी को IDA Pro में लोड करें

  2. आवश्यक डेटा संरचनाओं को परिभाषित करने के लिए behemoth.h आयात करें

  3. स्थानीय प्रकारों से संरचनाओं को अपने IDB में जोड़ें

  4. इसे python के पथ में जोड़ने के लिए efiutils.py चलाएँ (या इसे किसी अन्य विधि से करें)

  5. कोड/docstrings पर एक नज़र डालें, लेकिन संभवतः:

    root@kitploit:~
     import efiutils; efiutils.go()
    

te_loader.py TE इमेज लोडर का उपयोग करने के लिए, इसे किसी भी अन्य लोडर की तरह इंस्टॉल करें। OS X पर यह इसे idaq.app/Contents/MacOS/loaders/ फ़ोल्डर के अंदर कॉपी या सिमलिंक करके किया जाता है।

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