2008-09-19 15 views

उत्तर

5

योग्य कुछ बातें आप पर विचार करना चाहते हो सकता है:

चेक राशि DLL। cryptographic hash function का उपयोग करके, आप इसे लाइसेंस फ़ाइल या डीएलएल के अंदर स्टोर कर सकते हैं। यह निर्धारित करने के लिए एक सत्यापन विधि प्रदान करता है कि मेरी मूल DLL फ़ाइल को अनचाहे किया गया है, या यदि यह इस DLL के लिए लाइसेंस फ़ाइल है। कुछ सरल बाइट स्वैपिंग तकनीकें आपके हैश फ़ंक्शन को पीटा ट्रैक से जल्दी ले सकती हैं (और इस प्रकार पुन: उत्पन्न करने में आसान नहीं है)।

एक हैश के रूप में हैश को स्टोर न करें, इसे विभिन्न स्थानों पर हस्ताक्षरित शॉर्ट्स में विभाजित करें।

लैरी ने कहा, एक मैक पता काफी आम है। The Code Project पर इसे प्राप्त करने के कई उदाहरण हैं, लेकिन ध्यान रखें कि इन दिनों नकली आसान है।

मेरा सुझाव, लाइसेंस उत्पादन के लिए private/public कुंजी का उपयोग करना चाहिए।

संक्षेप में, हमले के तरीके द्विआधारी (आपकी डीएलएल फ़ाइल के निर्देशों को संशोधित करें) होंगे, इसलिए इसके खिलाफ सुरक्षा करें, या मुख्य पीढ़ी ताकि प्रत्येक लाइसेंस उपयोगकर्ता, मशीन और यहां तक ​​कि इंस्टॉल विशिष्ट भी हो।

4

आप DllMain() के अंदर लाइसेंस की जांच कर सकते हैं और यदि यह नहीं मिला है तो मर जाते हैं।

+0

डेलमेन में आपको क्या करने की अनुमति है, इस पर पढ़ो, यह बहुत कुछ नहीं है! – MSalters

1

यह भी इस बात पर निर्भर करता है कि आपका लाइसेंस एल्गोरिदम कैसे काम करता है। मेरा सुझाव है कि आप कुछ जानकारी के आधार पर अपने उपयोगकर्ताओं को पास की जा सकने वाली किसी भी प्रकार की सार्वजनिक/निजी कुंजी उत्पन्न करने के लिए Diffie–Hellman key exchange (या यहां तक ​​कि RSA) जैसे कुछ का उपयोग करने का सुझाव दें।

(आवेदन के आधार पर, मुझे एक ऐसे मामले के बारे में पता है जहां मैंने कंपनी के लिए अनुबंध पर लाइसेंस कोड लिखा था, उन्होंने MAC address का उपयोग किया था, और कुछ अन्य डेटा, इसे धोया, और हैश को एन्क्रिप्ट किया, जिससे उन्हें "कुंजी" मान ", अगर पंजीकरण संख्या सही थी)। यह सुनिश्चित करता है कि कुंजी फ़ाइल को किसी अन्य मशीन पर स्थानांतरित नहीं किया जा सकता है, (या दिया गया), इस प्रकार सॉफ्टवेयर को 'चोरी' कर सकता है।

आप विस्तार में जाकर और हैकर्स से बचने के लिए चाहते हैं, कि एक 'पूरे nother विषय .... है

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