दुर्भाग्य से मैंने अपना सोर्स कोड खो दिया है और मेरे पास सिर्फ आउटपुट फाइल है जो linux में gcc के साथ बनाई गई है और मेरे पास अब अपने पीसी की कोई पहुंच नहीं है। आउटपुट फाइल को source file (linux के नीचे c) में बदलने का कोई तरीका है?
दुर्भाग्य से मैंने अपना सोर्स कोड खो दिया है और मेरे पास सिर्फ आउटपुट फाइल है जो linux में gcc के साथ बनाई गई है और मेरे पास अब अपने पीसी की कोई पहुंच नहीं है। आउटपुट फाइल को source file (linux के नीचे c) में बदलने का कोई तरीका है?
जवाबों:
तो आपके पास एक गाय थी, लेकिन आपने अनजाने में इसे हैमबर्गर में बदल दिया, और अब आप अपनी गाय वापस चाहते हैं।
क्षमा करें, यह सिर्फ उस तरह से काम नहीं करता है।
बस अपने बैकअप से स्रोत फ़ाइल को पुनर्स्थापित करें।
आह, आपके पास बैकअप नहीं था। दुर्भाग्य से, ब्रह्मांड आपको इसके लिए अवकाश नहीं देता है।
आप बाइनरी को विघटित कर सकते हैं । वह आपको अपना स्रोत कोड नहीं देगा, लेकिन यह आपको उसी व्यवहार के साथ कुछ स्रोत कोड देगा। जब तक यह डिबग बाइनरी नहीं होता तब तक आपको चर नाम नहीं मिलेंगे। जब तक आप अनुकूलन के बिना संकलित नहीं हो जाते, आपको ठीक वही तर्क नहीं मिलेगा। जाहिर है, आपको टिप्पणियां नहीं मिलेंगी।
मैंने कुछ कार्यक्रमों को विघटित करने के लिए बूमरैंग का उपयोग किया है , और परिणाम मशीन कोड की तुलना में अधिक पठनीय था। मुझे नहीं पता कि यह सबसे अच्छा उपकरण है या नहीं। वैसे भी, चमत्कार की उम्मीद मत करो।
रिवर्स इंजीनियरिंग में कई उपकरण एक निष्पादन योग्य हैं।
ज्यादातर मामलों में मैंने देखा है, कोड को स्क्रैच से फिर से लिखने की जरूरत है, एक असेंबली भाषा प्रोग्राम के रूप में बनाए रखा गया है, या पुराने संस्करण में परिवर्तन अनुरोधों को फिर से लागू करके पुनर्गठित किया गया है।
आप जो करना चाहते हैं उसे "डिकंपाइलिंग" कहा जाता है। वहाँ कई डिकंपाइलर हैं और उन सभी को यहाँ कवर करना व्यावहारिक नहीं है।
हालांकि, एक सामान्य टिप्पणी के रूप में: सी स्रोत से निष्पादन योग्य मशीन कोड में रूपांतरण हानिपूर्ण है। उदाहरण के लिए:
कोड को लिखित रूप में संकलित किया जाना दुर्लभ है। इन दिनों अधिकांश कंपाइलर इसे अनुकूलित करने के लिए आपके कोड को काफी बदल देंगे। इसलिए जब आप विघटित हो जाते हैं, तो कंपाइलर केवल अनुमान लगा सकता है कि स्रोत कोड कैसा दिखता होगा, यह जानने का कोई तरीका नहीं है कि आपका कोड क्या था, क्योंकि वह चला गया है। यदि डिकंपाइलर अच्छा है, तो आपको प्राप्त कोड कम से कम एक समतुल्य निष्पादन योग्य में वापस संकलित किया जाएगा, और फिर आप इसे पठनीय बनाने के लिए धीरे-धीरे इसे फिर से शुरू करना शुरू कर सकते हैं। लेकिन सबसे अधिक संभावना है कि डीकॉम्पेलर बिल्कुल अपठनीय स्पेगेटी कोड का उत्पादन करेगा, और इसे समझने के लिए एक बड़ा सिरदर्द होगा। कभी-कभी, यह खरोंच से कार्यक्रम को फिर से लिखने के लिए कम काम हो सकता है ।