आपने एक चिप निर्दिष्ट नहीं की है, निम्नलिखित ज्यादातर 8 बिट atmega उपकरणों के लिए तैयार है, लेकिन यह सामान्य जानकारी है। अधिक विशिष्ट जानकारी के लिए विशिष्ट चिप की डेटशीट के लिए 'मेमोरी प्रोग्रामिंग' अनुभाग पढ़ें!
कहा जा रहा है, और जैसा कि आपने कहा, सभी AVR उपकरणों में LB1 और LB2 नामक दो लॉक बिट्स होते हैं। इनका प्रोग्रामिंग करना (0, निम्न) नीचे दी गई तालिका के अनुसार फ्लैश और ईईपीआरओएम यादों को लिखी गई सामग्री में सुरक्षा को जोड़ देगा। सुरक्षा का स्तर तीन मोड में विभाजित है, जहां मोड 1 कोई सुरक्षा प्रदान नहीं करता है और मोड 3 अधिकतम सुरक्षा प्रदान करता है। लॉक बिट्स को रीप्रोग्राम करके बस सुरक्षा के उच्च मोड में जाना संभव है।
AVR "उच्च" बिट्स को "निम्न" में बदलने की अनुमति देता है, लेकिन दूसरे तरीके से नहीं। "कम" लॉक बिट को "उच्च" में बदलना संभव नहीं है, इस प्रकार सुरक्षा के स्तर को कम करना संभव नहीं है। लॉक बिट्स को साफ करने के लिए, एक पूर्ण चिप इरेज़ की आवश्यकता होती है, जो फ्लैश मेमोरी को मिटा देता है।
ये 2 लॉक बिट्स अकेले (LB1 और LB2) जब कम 99.9% लोगों को आपके फर्मवेयर चोरी करने से रोकेंगे! शायद 99.9% से अधिक। इंजीनियर को अपने कोड को उलट देना लगभग हमेशा आसान होगा।
तो कस्टम बूटलोडर द्वारा उपयोगकर्ता को फर्मवेयर अपडेट करने और फ्लैश को एक ही समय में पढ़ने से बचाने का कोई तरीका नहीं है?
अपने ज्ञान का सबसे अच्छा करने के लिए (मुझे गलत किया जा सकता है लेकिन मुझे लगता है कि मेरे पास इस मुद्दे को पहले जारी किया गया होगा), उन उपकरणों पर जो बूटलोडर सुरक्षा फ़्यूज़ (BLB12 और BLB11) हैं, आप अपने कस्टम बूटलोडर अनुभाग को लॉक कर सकते हैं , SPI को निष्क्रिय कर सकते हैं और हो सकते हैं 97-98% लोगों से सुरक्षित।
हालाँकि जब कोई भी लॉक बिट्स प्रोग्राम नहीं किया जाता है, तो मेमोरी लॉक की कोई भी सुविधा सक्षम नहीं होती है !!! ISP अक्षम केवल 70% लोगों को ब्लॉक करने के लिए पर्याप्त है।
कुछ अतिरिक्त जानकारी के लिए, लॉक बिट्स और फ़्यूज़ सामान्य फ्लैश या EEPROM अंतरिक्ष में स्थित नहीं हैं, और न ही वे सॉफ़्टवेयर से पहुँच योग्य हैं, सिवाय सेल्फ-प्रोग्रामिंग फ़ीचर वाले उपकरणों में बूट लोडर से संबंधित लॉक बिट्स के लिए। इस ऐप नोट में तालिका 2 आपको यह पहचानने में मदद करेगी कि आप अपने विशेष उपकरण के लिए क्या कर सकते हैं!
Atmel के AVR लाइन उच्च सुरक्षा उपकरण नहीं हैं (जब तक कि स्पष्ट रूप से नोट नहीं किया गया हो!) और जैसे वे बिल्कुल किसी भी कोड सुरक्षा गारंटी के साथ नहीं आते हैं, और न ही उन्हें होना चाहिए! सभी गैर-सुरक्षित उपकरणों की तरह (और दुख की बात है कि कुछ सुरक्षित लोगों को भी), वे आम हमलों से ग्रस्त हैं!
संपादित करें
मैं एचवी प्रोग्रामिंग इंटरफेस हेडर ऑनबोर्ड लगाऊंगा। लेकिन क्या कोई HV प्रोग्रामर का उपयोग फ़्लैश के लिए कर सकता है? मुझे पता है कि एचवी प्रोग्रामर चिप को मिटा सकता है, यहां तक कि आईएसपी / जेएटीएजी भी अक्षम हैं।
मुझे नहीं लगता कि आपको एचवी प्रोग्रामर को अपने बोर्ड डिज़ाइन में तब तक शामिल करना चाहिए जब तक कि पूरी तरह से ज़रूरत न हो और आपको पता हो कि यह किसी भी समस्या का कारण नहीं होगा। एचवी प्रोग्रामर (12 वोल्ट सिग्नल), केवल प्रोग्राम लॉक (त्रुटि बंद, ज्यादातर) चिप्स को सुरक्षा उपाय के रूप में उपलब्ध हैं। सिद्धांत रूप में, यह केवल डिवाइस को कुछ भी नहीं पढ़ने के लिए प्रोग्राम करने के लिए है। और मैंने कभी किसी ऐसे कारनामे के बारे में नहीं सुना जो पढ़ने की अनुमति देता हो।
बूटलोडर को अपग्रेड करने के लिए (कभी-कभार) मैं एचवी प्रोग्रामिंग इंटरफेस हेडर ऑनबोर्ड लगाऊंगा। लेकिन क्या कोई HV प्रोग्रामर का उपयोग फ़्लैश के लिए कर सकता है? मुझे पता है कि एचवी प्रोग्रामर चिप को मिटा सकता है, यहां तक कि आईएसपी / जेएटीएजी भी अक्षम हैं।
मुझे लगता है कि बूटलोडर के माध्यम से लॉक किए गए फ्लैश को अपडेट करने का एक तरीका हो सकता है, (आंतरिक लेखन ध्वज और / या आईएसआर के साथ कुछ करना होगा ???) लेकिन मुझे अपने नोटों को खोजना होगा और शायद इसका परीक्षण करना होगा। मैं ~ 20 घंटे तक ऐसा नहीं कर पाऊंगा; इसलिए मैं अत्यधिक सलाह देता हूं कि आप केवल एक नए प्रश्न पर ध्यान दें और आपके द्वारा उल्लेखित प्रोसेसर के लिए। यह बहुत अच्छा सवाल है !