2011-01-05 15 views
14

हमारे पास उत्पादन में एक एप्लीकेशन है और कोड प्री-कंपाइल फॉर्म में है। डेवलपर जिसने उस एप्लिकेशन को विकसित किया, कंपनी छोड़ दी और हमारे पास स्रोत कोड का कोई बैकअप नहीं है। हमारे पास एकमात्र पहुंच सर्वर में प्री संकलित कोड है। हमें अब आवेदन में मुद्दों को ठीक करने की जरूरत है।डीकंपाइल प्रीकंपिल्ड सोर्स कोड एएसपी.नेट

क्या प्रीकंपिल्ड कोड को डीकंपाइल (वास्तविक स्रोत कोड में निकालने) का कोई तरीका है?

उत्तर

12

.NET Reflector में डीएलएल खोलें।

+0

प्रीकंपील्ड कोड में कोई डीएलएल नहीं है। केवल एक चीज जो मैं देखता हूं वह एएसपीएक्स पेज और कुछ अन्य छवियां हैं, स्किन्स फ़ोल्डर्स – msbyuva

+0

@msbyuva: क्या आपने एप्लिकेशन के बिन फ़ोल्डर को चेक किया था? – adamjford

+0

मुझे कुछ डीएलएस दिखाई देते हैं, मैंने .NET परावर्तक के माध्यम से खोला तो मैंने उन्हें अलग कर दिया लेकिन किसी भी कोड को नहीं देखा है। और मैं .aspx.cs फ़ाइलों को कैसे देख सकता हूं? – msbyuva

2

प्रारंभ के साथ:

http://www.red-gate.com/products/dotnet-development/reflector/

... प्लस:

http://www.denisbauer.com/NETTools/FileDisassembler.aspx

आप परावर्तक के v6.5 के खिलाफ यह लिंक करने के लिए बाद पुन: संयोजित करना होगा (नवीनतम , इस पोस्ट के रूप में।) यह एक अच्छा ऐड-ऑन है यदि आप कभी भी एकल वर्ग को फ़ाइलों में कॉपी और पेस्ट करने से बचाना चाहते हैं। यह पूरी तरह से असेंबली को .cs फ़ाइलों के रूप में डंप करेगा। मुझे लगता है कि यह एक csproj भी उत्पन्न कर सकता है।

दोनों उपकरण निःशुल्क हैं।

+0

प्रीकंपील्ड कोड में कोई डीएलएल नहीं है। एकमात्र चीजें जो मैं देखता हूं वे एएसपीएक्स पेज और कुछ अन्य छवियां हैं, खाल फ़ोल्डर्स .. मैं एएसपीएक्स सीएस पेज कैसे प्राप्त कर सकता हूं? – msbyuva

+0

कोई और aspx.cs "पेज" नहीं हैं, जो वास्तव में पृष्ठ नहीं हैं, लेकिन स्रोत कोड फ़ाइलें हैं। सी # कंपाइलर - सभी कंपाइलर्स की तरह - स्रोत फ़ाइलों का संग्रह लेता है और उन्हें एक या अधिक डीएलएल में बदल देता है। आप मूल .cs फ़ाइलों को वापस पाने में सक्षम नहीं होंगे। आपको उपरोक्त टूल का उपयोग करके सभी वर्गों को स्रोत फ़ाइलों के रूप में डंप करना होगा, और फिर उन्हें आपके मौजूदा एस्पैक्स पृष्ठों के साथ एक नई वेब प्रोजेक्ट में जोड़ना होगा। – x0n

+0

धन्यवाद ... जैसा कि मैंने सुझाव दिया है कि मैंने परावर्तक का उपयोग किया था और मैं कक्षा फाइलों और कोड के पीछे कोड में सभी कोड देख सकता हूं। खैर, मुझे समझ में नहीं आया कि दूसरा उपकरण फ़ाइल डिस्म्बलर का उपयोग कैसे करें .. मैंने सभी डीएलएल को .NET परावर्तक से निकाला है, मैं उन निकाले गए डीएल के स्रोत कोड निकालने के लिए दूसरे टूल का उपयोग कैसे कर सकता हूं ??? मुझे परेशान करने के लिए मुझे खेद है ... – msbyuva

0

मैंने पाया कि डीएलएल सिर्फ .NET परावर्तक उपकरण का उपयोग करके पढ़ा जा सकता है लेकिन स्रोत कोड निकाला नहीं जा सकता है। और एक बार जब वेबफॉर्म प्रीकंपल हो जाते हैं, तो हम फ़ाइलों के पीछे कोड वापस भी नहीं ले सकते हैं। कोड हम डीबग और विश्लेषण करने के लिए हम कर सकते हैं।

+0

.NET परावर्तक अच्छा है लेकिन यह मुफ़्त टूल नहीं है, मुझे डॉटपीक मिला जो मुफ़्त है - http://www.jetbrains.com/decompiler/ – msbyuva

0

मेरे पास एक ही समस्या थी और इसका उपयोग डीकंपाइल करने के लिए प्रतिबिंबित किया गया था। मुझे सोर्स कोड मिला, फिर मैंने जो बिट चाहता था उसे बदल दिया, और इसे पुनर्निर्माण किया। तब मैंने फिर से उत्पादन स्थल पर उस डीएल की प्रतिलिपि बनाई। यह मेरे परिवर्तनों को प्रतिबिंबित करना शुरू कर दिया। यह बहुत आसान था और मुश्किल नहीं था, शायद क्योंकि प्रीकंपिल्टेड साइट में प्रत्येक पृष्ठ के लिए डीएलएस था, और अद्यतन करने योग्य था, इसलिए डीएल में केवल कोड-पीछे फ़ाइल थी।

संदर्भ के लिए: http://www.reflector.net/

0

जब यू .net reflecter.its स्थापित दृश्य स्टूडियो में आयात करते हैं। फिर आपने मेन्यू बार पर .net परावर्तक उपकरण देखा।

.net परावर्तक पर क्लिक करें >> डीबग करने के लिए Asseblies (Dll फ़ाइल) चुनें। हाल ही में एक स्रोत नियंत्रण आपदा मैं DLLs से अपने प्रोजेक्ट ठीक करने के लिए किया था के कारण

:

3

@ Xon के जवाब अपडेट करने के लिए। तो दुर्भाग्य से मैं प्रक्रिया पर जानकार हूँ:

  1. यहां से नेट परावर्तक प्राप्त करें: http://www.red-gate.com/products/dotnet-development/reflector/

  2. आप FileDisassembler की जरूरत नहीं हैं।

  3. या तो रिफ्लेक्टर में अपने डिब्बे लोड करें या डबल क्लिक करें।

  4. ध्यान दें कि नेट फ्रेमवर्क ने आपकी मूल प्रोजेक्ट फ़ाइल संरचना को बनाए रखा नहीं होगा। इसलिए यदि आपके कुछ एएसपीएक्स पृष्ठों ने अलग-अलग .cs फ़ाइलों में समान मूल वर्ग का नाम साझा किया है (आईई Inherits टैग समान है, लेकिन CodeFile टैग भिन्न है), तो आप बस "स्रोत कोड निर्यात" करने में सक्षम नहीं होंगे। अंधाधुंध स्रोत फ़ाइलों को निर्यात न करें। यह काम नहीं करेगा।

  5. पुराने बिल्ड बटन को आग लगाने में सक्षम होने से पहले अभी भी कुछ काम किया जाएगा। उदाहरण के लिए - डीएलएल सीधे संपत्ति के गेटर/सेटर्स को संदर्भित कर सकते हैं। आपको इसे ठीक करना होगा।

शुभकामनाएं।

संबंधित मुद्दे