मेरा एक कार्यक्रम है जिसमें मैंने C ++ स्रोत कोड खो दिया है। क्या कोई अच्छा C ++ डिकंपाइलर है?
मैं पहले से ही बुमेरांग में भागा हूं ।
मेरा एक कार्यक्रम है जिसमें मैंने C ++ स्रोत कोड खो दिया है। क्या कोई अच्छा C ++ डिकंपाइलर है?
मैं पहले से ही बुमेरांग में भागा हूं ।
जवाबों:
आप हेक्सा किरणों द्वारा आईडीए प्रो का उपयोग कर सकते हैं । जब तक आप डिबगिंग जानकारी में संकलित नहीं हो जाते, तब तक आम तौर पर आपको बाइनरी से अच्छा C ++ नहीं मिलेगा। कोड को उलटने के लिए बहुत सारे श्रम खर्च करने की तैयारी करें ।
यदि आपने बायनेरिज़ को स्ट्रिप नहीं किया है, तो कुछ आशा है क्योंकि आईडीए प्रो आपके साथ काम करने के लिए सी-समान कोड का उत्पादन कर सकता है। आमतौर पर यह बहुत कठिन है, हालांकि कम से कम जब मैंने इसे कुछ साल पहले इस्तेमाल किया था।
जानकारी संकलन प्रक्रिया में छोड़ दी जाती है। भले ही एक डिकम्पॉइलर कक्षाओं और सब कुछ (यह शायद नहीं कर सकता) के साथ तार्किक समकक्ष कोड का उत्पादन कर सकता है, स्व-दस्तावेज़ीकरण का हिस्सा अनुकूलित रिलीज़ कोड में चला गया है। कोई चर नाम, कोई नियमित नाम, कोई वर्ग नाम नहीं - बस पते।
हां, लेकिन उनमें से कोई भी प्रयास के लायक पठनीय कोड का उत्पादन करने का प्रबंधन नहीं करेगा। आप अपने पुराने ऐप को स्क्रैच से फिर से लिखने की तुलना में अधिक समय बिताने के लिए कोडांतरक ब्लॉक के साथ विघटित स्रोत को पढ़ने की कोशिश करेंगे।
मैंने सी + + कोड उत्पन्न करने वाले किसी भी डिकंपाइलर को नहीं देखा है। मैंने कुछ प्रयोगात्मक लोगों को देखा है जो सी कोड उत्पन्न करने के लिए एक उचित प्रयास करते हैं, लेकिन वे एक विशेष संकलक के कोड-पीढ़ी के पैटर्न के मिलान पर निर्भर होने के लिए प्रवृत्त होते हैं (जो कि बदल गया हो सकता है, जब से मैंने आखिरी बार इस पर गौर किया है, कुछ समय हो गया है )। बेशक कोई भी प्रतीकात्मक जानकारी चली जाएगी। Google "डिकम्पॉइलर" के लिए।
मूल कोड कितना बड़ा और कितना अच्छा लिखा गया था, इस पर निर्भर करते हुए, यह आपकी पसंदीदा भाषा (जो अभी भी C ++ हो सकता है) में फिर से शुरू करने और अंतिम संस्करण में की गई किसी भी गलती से सीखने के लायक हो सकता है। क्या किसी ने एक बार फेंकने के लिए लिखने के बारे में नहीं कहा था?
nb स्पष्ट रूप से अगर यह एक बहुत बड़ा उत्पाद है, तो यह समय के लायक नहीं हो सकता है।
objdump
Linux के लिए