
C++ python बाइटकोड डिसएसेम्बलर और डीकम्पाइलर
पायथन बाइट-कोड डिस्सेम्बलर/डीकम्पाइलर
Decompyle++ का उद्देश्य संकलित पायथन बाइट-कोड को वापस वैध और मानव-पठनीय पायथन स्रोत कोड में अनुवाद करना है। जबकि अन्य परियोजनाओं ने अलग-अलग सफलता के साथ यह हासिल किया है, Decompyle++ इस मायने में अद्वितीय है कि यह पायथन के किसी भी संस्करण से बाइट-कोड का समर्थन करना चाहता है।
Decompyle++ में एक बाइट-कोड डिस्सेम्बलर (pycdas) और एक डीकम्पाइलर (pycdc) दोनों शामिल हैं।
जैसा कि नाम से पता चलता है, Decompyle++ C++ में लिखा गया है। यदि आप योगदान देना चाहते हैं, तो कृपया हमें github पर फोर्क करें: https://github.com/zrax/pycdc
CMake के साथ एक प्रोजेक्ट या मेकफ़ाइल जनरेट करें (विवरण के लिए CMake का दस्तावेज़ीकरण देखें)
डीबग सुविधाओं को नियंत्रित करने के लिए CMake को निम्नलिखित विकल्प दिए जा सकते हैं:
| विकल्प | विवरण |
|---|---|
-DCMAKE_BUILD_TYPE=Debug | डीबगिंग प्रतीक उत्पन्न करें |
-DENABLE_BLOCK_DEBUG=ON | ब्लॉक डीबगिंग आउटपुट सक्षम करें |
-DENABLE_STACK_DEBUG=ON | स्टैक डीबगिंग आउटपुट सक्षम करें |
जनरेट किए गए प्रोजेक्ट या मेकफ़ाइल को बनाएँ
make चलाएँmake check JOBS=4 चलाएँ (वैकल्पिक
FILTER=xxxx केवल कुछ परीक्षण चलाने के लिए)pycdas चलाने के लिए, PYC डिस्सेम्बलर:
./pycdas [PYC फ़ाइल का पथ]
बाइट-कोड डिस्सेम्बली stdout पर मुद्रित होती है।
pycdc चलाने के लिए, PYC डीकम्पाइलर:
./pycdc [PYC फ़ाइल का पथ]
डीकम्पाइल किया गया पायथन स्रोत stdout पर मुद्रित होता है।
कोई भी त्रुटि stderr पर मुद्रित होती है।
मार्शल किए गए कोड ऑब्जेक्ट:
दोनों टूल marshal.dumps(compile(...)) से आउटपुट के रूप में पायथन मार्शल किए गए कोड ऑब्जेक्ट का समर्थन करते हैं।
इस सुविधा का उपयोग करने के लिए, कमांड लाइन पर -c -v <version> निर्दिष्ट करें - संस्करण निर्दिष्ट किया जाना चाहिए क्योंकि ऑब्जेक्ट स्वयं संस्करण मेटाडेटा नहीं रखते हैं।
Decompyle++ Michael Hansen और Darryl Pogue का कार्य है।
अतिरिक्त योगदान:
यह GNU जनरल पब्लिक लाइसेंस, संस्करण 3 की शर्तों के तहत जारी किया गया है; विवरण के लिए LICENSE फ़ाइल देखें।