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

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

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

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

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

श्रेणियाँ

सभी श्रेणियाँ देखें
Loading categories
patching — IDA Pro के लिए एक इंटरैक्टिव बाइनरी पैचिंग प्लगइन | Kitploit
उपकरण/GitHubGitHub/gaasedelen/patching
स्थैतिक विश्लेषणगतिशील कोड विश्लेषण (DAST)शोषणरिवर्स इंजीनियरिंगशेलकोडडीबगर्समालवेयर विश्लेषणबाइनरी विश्लेषणलर्निंग और शिक्षापेलोड डेवलपमेंटबाइनरी शोषण
1.3k14911 साल पहलेKitploit द्वारा समीक्षित

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

सभी देखें →

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

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

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

सभी उपकरण देखें →
साझा करें
GitHub
gaasedelen/patching

patching

IDA Pro के लिए एक इंटरैक्टिव बाइनरी पैचिंग प्लगइन

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

Patching - IDA Pro के लिए इंटरैक्टिव बाइनरी पैचिंग

Patching Plugin

अवलोकन

मौजूदा प्रोग्राम के व्यवहार को बदलने के लिए असेंबली कोड को पैच करना मैलवेयर विश्लेषण, सॉफ्टवेयर रिवर्स इंजीनियरिंग और सुरक्षा अनुसंधान के व्यापक क्षेत्रों में असामान्य नहीं है। यह प्रोजेक्ट लोकप्रिय IDA Pro डिसअसेंबलर को विस्तारित करता है ताकि तीव्र पुनरावृत्ति के लिए डिज़ाइन किया गया अधिक मजबूत इंटरैक्टिव बाइनरी पैचिंग वर्कफ़्लो बनाया जा सके।

यह प्रोजेक्ट वर्तमान में सर्वव्यापी Keystone Engine के एक छोटे फोर्क द्वारा संचालित है, जो x86/x64 और Arm/Arm64 पैचिंग का समर्थन करता है और भविष्य के रिलीज़ में शेष Keystone आर्किटेक्चर को सक्षम करने की योजना है।

इस प्लगइन के विकास का समर्थन करने के लिए Hex-Rays को विशेष धन्यवाद।

रिलीज़

  • v0.2 -- महत्वपूर्ण बगफिक्स, IDA 9 संगतता
  • v0.1 -- प्रारंभिक रिलीज़

स्थापना

इस प्लगइन के लिए IDA 7.6 और Python 3 की आवश्यकता है। यह Windows, Linux और macOS का समर्थन करता है।

कृपया ध्यान दें, IDA के पुराने संस्करण (8.2 और नीचे) Python 3.11 और इसके ऊपर के संस्करणों के साथ संगत नहीं हैं।

आसान स्थापना

प्लगइन को स्वचालित रूप से स्थापित करने के लिए IDA कंसोल में निम्नलिखित लाइन चलाएँ:

Windows / Linux

root@kitploit:~
import urllib.request as r; exec(r.urlopen('https://github.com/gaasedelen/patching/raw/main/install.py').read())

macOS

root@kitploit:~
import urllib.request as r; exec(r.urlopen('https://github.com/gaasedelen/patching/raw/main/install.py', cafile='/etc/ssl/cert.pem').read())

मैन्युअल स्थापना

वैकल्पिक रूप से, प्लगइन को आपके संबंधित प्लेटफ़ॉर्म के लिए वितरण योग्य प्लगइन पैकेज को रिलीज़ पृष्ठ से डाउनलोड करके और इसे आपके प्लगइन फ़ोल्डर में अनज़िप करके मैन्युअल रूप से स्थापित किया जा सकता है।

इस प्लगइन को IDA के उपयोगकर्ता प्लगइन निर्देशिका में स्थापित करने की दृढ़ता से अनुशंसा की जाती है:

root@kitploit:~
import ida_diskio, os; print(os.path.join(ida_diskio.get_user_idadir(), "plugins"))

उपयोग

पैचिंग प्लगइन समर्थित आर्किटेक्चर (x86/x64/Arm/Arm64) के लिए स्वचालित रूप से लोड होगा और IDA डिसअसेंबली व्यू के राइट-क्लिक संदर्भ मेनू में प्रासंगिक पैचिंग क्रियाएँ इंजेक्ट करेगा:

Patching plugin right click context menu

प्रासंगिक पैचिंग क्रियाओं की पूरी सूची निम्नलिखित अनुभागों में वर्णित है।

असेंबल करें

मुख्य पैचिंग डायलॉग को राइट-क्लिक संदर्भ मेनू में Assemble क्रिया के माध्यम से लॉन्च किया जा सकता है। यह एक मूल IDA डिसअसेंबली व्यू का अनुकरण करता है जिसका उपयोग तेजी से एक या अधिक निर्देशों को संपादित करने के लिए किया जा सकता है।

The interactive patching dialog

असेंबली लाइन एक संपादन योग्य फ़ील्ड है जिसका उपयोग निर्देशों को वास्तविक समय में संशोधित करने के लिए किया जा सकता है। Enter दबाने पर दर्ज किया गया निर्देश डेटाबेस में प्रतिबद्ध (पैच) हो जाएगा।

आपका वर्तमान स्थान (अर्थात आपका कर्सर) हमेशा हरे रंग में हाइलाइट किया जाएगा। आपके पैच/संपादन के परिणामस्वरूप जो निर्देश ओवरराइट होंगे, उन्हें पैच करने से पहले लाल रंग में हाइलाइट किया जाएगा।

Additional instructions that will be clobbered by a patch show up as red

अंत में, संपादन योग्य असेंबली टेक्स्ट फ़ील्ड पर फोकस रहते हुए UP और DOWN एरो की का उपयोग माउस का उपयोग किए बिना डिसअसेंबली व्यू में कर्सर को ऊपर और नीचे तेजी से ले जाने के लिए किया जा सकता है।

NOP

सबसे आम पैचिंग क्रिया एक या अधिक निर्देशों को NOP करना है। इस कारण से, NOP क्रिया त्वरित पहुँच के लिए हमेशा राइट-क्लिक मेनू में दिखाई देगी।

Right click NOP instruction

व्यक्तिगत निर्देशों के साथ-साथ निर्देशों की चयनित श्रेणी को भी NOP किया जा सकता है।

सशर्त जंप को बल दें

एक सशर्त जंप को हमेशा 'अच्छा' पथ निष्पादित करने के लिए बाध्य करना एक और सामान्य पैचिंग क्रिया है। प्लगइन यह क्रिया केवल तभी दिखाएगा जब आप किसी सशर्त जंप निर्देश पर राइट-क्लिक करते हैं।

Forcing a conditional jump

यदि आप कभी नहीं चाहते कि कोई सशर्त जंप लिया जाए, तो आप इसे इसके बजाय NOP कर सकते हैं!

सहेजें और त्वरित लागू करें

पैच को किसी भी समय पैचिंग सबमेनू के माध्यम से चयनित निष्पादन योग्य में सहेजा (लागू) किया जा सकता है। त्वरित-लागू क्रिया समान सेटिंग्स का उपयोग करके बाद के पैच को सहेजना और भी तेज़ बनाती है।

Applying patches to the original executable

प्लगइन मूल निष्पादन योग्य का एक बैकअप (.bak) बनाए रखने का सक्रिय प्रयास भी करेगा, जिसका उपयोग यह प्रत्येक सहेज के दौरान डेटाबेस पैच के वर्तमान सेट को 'स्वच्छ' रूप से लागू करने के लिए करता है।

पैच को पूर्ववत करें

अंत में, यदि आप कभी किसी पैच से असंतुष्ट हैं, तो आप पैच किए गए (पीले) ब्लॉकों पर राइट-क्लिक करके उन्हें उनके मूल मान पर वापस ला सकते हैं।

Reverting patches

जबकि बाइट्स को उनके मूल मान पर वापस लाना 'आसान' है, विश्लेषण को उसकी पिछली स्थिति में बहाल करना 'कठिन' हो सकता है। किसी पैच को पूर्ववत करने के लिए कभी-कभी अतिरिक्त मानवीय सुधारों की आवश्यकता हो सकती है।

ज्ञात बग

  • ARM / ARM64 / THUMB सटीकता में और सुधार करें
  • cpp::like::symbols(...) / IDB के लिए 'बेहतर' व्यवहार परिभाषित करें (अभी बहुत अनिश्चित है)
  • पुनर्वास प्रविष्टियों के बारे में जोड़ना/अद्यतन करना/संशोधित करना/दिखाना/चेतावनी देना?
  • नाम बदले गए रजिस्टरों (जैसे ड्वार्फ एनोटेटेड आईडीबी के खिलाफ) को संभालें?
  • कई नए निर्देश (लगभग 2017 और बाद के) Keystone द्वारा समर्थित नहीं हैं
  • Keystone द्वारा कुछ समस्याग्रस्त निर्देश एन्कोडिंग

भविष्य का कार्य

समय और प्रेरणा के अनुसार, भविष्य के कार्य में निम्नलिखित शामिल हो सकते हैं:

  • Keystone द्वारा समर्थित शेष प्रमुख आर्किटेक्चर को सक्षम करें:
    • PPC32 / PPC64 / MIPS32 / MIPS64 / SPARC / SystemZ
  • बहु-निर्देश असेंबली (जैसे xor eax, eax; ret;)
  • बहु-पंक्ति असेंबली (जैसे शेलकोड / asm लेबल)
  • इंटरैक्टिव बाइट / डेटा / स्ट्रिंग संपादन
  • प्रतीक संकेत / ऑटो-पूर्ण / फ़ज़ी-मैचिंग
  • संपादन योग्य असेंबली लाइन के लिए सिंटैक्स हाइलाइटिंग
  • त्रुटियों, सिंटैक्स समस्याओं आदि का बेहतर संकेत
  • Hex-Rays व्यू से NOP / Force Jump (सुनने में आसान लगता है, लेकिन शायद काफी कठिन!)
  • 'प्रिटी प्रिंट' मोड बनाम 'रॉ' मोड के बीच रेडियो बटन टॉगल? या दोनों प्रदर्शित करें?
    root@kitploit:~
    Pretty:  mov     [rsp+48h+dwCreationDisposition], 3
       Raw:  mov     [rsp+20h], 3
    

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

लेखक

  • Markus Gaasedelen (@gaasedelen)
टूल डाउनलोड करें