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

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

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

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

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

श्रेणियाँ

सभी श्रेणियाँ देखें
Loading categories
decomp2dbg — अपने डीकंपाइलर से आपके डीबगर में इंटरैक्टिव सिंबल शामिल करने के लिए एक प्लगइन | Kitploit
उपकरण/GitHubGitHub/mahaloz/decomp2dbg
स्थैतिक विश्लेषणगतिशील विश्लेषण (सैंडबॉक्सिंग)रिवर्स इंजीनियरिंगडीबगर्सबाइनरी विश्लेषणबाइनरी शोषण
GitHubmahaloz/decomp2dbg

decomp2dbg

अपने डीकंपाइलर से आपके डीबगर में इंटरैक्टिव सिंबल शामिल करने के लिए एक प्लगइन

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

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

सभी देखें →

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

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

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

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

decomp2dbg

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

decomp2dbg का उद्देश्य डीकंपाइलर और डीबगर के बीच संदर्भ स्विचिंग के अंतर को कम करना है, जो एक सामान्य API प्रस्तुत करता है डीकंपाइलर-से-डीबगर प्रतीक सिंकिंग के लिए। प्रभाव में, यह रिवर्सर को अपने डीबगर की शक्ति देता है जिसमें उनके डीकंपाइलर में पुनर्प्राप्त किए गए प्रतीक और डीकंपाइलेशन लाइनें होती हैं।

decomp2dbg

व्यवहार में decomp2dbg कैसा दिखता है, यह देखने में रुचि है? CactusCon 2023 में रिकॉर्ड किया गया टॉक देखें, जिसमें Ghidra प्रतीकों के साथ x64 मशीन से दूरस्थ arm32 बाइनरी को डीबग करना दिखाया गया है।

सक्रिय सहायता के लिए, नीचे BinSync Discord से जुड़ें, जहां हम decomp2dbg प्रश्नों का उत्तर देते हैं:

Discord

समर्थित प्लेटफ़ॉर्म

डीकंपाइलर

  • IDA Pro (>= 9.0): GEF के साथ डेमो
  • Binary Ninja (>= 2.4): GEF के साथ डेमो
  • Ghidra (>= 12): GEF के साथ डेमो
  • angr-management (>= 9.0)
  • डीबगर

    • gdb
      • GEF
      • pwndbg
      • वेनिला

    स्थापना

    pip के माध्यम से स्थापित करें, फिर डीकंपाइलरों के लिए अंतर्निहित इंस्टॉलर का उपयोग करें:

    root@kitploit:~
    pip3 install decomp2dbg && decomp2dbg --install 
    

    यह एक प्रॉम्प्ट खोलेगा जहां आपसे अपने पसंदीदा डीकंपाइलर और डीबगर का पथ दर्ज करने के लिए कहा जाएगा। Ghidra के लिए, आपको PyGhidra मोड में लॉन्च करना होगा, और प्लगइन (d2d_client.py) को सक्षम करना होगा, जैसा कि यहाँ दिखाया गया है। यदि आपने Binja Plugin Manager में डीकंपाइलर-साइड स्थापित किया है, तब भी आपको उपरोक्त के साथ डीबगर साइड स्थापित करना होगा। नोट: आपको decomp2dbg को अपने डीकंपाइलर और डीबगर के समान Python वातावरण में स्थापित करना होगा।

    नोट: decomp2dbg को डीकंपाइलर से कनेक्ट करने के लिए आपको पोर्ट 3662, या आपके द्वारा उपयोग किए जाने वाले पोर्ट पर इनबाउंड कनेक्शन की अनुमति देनी पड़ सकती है। यदि आप GEF या pwndbg के साथ decomp2dbg स्थापित कर रहे हैं, तो यह महत्वपूर्ण है कि आपकी ~/.gdbinit में d2d.py फ़ाइल GEF या pwndbg के बाद स्रोत (sourced) हो।

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

    यदि आप उपरोक्त स्थापना का उपयोग बिना किसी त्रुटि के करने में सक्षम थे, तो इसे छोड़ें। यदि आप उपरोक्त अंतर्निहित स्क्रिप्ट का उपयोग नहीं कर सकते हैं (डीकंपाइलर के लिए गैर-WSL Windows स्थापना), तो नीचे दिए गए चरणों का पालन करें:

    यदि आपको केवल डीकंपाइलर पक्ष की आवश्यकता है, तो संबंधित डीकंपाइलर प्लगइन को डीकंपाइलर के प्लगइन फ़ोल्डर में कॉपी करें। IDA में इसे करने का तरीका यहां दिया गया है:

    पहले, रेपो को क्लोन करें:

    root@kitploit:~
    git clone https://github.com/mahaloz/decomp2dbg.git
    

    स्थापित करें:

    root@kitploit:~
    pip install .
    

    सभी सर्वर फ़ाइल को कॉपी करें:

    root@kitploit:~
    cp ./decomp2dbg/d2d_server.py /path/to/ida/plugins/
    

    यदि आपको gdb पक्ष भी स्थापित करने की आवश्यकता है, तो नीचे दी गई लाइन का उपयोग करें:

    root@kitploit:~
    cp ./decomp2dbg/d2d_client.py ~/.d2d.py && echo "source ~/.d2d.py" >> ~/.gdbinit
    

    उपयोग

    पहले, अपने डीकंपाइलर पर डीकंपाइलेशन सर्वर प्रारंभ करें। हो सकता है कि आप इसे प्रारंभ करने से पहले अपने डीकंपाइलर द्वारा अपने सामान्य विश्लेषण को पूरा करने तक प्रतीक्षा करना चाहें। सामान्य विश्लेषण के बाद, यह हॉटकी Ctrl-Shift-D का उपयोग करके, या अपने संबंधित प्लगइन टैब में decomp2dbg: configure टैब का चयन करके किया जा सकता है। सर्वर प्रारंभ करने के बाद, आपको अपने डीकंपाइलर में एक संदेश दिखना चाहिए

    root@kitploit:~
    [+] Starting XMLRPC server: localhost:3662
    [+] Registered decompilation server!
    

    इसके बाद, अपने डीबगर में, चलाएँ:

    root@kitploit:~
    decompiler connect <decompiler_name>
    

    यदि आप डीकंपाइलर को VM या अलग मशीन पर चला रहे हैं, तो आप वैकल्पिक रूप से होस्ट और पोर्ट प्रदान कर सकते हैं जिनसे कनेक्ट करना है। यहां एक उदाहरण है:

    root@kitploit:~
    decompiler connect ida --host 10.211.55.2 --port 3662
    

    आप सभी कमांड का उपयोग कैसे करें, इसका पता --help फ्लैग के साथ डीकंपाइलर कमांड चलाकर लगा सकते हैं।

    पहला कनेक्शन बाइनरी में ग्लोबल्स की मात्रा के आधार पर पंजीकृत होने में 30 सेकंड तक लग सकता है। यदि सब कुछ ठीक रहा, तो आपको दिखना चाहिए:

    root@kitploit:~
    [+] Connected to decompiler!
    

    यदि आप किसी लाइब्रेरी के लिए decomp2dbg का उपयोग कर रहे हैं, अर्थात जिस मुख्य बाइनरी से आपका डीबगर जुड़ा है, वह वह बाइनरी नहीं है जिसके लिए आप स्रोत चाहते हैं, तो आपको रीडमी के Advanced Usage - Shared Libs अनुभाग को देखना चाहिए।

    डीकंपाइलेशन व्यू

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

    फंक्शन और ग्लोबल वेरिएबल

    आपके डीकंपाइलेशन से फंक्शन और ग्लोबल वेरिएबल अब सामान्य स्रोत-स्तर प्रतीकों की तरह आपके GDB में मैप हो गए हैं। इसका मतलब है कि प्रिंट और परीक्षण जैसे सामान्य GDB कमांड मूल रूप से काम करते हैं:

    root@kitploit:~
    b sub_46340
    x/10i sub_46340
    
    root@kitploit:~
    p dword_267A2C 
    x dword_267A2C
    

    स्टैक वेरिएबल, रजिस्टर वेरिएबल, फंक्शन आर्गुमेंट

    कुछ वेरिएबल जो किसी फंक्शन में स्थानीय रूप से संग्रहीत होते हैं, स्टैक वेरिएबल होते हैं। उन वेरिएबल के लिए जिन्हें स्टैक या रजिस्टरों पर मैप किया जा सकता है, हम उन्हें सुविधा वेरिएबल के रूप में आयात करते हैं। आप उनकी सामग्री को सामान्य GDB सुविधा वेरिएबल की तरह देख सकते हैं:

    root@kitploit:~
    p $v4
    

    स्टैक वेरिएबल हमेशा अपना पता स्टैक पर संग्रहीत करेंगे। यह देखने के लिए कि वास्तव में उस स्टैक वेरिएबल में क्या मान है, बस वेरिएबल को डीरेफरेंस करें:

    root@kitploit:~
    x $v4
    

    यह फंक्शन आर्गुमेंट के साथ भी काम करता है यदि लागू हो (माइलेज भिन्न हो सकता है):

    root@kitploit:~
    p $a1
    

    नोट: इस मामले में $v4 केवल तब तक मैप रहेगा जब तक आप उसी फंक्शन में हैं। एक बार जब आप फंक्शन छोड़ देते हैं, तो यह अनमैप हो सकता है या किसी अन्य मान पर रीमैप हो सकता है।

    उन्नत उपयोग

    साझा लाइब्रेरीज़

    जब आप मेमोरी के किसी अनुभाग के लिए डीकंपाइलेशन (और प्रतीक) प्रदर्शित करना चाहते हैं जो मुख्य बाइनरी नहीं है, जैसे कि किसी साझा लाइब्रेरी को डीबग करते समय, तो आपको कुछ अतिरिक्त कदम उठाने होंगे। वर्तमान में, d2d एक बार में केवल 1 डीकंपाइलर कनेक्टेड का समर्थन करता है, जिसका अर्थ है कि यदि आपके पास वर्तमान में कोई डीकंपाइलर कनेक्टेड है जो लाइब्रेरी नहीं है, तो आपको इसे डिस्कनेक्ट करना होगा।

    अपनी साझा लाइब्रेरी के लिए d2d सर्वर चला रहे डीकंपाइलर के सामान्य सेटअप का पालन करने के बाद, आपको इस लाइब्रेरी के लिए आधार पता और इसके अंत का पता मैन्युअल रूप से सेट करना होगा:

    root@kitploit:~
    decompiler connect ida --base-addr-start 0x00007ffff7452000 --base-addr-end 0x00007ffff766d000
    

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

    सुविधाएँ

    • स्वचालित-अपडेट होने वाला डीकंपाइलेशन संदर्भ दृश्य
    • स्वचालित-सिंक होने वाले फंक्शन नाम
    • ब्रेकेबल/इंस्पेक्टेबल प्रतीक
    • स्वचालित-सिंक होने वाले स्टैक वेरिएबल नाम
    • स्वचालित-सिंक होने वाले स्ट्रक्ट
    • ऑनलाइन DWARF निर्माण
    • फंक्शन प्रकार सिंकिंग
    • lldb समर्थन
    • windbg समर्थन
    टूल डाउनलोड करें