एक विकल्प के रूप में "आंतरिक" अपने DLL में सभी उजागर वर्गों को चिह्नित करने के बजाय "सार्वजनिक", तो अपने DLL में "InternalsVisibleTo" विशेषता का उपयोग स्पष्ट रूप से DLLs (और संभवतः व्यय) नाम के लिए उपयोग करने के लिए अनुमति दी जाती है कि हो सकता है आपके आंतरिक प्रकार इसके लिए सभी प्रतिभागियों को मजबूत नाम की आवश्यकता हो सकती है, लेकिन वैसे भी ऐसा करना एक अच्छी बात है।
आखिरकार, हैकर मशीन पर आपका कोड निष्पादित होने पर निर्धारित कोडर को आपके कोड तक पहुंचने से रोकने का कोई पूर्ण तरीका नहीं है। मशीन द्वारा निष्पादित किए जा सकने वाले सभी कोड को पर्याप्त रूप से उन्नत टूल और अनुभव के साथ किसी अन्य चीज़ में अलग किया जा सकता है और फिर से इकट्ठा किया जा सकता है।
कोड सुरक्षा तक पहुंचने का सबसे अच्छा तरीका सवाल पूछना है "लाइसेंस या प्राधिकरण के बिना किसी को इस कोड का उपयोग करने के लिए हम इसे कितना मुश्किल बनाना चाहते हैं, और हम इसे प्राप्त करने के लिए कितना समय/पैसा खर्च करना चाहते हैं ? " यदि आप कुछ भी नहीं करते हैं, तो किसी अन्य परियोजना में किसी के लिए आपके डीएलएल का उपयोग करना बहुत आसान है। यदि आप कुछ सरल चीजें करते हैं, तो आप किसी अन्य व्यक्ति के लिए अपने डीएलएल का उपयोग करने के लिए असुविधाजनक बना सकते हैं। यदि आप महीनों के प्रयासों का निवेश करते हैं, तो हो सकता है कि आप किसी के लिए अपने कोड का दुरुपयोग करने में बहुत मुश्किल हो सकें, लेकिन आप इसे असंभव नहीं बना सकते।
एक तकनीक जो बिल्कुल कल्पना के करीब है, जैसा कि मैं कल्पना कर सकता हूं: है: अपने कोड को क्लाइंट (या हैकर की) मशीन पर निष्पादित न करें। इसके बजाय एक वेब सेवा चलाएं, और अपना कोड सर्वर पर रखें जहां एक हैकर आपकी प्रक्रिया पर एक डीबगर को आकस्मिक रूप से आग नहीं डाल सकता है या आपके कोड को अलग नहीं कर सकता है। आपकी कोड सुरक्षा तब सर्वर के स्थान पर भौतिक सुरक्षा और सर्वर के बंदरगाहों तक नेटवर्क पहुंच सुरक्षा द्वारा परिभाषित की जाती है। ये हमले वैक्टर हैंकर की मशीन पर निष्पादित कोड के लिए जो भी कर सकते हैं उससे कहीं अधिक परिमाण के लिए परिमाण के कई आदेश हैं।
कुछ सॉफ्टवेयर कंपनियों के लिए, क्लाइंट से क्लाउड तक अपने अनुप्रयोगों का एक हिस्सा ले जाने से बेहतर स्केलेबिलिटी या आसान अपडेट या कम लागत नहीं मिलती है, यह कोड सुरक्षा और चोरी की रोकथाम के बारे में है।
क्या आपका मतलब है कि उन्हें डिकंपलिंग के खिलाफ सुरक्षित रखें या उन्हें आसानी से उपयोग के विरुद्ध सुरक्षित करें? – NotMe
अभी के लिए मैं उपयोग की तलाश में हूं, लेकिन वास्तव में दोनों की तलाश में हूं। तदनुसार सवाल अपडेट किया गया। – Matt