2012-08-01 21 views
9

मैंने एक ऐसा प्रोग्राम बनाया है जिसे मुझे ग्राहकों को बेचने से पहले लाइसेंस देने की आवश्यकता है। चूंकि मुझे यकीन नहीं है कि यह मुझे कम से कम वाणिज्यिक लाइसेंसिंग सॉफ्टवेयर की लागत प्राप्त करेगा, मैं एक खरीदना नहीं चाहूंगा।नेट रीयलटाइम सॉफ्टवेयर लाइसेंसिंग

तो मैं कैसे निम्नलिखित तर्क के साथ लाइसेंसिंग सुविधा को लागू करने के लिए पर सलाह के लिए देख रहा हूँ:

  • सभी लाइसेंस कुंजियों सर्वर साइड पर मान्य किए जाते हैं हर बार आवेदन शुरू होता है (कोई लाइसेंस की जानकारी लाइसेंस को छोड़कर userside में संग्रहीत किया जाता है संख्या)।
  • एक ही समय में एक लाइसेंस कुंजी के साथ चलने वाला केवल एक ही एप्लिकेशन है।

मुझे नहीं पता कि मेरे प्रोग्राम को सरल अपघटन/डिस्सेम्बलिंग से कैसे सुरक्षित किया जाए और लाइसेंस की जांच करने के लिए केवल कॉल को हटाया जाए? या अपना सर्वर बनाना जो प्रत्येक लाइसेंस पर एक प्रतिक्रिया सही करेगा? सामान्य रूप से ऐसी सुरक्षा कैसे बनाई जाती है?

मैंने मुफ्त एसडीके या ऐसा कुछ खोजा है, लेकिन कुछ भी नहीं मिला। मैं आपकी मदद के लिए बहुत आभारी रहूंगा!

पीएस: मैं सिस्टम को "अविनाशी" बनाने की इच्छा नहीं रखता हूं, लेकिन मैं इस कार्यक्रम की एक प्रति के लिए $ 5.10 का भुगतान करने से अधिक क्रैक करने के लिए अधिक महंगा है।

पीपीएस: मेरी खराब अंग्रेजी के लिए खेद है।

+2

क्या आपने माना है कि इसका मतलब है कि आपके उपयोगकर्ता केवल एक इंटरनेट कनेक्शन होने पर ही एप्लिकेशन शुरू कर सकते हैं? यह बहुत से लैपटॉप/मोबाइल उपयोगकर्ताओं, और खराब कनेक्टिविटी वाले किसी भी व्यक्ति से इंकार कर सकता है। इसके अलावा, आपने अभी तक क्या प्रयास किया है? आपका प्रश्न शोध की कमी दिखाता है, और जो अक्सर बंद या अनदेखा प्रश्नों की ओर जाता है। –

+3

http://msdn.microsoft.com/en-us/magazine/cc164108.aspx बताता है कि असेंबली थर्मेट असेंबली छेड़छाड़ का कितना दृढ़ता से नामकरण करता है। वेब सेवा के लिए आपको एक सर्वर प्रमाणपत्र का उपयोग करने पर विचार करना चाहिए जिसे प्रतिक्रिया स्वीकार करने से पहले ग्राहक द्वारा सत्यापित किया जाना चाहिए। लेकिन, यह सभी ऑफ़लाइन उपयोगकर्ताओं को इसका उपयोग करने से रोक देगा। – Ramesh

+0

क्षमा करें, सोचा, कि सवाल स्पष्ट था। अब तक मैंने लाइसेंस की जांच के लिए एक webservice और क्लाइंट लिखा है - यह ठीक काम करता है, लेकिन इस तरह की रक्षा को बंद करना वास्तव में आसान है ... इसलिए आईव ने पूछा कि क्या कोई इस से रक्षा करने के बारे में सलाह दे सकता है। जैसे ही मेरा ऐप ऑनलाइन गेम ऑटोमैटिकेशन है - मेरे उपयोगकर्ताओं के पास एक अच्छा इंटरनेट कनेक्शन होना चाहिए, इसलिए यह रीयलटाइम चेक के साथ कोई समस्या नहीं होगी। Obfuscation ठीक है, लेकिन obfuscation के बाद भी मैं डीबगर में घटना पकड़ सकते हैं और उस पर कूद ... – CodeDemen

उत्तर

2

मुझे नहीं पता कि मेरे प्रोग्राम को सरल से डिकंपलिंग/डिस्सेम्बलिंग से कैसे सुरक्षित किया जाए और लाइसेंस जांचने के लिए केवल कॉल को हटाया जाए? या अपना सर्वर बनाना जो प्रत्येक लाइसेंस पर प्रतिक्रिया देगा? ऐसी सुरक्षा सामान्य रूप से कैसे बनाई जाती है?

आप लाइसेंस कहानियो को भ्रमित कर रहे हैं। उपर्युक्त को रोकने के लिए, आपको एक obfuscator का उपयोग कर अपने exes और dlls obfuscate करने की आवश्यकता होगी।

चूंकि मुझे यकीन नहीं है कि यह मुझे कम से कम वाणिज्यिक लाइसेंसिंग सॉफ्टवेयर की लागत प्राप्त करेगा, मैं एक खरीदना नहीं चाहूंगा।

आईएमएचओ आप स्क्रैच से लाइसेंसिंग योजना विकसित करने के बजाय अपने वास्तविक सॉफ़्टवेयर पर ध्यान केंद्रित करने और समय बिताने से बेहतर हैं (पहिया को फिर से आविष्कार करते हुए)।

यदि आप सशुल्क समाधान खोलते हैं, तो CryptoLicensing (लाइसेंसिंग और प्रति-सुरक्षा के लिए) और Crypto Obfuscator (obfuscation और कोड-सुरक्षा के लिए) पर एक नज़र डालें।

अस्वीकरण: मैं उपरोक्त उत्पादों के डेवलपर लॉजिक एनपी सॉफ्टवेयर के लिए काम करता हूं।

+0

आईएमओ, Obfuscation मदद नहीं करेगा क्योंकि लोगों ने असेंबली कोड को देखकर अतीत में पूर्वजों को पैच किया है। Obfuscation तर्क – Ramesh

+0

तर्क को समझने के लिए थोड़ा कठिन बना रहा है, मैं एक बहुत ही समान पोस्ट लिख रहा था लेकिन आप तेजी से थे। इसके साथ सहमत हैं और किसी को भी विशेष रूप से सुरक्षा डोमेन में पहिया का पुन: आविष्कार नहीं करना चाहिए। –

+0

हां, कुछ भी 100% क्रैक-सबूत नहीं है, लेकिन कुछ सुरक्षा बेहतर है तो कोई नहीं! – logicnp

1

(क्षमा करें अन्य लोगों की पोस्ट ??? पर कोई टिप्पणी नहीं कर सकते हैं)

यह क्या आपके आवेदन कर रहा है पर निर्भर करता है।

मुझे वर्तमान में आपके जैसी ही समस्या का सामना करना पड़ रहा है। मैं सिस्टम में लॉग के लिए जा रहा हूं, बस डेटाबेस में क्या लेता हूं और तुलना करता हूं। यदि मौजूद नहीं है तो ऐप लॉन्च न करें। ऐसा नहीं है कि मुझे और चाहिए, एप्लिकेशन मेरे डेटाबेस पर निर्भर करता है और इसके बिना यह बेकार है।

फिर वे कुछ घंटों खर्च कर सकते हैं यह पता लगाने के लिए कि मेरा डेटाबेस कैसा दिखता है या व्यावहारिक रूप से मेरे पूरे उत्पाद को फिर से लिखने के आधार पर क्या दिखता है। मैं ऐप सुरक्षा में थोड़ा खर्च करने जा रहा हूं। एकमात्र सुरक्षा जो मैं चाहता हूं वह मेरे सर्वर का डेटा नहीं दिखाना है।

+1

यहां समाधान बहुत आसान है - आपको लिखना होगा प्रमाणीकरण समर्थन के साथ एक वेब सेवा, लेकिन सीधे अपने डेटाबेस को प्रश्न नहीं भेजती है। फिर लाइसेंस ऐप (या लॉगिन-पासवर्ड-जैसा आप चाहें) के साथ webs app से webservice पर कॉल करें और g और इससे प्रतिक्रियाएं - आपके लिए लिखने और गारंटी देने के लिए लगभग 2 वर्ग अधिक हैं, आपको कोई भी डेटाबेस डेटा तक पहुंच प्राप्त नहीं करेगा। – CodeDemen

+0

@CodeDemen क्या आप मुझे इस बारे में एक अच्छा ट्यूटोरियल/स्पष्टीकरण के लिए इंगित करेंगे? – AmazingDreams

+1

कोई समस्या नहीं! [डब्ल्यूएस ऑथ उदाहरण] (http://www.codeproject.com/Articles/4398/ प्रमाणीकरण-for- वेब- सेवा-using- एसओएपी-हेडर) और [डब्ल्यूएस डीबी कनेक्टिविटी] (http: //www.c-sharpcorner .com/uploadfile/raj1979/डेटाबेस-कनेक्टिविटी-उपयोग-webservice /) – CodeDemen

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