डॉटफ़स्केटर के साथ अपने सिल्वरलाइट एप्लिकेशन को अस्पष्ट करें
डॉटफ़स्केटर के बारे में
डॉटफ़ुस्केटर एक अस्पष्टकर्ता है जो स्रोत कोड को पढ़ना मुश्किल बनाता है जब .NET फ्रेमवर्क के साथ लिखे गए अनुप्रयोगों को अलग किया जाता है। डॉटफ़स्केटर दृश्य स्टूडियो के साथ आने वाले मुफ्त और सशुल्क खुदरा संस्करणों दोनों में उपलब्ध है।
मुफ्त संस्करण केवल कई सीमित सुविधाओं और इस धारणा के साथ उपलब्ध है कि विजुअल स्टूडियो चल रहा है, लेकिन विजुअल स्टूडियो स्थापित कोई भी इसका उपयोग कर सकता है। भुगतान किए गए संस्करण में कई शक्तिशाली अस्पष्टता विशेषताएं हैं जो मुफ्त संस्करण में उपलब्ध नहीं हैं, लेकिन यह कष्टप्रद हो सकता है कि इसे एक ऐसी कीमत पर पेश किया जाता है जो आम जनता के लिए बर्दाश्त करना मुश्किल है।
डॉटफ़स्केटर में संस्करण के आधार पर अलग-अलग विशेषताएं, मूल्य निर्धारण और संस्करण हो सकते हैं, इसलिए विवरण के लिए कृपया निम्नलिखित वेबसाइट देखें।
पार्स किया गया कोड
जैसा कि ऊपर उल्लेख किया गया है, नेट फ्रेमवर्क के साथ बनाए गए एप्लिकेशन आसानी से मूल स्रोत कोड को अलग करके पढ़ सकते हैं, लेकिन वास्तव में क्या होता है कि जब आप आकृति में दिखाए गए अनुसार असेंबली फ़ाइल को अलग करते हैं, तो अधिकांश मूल स्रोत कोड जैसे नामस्थान, वर्ग नाम और विधि नाम पुन: पेश किए जा सकते हैं।
अस्पष्टता प्रक्रिया
हमेशा की तरह सिल्वरलाइट एप्लिकेशन बनाकर और रिलीज़ बिल्ड करके शुरू करें। यहां, हम एक ऐसा एप्लिकेशन बना रहे हैं जो केवल दो बटन रखता है।
जहाँ प्रोजेक्ट स्थित है फ़ोल्डर के बिन\रिलीज़ फ़ोल्डर में, टाइप करें। एक्सएपी" एक पैकेज फ़ाइल है जो सिल्वरलाइट अनुप्रयोगों में उपयोग किए जाने वाले कार्यक्रमों और फ़ाइलों को सारांशित करती है।
दरअसल, यह फ़ाइल ज़िप फ़ाइल के रूप में संकुचित और संकलित है, इसलिए एक्सटेंशन है "। ज़िप".
इसे ज़िप फ़ाइल में बदल दिया गया है।
जब आप फ़ाइल खोलते हैं, तो इसमें एक मैनिफ़ेस्ट फ़ाइल और एक DLL होता है। यह DLL प्रोग्राम का संकलित संस्करण है जो अनुप्रयोग के रूप में चलता है।
वैसे, डीएलएल फ़ाइल को निर्मित होने पर रिलीज़ फ़ोल्डर में भी रखा जाता है, इसलिए इस बार हम इस फ़ाइल को अस्पष्ट कर देंगे।
दृश्य स्टूडियो मेनू से, उपकरणका चयन करें, और उसके बाद प्रीएम्प्टिव डॉटफ़ुस्केटर और विश्लेषिकीकाका का चयन करें।
पहली बार शुरू करते समय, "लाइसेंस समझौता" संवाद प्रदर्शित किया जाएगा, इसलिए सामग्री को ध्यान से पढ़ें, "हाँ, मैं लाइसेंस समझौते को स्वीकार करता हूं" की जांच करें और "ठीक" बटन पर क्लिक करें।
प्रीएम्प्टिव डॉटफ्यूस्केटर और एनालिटिक्स सीई शुरू होता है।
बाईं ओर पेड़ से "इनपुट" चुनें और "इनपुट जोड़ें" बटन पर क्लिक करें।
बिल्ड के दौरान जनरेट की गई DLL फ़ाइल का चयन करें।
आपके द्वारा जोड़ी गई DLL फ़ाइल का चयन करें और XAML रूपांतरण > लायब्रेरी मोड को अनचेक करें.
यदि "लाइब्रेरी मोड" की जाँच की जाती है, तो सार्वजनिक रूप से परिभाषित कक्षाएं और विधियाँ अस्पष्ट नहीं होंगी।
यदि "एक्सएएमएल रूपांतरण" की जाँच की जाती है, तो एक्सएएमएल में परिभाषित कक्षाएं अस्पष्ट हो जाएंगी, लेकिन आप इसे कैसे बनाते हैं, इसके आधार पर, यह स्टार्टअप त्रुटि का कारण होगा, इसलिए यदि ऐसा होता है, तो कृपया इसे अनचेक करें।
असल में, सभी वर्ग, विधियां, गुण और चर नाम अस्पष्ट हैं, लेकिन यदि आप सीरियलाइजेशन के कारण किसी विशिष्ट नामस्थान या वर्ग को अस्पष्ट नहीं करना चाहते हैं, तो बाईं ओर के पेड़ से "नाम बदलें" चुनें, "बहिष्कृत करें" टैब का चयन करें, और लक्ष्य नामस्थान या वर्ग की जांच करें।
अंतर्निहित नियमों के अंतर्गत, सुनिश्चित करें कि सिल्वरलाइट और WPF उपयोगकर्ता नियंत्रण के लिए फ़ील्ड की जाँच की गई है। इसकी जाँच करने से उपयोगकर्ता नियंत्रण फ़ील्ड अस्पष्ट हो जाएगा और सफलतापूर्वक चलेगा। यदि यह अस्पष्ट होने के बाद भी सही ढंग से काम करता प्रतीत होता है तो आप इसे अनचेक कर सकते हैं।
जब आप समाप्त कर लें, तो उपकरण पट्टी से "प्रोजेक्ट बनाएँ" बटन पर क्लिक करें।
यदि प्रोजेक्ट में परिवर्तन होते हैं, तो प्रोजेक्ट सहेजें पुष्टिकरण संवाद प्रदर्शित किया जाएगा, इसलिए सहेजने के लिए "हाँ" पर क्लिक करें।
परियोजना को "कहा जाता है" एक्सएमएल" फ़ाइल। अस्पष्ट फ़ाइलें उसी स्थान पर सहेजी जाती हैं.
बिल्ड के शुरू होने पर पूरा होने की प्रतीक्षा करें। ध्यान दें कि प्रोग्राम जितना बड़ा होगा, उतना ही अधिक समय लगेगा। जब यह आकृति की तरह दिखता है, तो निर्माण पूरा हो जाता है।
संदेश फ़ील्ड बिल्ड की प्रगति और एक संक्षिप्त परिणाम दिखाता है जैसे कि यह कितना अस्पष्ट था।
यदि आप बाईं ओर पेड़ से परिणाम का चयन करते हैं, तो आप कक्षा और विधि नाम कैसे बदल गए हैं, इसके बारे में विवरण देख सकते हैं।
कक्षा और विधि नामों के तहत, एक डॉटफ्यूस्केटर आइकन और "ए" और "बी" जैसे नाम होंगे, जो अस्पष्ट नाम होंगे। इस तरह से वर्ग नाम या विधि नाम को अर्थहीन नाम में बदलकर, भले ही इसे अलग किया गया हो, यह स्रोत कोड की सामग्री को पढ़ना मुश्किल बना सकता है।
अस्पष्ट फ़ाइल सहेजें प्रोजेक्ट में सहेजी गई .xml फ़ाइल के फ़ोल्डर में "डॉटफ़स्केटेड" नामक फ़ोल्डर में बनाई गई है। अस्पष्ट फ़ाइल के अलावा, एक "मैप.xml" फ़ाइल बनाई गई है, लेकिन यह अस्पष्टता का परिणाम है और इसका उपयोग नहीं किया जाता है।
यदि आप अस्पष्ट फ़ाइल को अलग करते हैं, तो आप देख सकते हैं कि कुछ वर्ग और विधि नाम "ए" या "बी" में बदल दिए गए हैं।
इस बार, बनाई गई डिफ़ॉल्ट परियोजना लगभग वैसी ही अस्पष्ट थी, जैसा कि यह था, इसलिए मुझे लगता है कि एक छवि है कि यह इतना अस्पष्ट नहीं है, लेकिन मुझे लगता है कि अस्पष्टता का प्रभाव स्पष्ट हो जाता है क्योंकि परियोजना बढ़ने के साथ वर्गों आदि की संख्या बढ़ जाती है।
एक तरफ के रूप में, । NET फ्रेमवर्क लायब्रेरीज़ और नाम बदलने के अधीन नहीं हैं क्योंकि वे असेंबली हैं जो पहले से ही Windows पर स्थापित हैं, उदाहरण के लिए।
सिल्वरलाइट डीएलएल का उपयोग नहीं करता है, इसलिए उन्हें एक्सएपी फ़ाइलों के रूप में पैक किया जाता है। जैसा कि शुरुआत में उल्लेख किया गया है, एक एक्सएपी फ़ाइल ज़िप फ़ाइल के एक्सटेंशन में सिर्फ एक बदलाव है, इसलिए यह एक्सएपी फ़ाइल और अस्पष्ट डीएलएल में निहित फ़ाइलों को इकट्ठा करके एक ज़िप फ़ाइल बनाता है।
एक ज़िप फ़ाइल बनाना मानक ओएस सुविधाओं का उपयोग करके किया जा सकता है।
एक ज़िप फ़ाइल बनाई गई है।
एक्सटेंशन को 'में बदल दिया गया है। xap" और यदि फ़ाइल का नाम भिन्न है, तो इसे मूल पैकेज फ़ाइल नाम में परिवर्तित करें।
XAP फ़ाइल को वितरण स्थान पर रखें.
कृपया ऑपरेशन की जांच करें और देखें कि क्या यह ठीक से काम करता है।
यदि यह शुरू नहीं होता है, तो अस्पष्ट कोड को कम करके सामान्य रूप से काम करने तक जांचें। ध्यान दें कि सिल्वरलाइट अक्सर एक्सएएमएल से संबंधित मामलों में फंस जाती है।
यद्यपि निर्देश यहाँ सूचीबद्ध नहीं हैं, यदि आप किसी प्रोग्राम पर हस्ताक्षर करना चाहते हैं, तो इसे विलंब-हस्ताक्षरित स्थिति में बनाएँ, असेंबली को अस्पष्ट करें, और तब पुन: हस्ताक्षर करें. यहां तक कि अगर आप इसे हस्ताक्षरित करते समय अस्पष्ट करते हैं, तो बिल्ड के समय संलग्न हस्ताक्षर कोड और अस्पष्टता के बाद हस्ताक्षर कोड मेल नहीं खाएगा, इसलिए आप इसे शुरू नहीं कर पाएंगे।
इस लेख में, मैंने मुफ्त संस्करण के लिए चरणों को सूचीबद्ध किया है, लेकिन यदि आप भुगतान किए गए संस्करण का उपयोग करते हैं, तो आप अधिक जटिल अस्पष्टता कर सकते हैं और विघटन को रोक सकते हैं। हालांकि, अस्पष्टता में विभिन्न प्रतिकूल प्रभाव पैदा करने की क्षमता है, इसलिए जब अस्पष्टीकरण किया जाता है, तो यह विचार करना आवश्यक है कि क्या यह डिजाइन की शुरुआत से ठीक से काम करेगा।