Skip to content
KitploitKITPLOIT
उपकरणएक्सप्लॉइटब्लॉग
Log in
जमा करें
उपकरणएक्सप्लॉइटब्लॉग
जमा करें

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

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

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

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

श्रेणियाँ

सभी श्रेणियाँ देखें
Loading categories
dconstruct — TLOU2 DC स्क्रिप्ट्स के लिए एक डिस्सेम्बलर और प्रायोगिक डीकंपाइलर। | Kitploit
उपकरण/GitHubGitHub/deepquantum/dconstruct
स्थैतिक विश्लेषणरिवर्स इंजीनियरिंगडीबगर्सबाइनरी विश्लेषणफर्मवेयर विश्लेषण
GitHubdeepquantum/dconstruct

dconstruct

TLOU2 DC स्क्रिप्ट्स के लिए एक डिस्सेम्बलर और प्रायोगिक डीकंपाइलर।

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

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

सभी देखें →

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

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

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

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

Version License: CC BY-NC-ND 4.0

dconstruct

पूर्ण डिसअसेंबली और डीकंपाइलेशन एनिमेशन

स्रोत MP4 खोलें

dconstruct The Last of Us Part II में उपयोग किए जाने वाले DC-Script फ़ाइलों के लिए एक रिवर्स इंजीनियरिंग उपकरण है। इसमें एक डिसअसेंबलर और एक डीकंपाइलर शामिल है।

यह .asm फ़ाइलें आउटपुट करता है जिनमें डिसअसेंबल संरचनाएँ और बाइटकोड होते हैं, साथ ही .dcpl (DC स्यूडो भाषा) फ़ाइलें जिनमें C-जैसा स्यूडो कोड होता है।

आप कमांड लाइन के माध्यम से फ़ाइलों में संपादन भी कर सकते हैं, जिसमें बिना अधिक प्रयास के पूरी संरचनाओं को बदलना शामिल है। इससे .bin फ़ाइलों के अंदर कुछ मान बदलने वाले मॉड बनाना बेहद आसान हो जाता है।

मुख्य विशेषताएं

  • गति के लिए अनुकूलित। फ़ाइलों को डिसअसेंबल और डीकंपाइल करना बहुत तेज़ है।
  • मूल स्रोत कोड, विशेष रूप से नियंत्रण प्रवाह, का सटीक पुनर्निर्माण
  • डिसअसेंबली में सभी संरचनाओं की सटीक स्वचालित व्याख्या
  • एक ही समय में कई फ़ाइलों को डिसअसेंबल और डीकंपाइल करना। गेम की प्रत्येक .bin फ़ाइल को डीकंपाइल करने में केवल कुछ सेकंड लगते हैं
  • -e फ़्लैग के माध्यम से संपादन करना, नई फ़ाइलें बनाना जिनका उपयोग आप मॉड के लिए कर सकते हैं
  • डिसअसेंबली के लिए उपयोग करने हेतु कस्टम सिडबेस लोड करना

उपयोग कैसे करें

पहले, यह अनुशंसित है कि आप अनज़िप किए गए dconstruct निर्देशिका को किसी सुरक्षित स्थान पर ले जाएँ, जैसे C:\Program Files।

dconstruct का उपयोग यथासंभव आसान बनाने के लिए, यह अनुशंसित है कि आप dconstruct फ़ोल्डर के अंदर .\bin निर्देशिका को अपने PATH में जोड़ें। आप इसके बारे में यहाँ अधिक जान सकते हैं, या इन त्वरित चरणों का पालन कर सकते हैं:

  • अपने विंडोज सर्च बार में जाएँ और "environment variables" टाइप करें, आपको एक विकल्प मिलना चाहिए जो "Edit the system environment variables" पढ़ता है
  • उस विकल्प को चुनने के बाद, आपको "System properties" शीर्षक वाली एक विंडो मिलनी चाहिए। "Ok", "Cancel" और "Apply" बटन के ऊपर, आपको एक बटन दिखाई देना चाहिए जो "Environment variables..." कहता है
  • इस बटन पर क्लिक करने के बाद, एक और विंडो दिखाई देनी चाहिए। यहाँ, दूसरी तालिका ("System variables" शीर्षक) में जाएँ और "Path" चर नाम वाली प्रविष्टि ढूँढ़ें। उस पर डबल-क्लिक करें।
  • इस संवाद में, दाईं ओर "New" विकल्प चुनें। अब .\bin निर्देशिका का पथ पेस्ट करें। यह कुछ इस तरह दिखना चाहिए:

a

  • सुनिश्चित करें कि आपका पथ "\bin" पर समाप्त होता है न कि "\dconstruct" पर।

  • सभी खुले संवादों पर 'OK' क्लिक करें।

  • यह सत्यापित करने के लिए कि यह काम कर गया, एक नया कमांड प्रॉम्प्ट खोलें और dconstruct --about टाइप करें। आपको प्रोग्राम से कुछ आउटपुट देखना चाहिए और कोई त्रुटि संदेश नहीं देखना चाहिए।

अपनी पहली डिसअसेंबल फ़ाइल उत्पन्न करने के लिए कमांड लाइन में इस तरह एक कमांड चलाएँ:```shell dconstruct my_bin_file.bin

यह आपके इनपुट फ़ाइल के समान निर्देशिका में `my_bin_file.bin.asm` नामक एक फ़ाइल आउटपुट करेगा। फिर आप उस फ़ाइल को टेक्स्ट/कोड एडिटर का उपयोग करके खोल सकते हैं। मैं VSCode जैसे किसी एडिटर की सलाह दूंगा जो उन्नत खोज सुविधाएँ प्रदान करता है और बड़ी फ़ाइलों को संभालने में अच्छा है। मानक Windows नोटपैड की अनुशंसा नहीं की जाती है।

किसी फ़ाइल को डीकंपाइल करने के लिए, कमांड चलाते समय `--decompile` फ़्लैग जोड़ें।

# कमांड लाइन आर्गुमेंट्स

- `-i` - इनपुट फ़ाइल या फ़ोल्डर। यदि इनपुट पथ को पहले आर्गुमेंट के रूप में पास किया जा रहा है तो इसे छोड़ा जा सकता है।

- `-o` - आउटपुट पथ। यदि आपका इनपुट पथ एक फ़ोल्डर है, तो यह कोई फ़ाइल नहीं हो सकता। यदि कोई आउटपुट निर्दिष्ट नहीं है, तो .txt फ़ाइल इनपुट फ़ाइल के बगल में रखी जाएगी। यदि इनपुट एक फ़ोल्डर है और कोई आउटपुट निर्दिष्ट नहीं है, तो प्रोग्राम वर्तमान कार्यशील निर्देशिका में एक "output" निर्देशिका बनाएगा और सभी फ़ाइलों को वहाँ रखेगा।

- सिडबेस को एक्सीक्यूटेबल के बगल में स्थित `sidbase.bin` से लोड किया जाता है।

- `--no_decompile` - .dcpl फ़ाइल में डीकंपाइल्ड स्यूडो कोड को उत्सर्जित न करें। फ़ाइल .asm फ़ाइल के बगल में रखी जाएगी। डिफ़ॉल्ट रूप से यह false है।

- `--no_optimize` - dcpl कोड को ऑप्टिमाइज़ और साफ़ न करें। इसमें फ़ंक्शन कॉल को इनलाइन करना, अप्रयुक्त चर हटाना, संगत for लूप को foreach लूप में बदलना, और कुछ if-else श्रृंखलाओं को match एक्सप्रेशन में बदलना शामिल है।

- `--pascal_case` - dcpl आउटपुट में गेम के फ़ंक्शन नामों को पास्कल केस में बदलें, उदा. get-boolean -> GetBoolean।

- `--graphs` - सभी डीकंपाइल किए गए फ़ंक्शनों के लिए कंट्रोल फ्लो ग्राफ़ वाली .svg फ़ाइलें उत्सर्जित करें। प्रत्येक .bin फ़ाइल के लिए उसके सभी ग्राफ़ वाला अपना फ़ोल्डर बनता है। यह डीकंपाइलेशन की गति को **काफी** धीमा कर देता है, इसलिए एक साथ बड़ी संख्या में फ़ाइलों को डीकंपाइल करते समय इसकी अनुशंसा नहीं की जाती है।

- `--emit_once` - एक ही संरचना को डिसअसेंबली में दो बार उत्सर्जित होने से रोकता है। यदि कोई संरचना कई बार दिखाई देती है, तो केवल पहली बार ही पूरी तरह उत्सर्जित की जाएगी, और अन्य सभी अवसरों को `ALREADY_EMITTED` टैग से बदल दिया जाएगा। इससे फ़ाइल का आकार काफी कम हो सकता है।

- `-e` - एक संपादन करें। नीचे दिए गए अनुभाग में अधिक जानकारी।

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

# डिस्सेम्बलर क्या है?

एक [डिस्सेम्बलर](https://en.wikipedia.org/wiki/Disassembler) एक उपकरण है जो बाइनरी निर्देशों (उर्फ [बाइटकोड](https://en.wikipedia.org/wiki/Bytecode) या [मशीन कोड](https://en.wikipedia.org/wiki/Machine_code)) को पढ़ता है और प्रत्येक को एक मानव-पठनीय संस्करण में अनुवादित करता है जिसे [मनेमोनिक](https://en.wikipedia.org/wiki/Assembly_language#Mnemonics) कहा जाता है। डिस्सेम्बलर आमतौर पर इन निर्देशों के अर्थ के बारे में अधिक व्याख्या करने का प्रयास नहीं करते हैं और केवल उन्हें 1-1 रूप में उनके पठनीय संस्करणों में बदल देते हैं। उदाहरण के लिए, निर्देश:```arm
15 00 00 00
4A 01 01 00
43 31 01 00
1C 00 00 01

निम्नलिखित मानव-पठनीय संस्करणों में डिस्सेम्बल किए जाते हैं:```arm LookupPointer r0, 0 LoadStaticU64Imm r1, 1 Move r49, r1 CallFf r0, r0, 1

बाइटकोड में सभी संख्याएँ [हेक्साडेसिमल](https://en.wikipedia.org/wiki/hexadecimal) में लिखी जाती हैं। प्रत्येक पंक्ति में पहला कॉलम `opcode` या निष्पादित किए जाने वाले निर्देश के प्रकार को दर्शाता है। अगला कॉलम गंतव्य रजिस्टर है, जहाँ संक्रिया का परिणाम संग्रहीत किया जाएगा। अंतिम दो कॉलम प्रचालक 1 और 2 हैं, जो या तो रजिस्टर हैं या शाब्दिक संख्याएँ हैं जिन पर संक्रिया की जाएगी। सभी निर्देश सभी 4 बाइट्स का उपयोग नहीं करते, उदाहरण के लिए, पहले `LookupPointer` निर्देश को केवल एक प्रचालक की आवश्यकता होती है।

dconstruct डिसअसेंबलर कुछ अतिरिक्त जानकारी भी जोड़ता है जिसका उद्देश्य निर्देशों को पढ़ना थोड़ा आसान बनाना है। यह कोड में शाखाओं को ट्रेस करना आसान बनाने के लिए लेबल (जैसे `L_0`) भी सम्मिलित करता है।```arm
15 00 00 00   LookupPointer        r0, 0         r0 = ST[0] -> <is-player-abby?>
4A 01 01 00   LoadStaticU64Imm     r1, 1         r1 = ST[1] -> <player>
43 31 01 00   Move                 r49, r1       r49 = player
1C 00 00 01   CallFf               r0, r0, 1     r0 = is-player-abby?(player)
2F 0D 00 00   BranchIfNot          r0, 0xD       IF NOT r0 => L_0

यह तब उपयोगी है जब आप प्रोग्राम द्वारा बहुत अधिक अनुमान लगाए बिना फ़ाइल की कच्ची सामग्री देखना चाहते हैं। लेकिन कोड के बड़े ब्लॉकों के लिए इसे पढ़ना मुश्किल हो सकता है, क्योंकि कोई संरचना नहीं होती है। यह वह जगह है जहाँ एक डीकंपाइलर काम आता है।

डीकंपाइलर क्या है?

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