डॉटफ़ुस्केटर का उपयोग करके बनाए गए एप्लिकेशन को अस्पष्ट करें
सारांश
.NET Framework पर आधारित अनुप्रयोगों को एक सामान्य मध्यवर्ती भाषा कहा जाता है में बनाए जाते हैं, क्योंकि वे disassembly उपकरण और इसी तरह का उपयोग करके मूल स्रोत कोड के करीब एक प्रपत्र में पढ़ा जा सकता है। यह अनुभाग वर्णन करता है कि कैसे Obfuscator Dotfuscator, Visual Studio के साथ आता है जो obfuscator, वर्ग और विधि नामों को एक ऐसे स्वरूप में विभाजित करने के लिए जो आसानी से पठनीय नहीं है।
हम इसके बारे में यहां विजुअल स्टूडियो 2010 का उपयोग करके बात कर रहे हैं, लेकिन आप 2005 और 2008 में भी Dotfuscator का उपयोग कर सकते हैं।
ऑपरेटिंग वातावरण
समर्थित Visual Studio संस्करण
- 2005
- 2008
- 2010
Visual Studio संस्करण की जाँच करें
- 2005
- 2008
- 2010
पदार्थ
Dotfuscator के बारे में
Dotfuscator एक obfuscation उपकरण है जो .NET Framework के साथ लिखे गए अनुप्रयोगों में disassembled होने पर स्रोत कोड को पढ़ने के लिए कठिन बनाता है। Dotfuscator मुफ्त में और एक शुल्क के लिए Visual Studio के साथ आता है।
मुफ्त संस्करण तब तक उपलब्ध नहीं है जब तक कि इसकी कई सुविधाएँ सीमित न हों या Visual Studio प्रारंभ न हो, लेकिन कोई भी इसका उपयोग तब तक कर सकता है जब तक कि उनके पास Visual Studio स्थापित न हो. भुगतान किए गए संस्करण में कई शक्तिशाली अस्पष्टता विशेषताएं हैं जो मुफ्त संस्करण में नहीं पाई जाती हैं, लेकिन यह एक ऐसी कीमत पर पेश की जाती है जो आम जनता के लिए बर्दाश्त करना मुश्किल है।
Dotfuscator संस्करण के आधार पर विभिन्न सुविधाओं, कीमतों, और संस्करणों है, तो कृपया विवरण के लिए निम्नलिखित मुखपृष्ठ को देखें.
निषेध प्रक्रिया
मैंने पहले उल्लेख किया था कि .NET Framework के साथ बनाए गए एप्लिकेशन मूल स्रोत कोड को अलग कर सकते हैं और आसानी से पढ़ सकते हैं, लेकिन वास्तविक स्थिति यह है कि यदि आप दाईं ओर के आंकड़े में दिखाए गए exe फ़ाइल को अलग करते हैं, तो आप लगभग मूल स्रोत कोड को पुन: पेश कर सकते हैं जैसे कि नामस्थान, वर्ग नाम, विधि नाम, आदि।
इन नामों को भ्रमित और अस्पष्ट बनाने के लिए चरणों का वर्णन करता है।
Visual Studio में कोई अनुप्रयोग बनाना और exe फ़ाइल बनाना इसे बनाने के लिए सामान्य तरीके के समान है।
आप बनाएँ और exe फ़ाइल बनाने के बाद, Visual Studio मेनू से उपकरणका चयन करें, और उसके बाद Dotfuscator सॉफ़्टवेयर सेवाएँका चयन करें।
जब आप पहली बार शुरू करते हैं, तो "लाइसेंस एग्रीमेंट" संवाद दाईं ओर के चित्र में दिखाए गए अनुसार प्रदर्शित होता है, इसलिए सामग्री को ध्यान से पढ़ें, "हाँ, मैं लाइसेंस अनुबंध से सहमत हूं" की जांच करें।
Dotfuscator सॉफ़्टवेयर सेवाएँ प्रारंभ होती हैं.
exe (या dll फ़ाइल) obfuscated किया जा करने के लिए वर्तमान में खुले प्रोजेक्ट से होना आवश्यक नहीं है।
बाईं ओर ट्री से इनपुट असेंबली का चयन करें, और ... बटन पर क्लिक करने के लिए दाईं ओर इनपुट असेंबली पर क्लिक करें।
उस exe फ़ाइल का चयन करें जिसे आप obfuscate करना चाहते हैं.
चयनित exe फ़ाइल सूची में जोड़ा जाता है। यदि आप एकाधिक फ़ाइलों को obfuscate करना चाहते हैं, तो उन्हें जोड़ने के लिए दूसरी पंक्ति के बाद "..." बटन पर क्लिक करें।
एक बार जब आप उस exe का चयन कर लेते हैं जिसे आप obfuscate करना चाहते हैं, तो उपकरण पट्टी से प्रोजेक्ट बनाएँ बटन क्लिक करें.
यदि प्रोजेक्ट में कोई परिवर्तन होते हैं, तो प्रोजेक्ट सहेजने वाला पुष्टिकरण संवाद प्रदर्शित होता है, इसलिए सहेजने के लिए "हाँ" क्लिक करें.
परियोजना को "कहा जाता है। xml" फ़ाइल. obfuscated exe फ़ाइल भी एक ही स्थान पर सहेजी जाएगी, इसलिए .xml फ़ाइल को किसी भी फ़ोल्डर में सहेजें।
निर्माण शुरू हो जाएगा और तब तक प्रतीक्षा करेगा जब तक कि यह पूरा नहीं हो जाता। ध्यान दें कि प्रोग्राम जितना बड़ा होगा, इसे बनाने में उतना ही अधिक समय लगेगा। यदि यह दाईं ओर के आंकड़े की तरह दिखता है, तो निर्माण पूरा हो गया है।
संदेश फ़ील्ड सरल परिणाम प्रदर्शित करता है, जैसे बिल्ड की प्रगति और यह कैसे obfuscated था।
यदि आप बाईं ओर ट्री से "परिणाम" का चयन करते हैं, तो आप वर्ग और विधि नाम कैसे बदल गए हैं, इसका विवरण देख सकते हैं।
कक्षा और विधि नामों के नीचे, एक Dotfuscator आइकन और "ए" या "बी" जैसे एक नाम है, जो obfuscated नाम है। वर्ग नाम या विधि नाम को इस तरह के अर्थहीन नाम में बदलकर, आप स्रोत कोड की सामग्री को पढ़ने में मुश्किल बना सकते हैं, भले ही इसे अलग किया गया हो।
Obfuscated exe फ़ाइलें सहेजें प्रोजेक्ट में सहेजी गई .xml फ़ाइलों के फ़ोल्डर में बनाई जाती हैं, जिसे "Dotfuscated" कहा जाता है, और इसमें बनाए जाते हैं। exe फ़ाइल के अलावा, एक "मानचित्र .xml" फ़ाइल बनाई गई है, लेकिन यह obfuscation का परिणाम है और इसका उपयोग नहीं किया जाना चाहिए।
Obfuscated exes चलाया जा सकता है और के रूप में इस्तेमाल किया जा सकता है-है. हालांकि, ऐसे मामले हैं जहां इसे अज्ञात त्रुटि के कारण शुरू नहीं किया जा सकता है जैसा कि दाईं ओर के आंकड़े में दिखाया गया है।
इस बार, मैंने डब्ल्यूपीएफ में एक एप्लिकेशन लिखा है, लेकिन क्योंकि प्रदर्शित करने के लिए पहली विंडो की एक्सएएमएल फ़ाइल को स्ट्रिंग के रूप में निर्दिष्ट किया गया है, इसलिए ओबफ्यूजेशन के कारण नाम बदलने से संदर्भ खो जाएगा, जिसके परिणामस्वरूप त्रुटि होगी।
Windows प्रपत्र अनुप्रयोग वर्ग से सीधे संदर्भित करते हैं, ताकि वे त्रुटियों के बिना चल सकें, भले ही वे obfuscated हैं। हालाँकि, यदि आप नाम से एक वर्ग का नाम, एक एनम प्रकार, आदि निर्दिष्ट करते हैं, तो आपको सावधान रहने की आवश्यकता है क्योंकि एक ही त्रुटि होने की संभावना है।
यदि आप किसी वर्ग या किसी चीज़ को रोकना नहीं चाहते हैं, तो Dotfuscator के बाईं ओर ट्री से नाम बदलें का चयन करें और मध्य टैब से बहिष्कृत करें का चयन करें.
प्रत्येक नाम स्थान, वर्ग का नाम, आदि दाईं ओर सूची में प्रदर्शित किया जाएगा, इसलिए उन वस्तुओं की जांच करें जिन्हें आप रोकना नहीं चाहते हैं।
यहां, मैं पहले प्रदर्शित होने के लिए विंडो का कक्षा नाम बदलना नहीं चाहता हूं, इसलिए मैं "मेनविंडो" की जांच करता हूं।
जब आप बिल्ड करते हैं, तो आप देख सकते हैं कि MainWindows में वर्ग नाम के अंतर्गत कोई परिवर्तित नाम नहीं है। (ऐप क्लास को "ए" में परिवर्तित कर दिया गया है)
जब आप obfuscated exe फ़ाइल चलाते हैं, तो आप देख सकते हैं कि विंडो ठीक से प्रदर्शित होता है।
यदि आप obfuscated exe फ़ाइल को अलग करते हैं, तो आप देख सकते हैं कि वर्ग का नाम और विधि का नाम "a" या "b" ठीक से बदल दिया गया है.
लेकिन एक तरफ के रूप में। NET Framework लायब्रेरीज़ जैसे वर्ग नाम नाम नाम बदलने के अधीन नहीं हैं क्योंकि वे असेंबली हैं जो पहले से ही Windows और अन्य जगहों पर स्थापित हैं।
इस बार, मैं डिफ़ॉल्ट परियोजना के रूप में यह बनाया गया है obfuscated है, तो मुझे लगता है कि वहाँ एक छवि है कि यह इतना obfuscated नहीं है, लेकिन मुझे लगता है कि obfuscation का प्रभाव स्पष्ट हो जाता है क्योंकि वर्गों आदि की संख्या बढ़ जाती है के रूप में परियोजना बढ़ जाती है.
इसके अलावा, हालांकि हमने इस बार मुफ्त संस्करण में प्रक्रिया को शामिल किया है, भुगतान किया गया संस्करण अधिक जटिल अस्पष्टता के लिए अनुमति देता है और स्वयं को अलग करने से भी रोकता है। हालांकि, obfuscation में विभिन्न प्रतिकूल प्रभाव और होने की क्षमता होती है, इसलिए जब obfuscating किया जाता है, तो यह विचार करते समय इसे बनाना आवश्यक है कि क्या यह डिजाइन की शुरुआत से ठीक से काम करेगा।