2008-09-20 16 views
14

थोड़ी देर के लिए हम CodeVeil नामक एक उपकरण का उपयोग कर रहे थे। मैं बस सोच रहा हूं कि वहां बेहतर विकल्प हैं या नहीं।रिवर्स इंजीनियरिंग से अपने .NET कोड को सुरक्षित रखने के लिए आप क्या उपयोग करते हैं?

संपादित करें: इससे पहले कि अधिक लोगों को प्रश्न गलत समझा जाए, मुझे पता है कि एक निर्धारित क्रैकर शायद इन उपकरणों में से किसी को भी हराने में सक्षम होगा। हालांकि मैं उनके बारे में बहुत चिंतित नहीं हूं। ये उपकरण सिर्फ "आकस्मिक क्रैकर" को रोकने के लिए हैं, और लोगों को हमारी कंपनी के आईपी चोरी करने से रोकने के लिए हैं। यदि वे एक सभ्य उपकरण को पाने के लिए पर्याप्त अच्छे हैं, तो शायद वे हमारे क्रैपी कोड को चोरी करने में रूचि नहीं रखते हैं :-P

उत्तर

5

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

-2

मैंने सुना है कि Obfusticator अच्छा है; इसका उपयोग नेट परावर्तक पर किया जाता है।

3

ईमानदारी से, आपके द्वारा उल्लेखित टूल के साथ कुछ अपवित्रता के अलावा आप बहुत कुछ नहीं कर सकते हैं। .NET स्क्रिप्टिंग भाषाओं से ऊपर एक कदम है, सिवाय इसके कि स्क्रिप्ट कमांड बाइनरी हैं और उन्हें आईएल कहा जाता है। यह सरलीकरण से थोड़ा सा है, लेकिन यह वास्तविकता से बहुत दूर नहीं है। प्रतिबिंब का उपयोग करके लिखे गए किसी भी अच्छे कार्यक्रम का उपयोग इंजीनियर एनईटी अनुप्रयोगों के विपरीत करने के लिए किया जा सकता है, या यदि आपके पास पर्याप्त ज्ञान है, तो एक अच्छा हेक्स संपादक।

4

मैं इन उपकरणों के मूल्य से असुविधाजनक हूं। तकनीकी समाधानों में से कोई भी लाइसेंस, ट्रेडमार्क, पेटेंट, कॉपीराइट आदि जैसे कानूनी गार्डों से बेहतर रिवर्स इंजीनियरिंग को रोकता है ...

.NET वास्तव में बड़ा पारदर्शी स्रोत आंदोलन है। यह बहुत बेहतर है कि इसके बजाय आप अपने आईपी जैसे लाइसेंसिंग और कॉपीराइट के उपयोग की शर्तों को तैयार करते हैं।

+0

और जब आप किसी ऐसे देश में अपना सॉफ़्टवेयर निर्यात करते हैं जो आपके देश के समान नियमों से नहीं चलता है? (चीन एफएक्स)। कृपया उन व्यंजनों को न बताएं जो स्पष्ट रूप से गैर-सत्य हैं। –

+0

कैस्पर, मुद्दा यह है कि इनमें से कोई भी उपकरण आपके सॉफ़्टवेयर को रिवर्स-इंजीनियर/क्रैक करने के लिए निर्धारित लोक से सुरक्षित रखेगा। सहमत हैं कि ऐसे कई देश हैं जो किसी भी आईपी कानून को लागू/सम्मान नहीं करते हैं - लेकिन जैसा कि मैंने बताया है, ये उपकरण आपकी सुरक्षा को किसी भी बेहतर तरीके से सुरक्षित नहीं करेंगे।सबसे अच्छा वे आकस्मिक निरीक्षण रोकते हैं। – stephbu

+0

फिर से truisms के साथ: एक ठीक से obfuscated विधानसभा गैर-obfuscated असेंबली की तुलना में अभियंता रिवर्स इंजीनियर के लिए कठिन परिमाण का आदेश होगा। यह एक तथ्य है जिसे आप स्वयं जांच सकते हैं। यदि आपको लगता है कि आपको कुछ अंतर्दृष्टि है कि यह मामला क्यों नहीं है, तो कृपया व्यंजनों को बताने के बजाय तर्क की आपूर्ति करें। हालांकि मैं आपकी भावना साझा करता हूं, कि हमें वास्तव में हमारे समय और धन को अपवित्रता से बर्बाद नहीं करना चाहिए, लेकिन इससे इस तथ्य को नहीं बदला जाता है कि ऐसा करने से इंजन को रिवर्स करना मुश्किल हो जाएगा। –

2

डॉटफुस्केशन समेत obfuscation के लिए कई लोकप्रिय उपकरण हैं, जिनमें "प्रकाश" संस्करण है जो विजुअल स्टूडियो 2005 और 2008 के साथ जहाजों का है। उनके पास एक प्रो संस्करण है जो केवल परिवर्तनीय और फ़ंक्शन नाम नामकरण से अधिक करता है। हालांकि, कोड अभी भी देखने योग्य है, यह सॉफ्टवेयर के तर्क प्रवाह को पढ़ने और गड़बड़ाना कठिन बनाने के लिए थोड़ा सा scrambled है।

एक और तकनीक अन्य प्रोग्रामों का उपयोग करना है जो प्रोग्राम को एन्क्रिप्ट करेंगे, और इसे रनटाइम पर डिक्रिप्ट करेंगे। हालांकि, यह एक सही समाधान नहीं है। असल में, कोई सही समाधान नहीं है जिसके बारे में मुझे पता है कि एक निर्धारित इंजीनियर को रिवर्स इंजीनियरिंग सॉफ़्टवेयर से रोक देगा, अगर पर्याप्त समय और प्रयास लागू होता है।

यह वास्तव में नीचे आता है जो सुरक्षा के स्तर को निर्धारित कर रहा है जो आरामदायक हैकर को विसर्जित करने में काफी मुश्किल बना देगा, और इसे जितना संभव हो सके रिवर्स इंजीनियर के लिए महंगा बना देगा, इसलिए कम से कम रिवर्स इंजीनियरिंग लागत पर आती है किसी भी समय या धन में, या आदर्श, दोनों में। रिवर्स इंजीनियरिंग लागत जितनी महंगा होगी, उतनी ही कम संख्या में व्यक्ति जो प्रयास में शामिल होने के इच्छुक होंगे। और यह obfuscation के लिए एक बड़ा मुद्दा है।

कुछ सोचते हैं कि सी ++ कंपाइलर जैसे संकलक का उपयोग करने से देशी कोड में संकलित किया जाता है, इस तरह के रिवर्स इंजीनियरिंग को रोक देगा, लेकिन ऐसा नहीं होता है। एक अच्छा डिस्सेबलर शुद्ध बाइनरी एक्जिक्यूटिव को रिवर्स इंजीनियर होने की अनुमति देगा, इसलिए, एक आदर्श समाधान मौजूद नहीं है। यदि कंप्यूटर इसे पढ़ सकता है और इसे निष्पादित कर सकता है, तो कम्प्यूटर का उपयोग करने वाली मेमोरी स्कैन और ट्रैक की जा सकती है, एन्क्रिप्ट करने, obfuscate, या किसी निर्धारित इंजीनियर के हाथों से अपना कोड रखने के अन्य सभी तरीकों को छोड़कर।

4

आउटपुट असेंबली में आपके .NET अनुप्रयोग परिणामों को संकलित करना जिसमें मेटा जानकारी का एक बड़ा सौदा शामिल है। यह जानकारी मूल कोड के बहुत करीब कुछ पुनर्निर्माण करना बहुत आसान बनाता है। .NET Reflector नामक एक उत्कृष्ट निःशुल्क टूल का उपयोग ठीक से करने के लिए किया जा सकता है और यह जांचने का एक लोकप्रिय तरीका है कि बेस क्लास लाइब्रेरी कैसे काम करती है। विधानसभा सामग्री के पुनर्निर्मित C#/VB.NET संस्करणों को देखने के लिए उस टूल को डाउनलोड और उपयोग करें।

यदि आप एक वाणिज्यिक संगठन हैं तो आप नहीं चाहते हैं कि लोगों को कोड बनाने के लिए आपके महंगे को देखना आसान हो। सामग्री का एक तरीका इस तरह से छेड़छाड़ करने के लिए Obfuscation का उपयोग करने के लिए एक लोकप्रिय तरीका है कि यह कैसे चलता है इसे बदलता नहीं है लेकिन इसे समझना मुश्किल हो जाता है। Obfuscation चर और चर विधियों जैसे तकनीकों का उपयोग करता है। विधियों 'ए 1', 'ए 2', 'ए 3' के उद्देश्य से काम करना मूल 'GetName', 'UpdateInterestRate' और 'SetNewPassword' से कहीं अधिक कठिन है।

इसलिए obfuscation का उपयोग करना लोगों को यह समझना बहुत कठिन बनाता है कि आप क्या कर रहे हैं और एल्गोरिदम इसका उपयोग करता है। हालांकि यह असंभव नहीं बनाता है। इसी तरह सी ++ कोड को अभी भी एक असेंबलर विशेषज्ञ द्वारा समझा जा सकता है जो आपकी बाइनरी के माध्यम से काम करने में समय बिताने के इच्छुक है, एक एमएसआईएल विशेषज्ञ अंततः आपके obfuscated कोड का काम कर सकता है। लेकिन यह उस बिंदु पर बाधा को बढ़ाता है जहां कुछ कोशिश करने से परेशान होंगे।

2

पुरानी पोस्ट को पुनर्जीवित करने के लिए खेद है, लेकिन मुझे लगता है कि एज़िरिज का .NET रिएक्टर शानदार ढंग से काम करता है।

असल में मैं इसे अपने सभी .NET ऐप्स के लिए उपयोग करता हूं और स्पष्ट रूप से वहां कोई मौजूदा उपकरण नहीं है जो .NET रिएक्टर से संरक्षित प्रोग्राम को डीकंपाइल कर सकता है। अधिक जानकारी जानकारी पृष्ठ, http://www.eziriz.com/dotnet_reactor.htm पर मिल सकती है। परीक्षण संस्करण और नेट परावर्तक के साथ इसका परीक्षण करें और आप स्वयं के लिए देख सकते हैं।

+0

कीमत निश्चित रूप से कोडवील – ilitirit

+0

की तुलना में अधिक आकर्षक लगती है, हर प्रतिशत के लायक हाँ, और मूल लाइसेंसिंग प्रबंधक के साथ आता है :) – GONeale

-1

दूसरा Crypto Obfuscator है - यह कुछ अन्य लोगों की तुलना में अधिक किफायती है, और इसके कारणों और खतरनाक हैकर्स को बाधित करने के लिए विभिन्न obfuscation और सुरक्षा विधियों है।

1

अस्वीकरण: मैं SmartAssembly के निर्माताओं रेडगेट के लिए काम नहीं करता हूं। मैं सिर्फ एक बहुत खुश ग्राहक हूं जिसने एक अच्छा, किफायती समाधान पाया।

पसंद बहुत आसान है, SmartAssembly चुनें! बाजार में अन्य obfuscators के साथ अपना समय या पैसा बर्बाद मत करो। प्रतिस्पर्धी उत्पादों का मूल्यांकन करने वाले गैर-बिल योग्य घंटों के मामले में मैंने अधिक पैसा खर्च किया। उन सभी को घातक त्रुटियां थीं और डीबग करने के लिए असंभव के बगल में थे। SmartAssembly उत्कृष्ट समर्थन के साथ उपयोग में आसान, अच्छी तरह से प्रलेखित, पॉलिश अनुप्रयोग है। अपने मंच पर एक प्रश्न पोस्ट करें और वास्तविक डेवलपर्स द्वारा उचित रूप से उत्तर की उम्मीद करें।

SmartAssembly एक obsfuscator से अधिक है। इसमें अंतर्निहित, अत्यधिक अनुकूलन योग्य क्रैश रिपोर्ट जेनरेटर सहित कई सुविधाएं हैं जो आपके ग्राहक स्वचालित रूप से आपको ईमेल कर सकते हैं। आप इन रिपोर्टों को या तो अपने सर्वर पर या लाल-गेट्स सर्वर पर देख सकते हैं। मैं आपको यह नहीं बता सकता कि यह कितना उपयोगी है जब आप बीटा परीक्षण कर रहे हैं या ग्राहकों को उत्पाद जारी कर रहे हैं। यह डीबगर फ़ाइलों को भी उत्पन्न करता है ताकि आप किसी भी पोस्ट-रिलीज समस्याओं को डीबग कर सकें जो आप अपने अस्पष्ट उत्पाद के साथ सामना कर सकते हैं।

यदि आप एक वाणिज्यिक आवेदन दे रहे हैं, तो यह एक सभ्य obsfuscator पर पैसे खर्च करने के लिए समझ में आता है। यहां एक बुरी पसंद आपके बौद्धिक संपदा से समझौता कर सकती है या आपको खराब डबगिंग के दिनों तक खराब कर सकती है। SmartAssembly की लागत के मुकाबले यह लागत क्या होगी?

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