Bir çip belirtmediniz, aşağıdakiler çoğunlukla 8 bitlik atmega cihazlarına yöneliktir, ancak genel bilgilerdir. Daha ayrıntılı bilgi için özel çipin veri sayfası için 'Bellek Programlama' bölümünü okuyun!
Bununla birlikte, söylediğiniz gibi, tüm AVR cihazları LB1 ve LB2 adlı iki Kilit biti içerir. Bunları (0'a, düşük) programlamak, aşağıdaki tabloya göre Flash ve EEPROM belleklerine yazılan içeriğe koruma sağlayacaktır. Koruma seviyesi, mod 1'in koruma sağlamadığı ve mod 3'ün maksimum koruma sağladığı üç moda ayrılmıştır. Sadece Kilit bitlerini yeniden programlayarak daha yüksek bir koruma moduna geçmek mümkündür.
AVR, "yüksek" bitlerin "düşük" olarak değiştirilmesine izin verir, ancak bunun tersi olmaz. "Düşük" bir Kilit bitini "yüksek" olarak değiştirmek mümkün değildir, bu nedenle koruma seviyesini düşürmek mümkün değildir. Kilit bitlerini temizlemek için, Flash belleği silen tam bir Yonga Silme gereklidir.
Bu 2 kilit biti tek başına (LB1 ve LB2) düşük olduğunda insanların% 99,9'unun ürün yazılımınızı çalmasını önler! Muhtemelen% 99,9'dan fazla. Kodunuzu tersine çevirmek neredeyse her zaman daha kolay olurdu.
Bu nedenle, kullanıcının özel önyükleyici ile ürün yazılımını güncellemesine ve aynı zamanda flaşı okumadan korumasına izin vermenin bir yolu yok mu?
Bildiğim kadarıyla (yanılmış olabilirim, ancak daha önce bununla ilgili bir sorunum olurdu,) bootloader koruma sigortalarına (BLB12 ve BLB11) sahip cihazlarda , özel bootloader'ınızı kilitleyebilirsiniz bölümünüzü , SPI'yı devre dışı bırakabilir ve insanların% 97-98'inden korundu.
Ancak hiçbir Kilit biti programlanmadığında, bellek kilidi özelliği etkin değildir !!! ISS devre dışı bırakma, insanların yalnızca% 70'ini engellemek için yeterlidir.
Bazı ek bilgiler için, Kilit bitleri ve Sigortalar normal flaş veya EEPROM alanında bulunmaz ve Otomatik Programlama özelliğine sahip cihazlarda Önyükleme Yükleyicisiyle ilgili Kilit bitleri hariç, yazılımdan erişilemez. Bu uygulama notundaki Tablo 2, cihazınız için neler yapabileceğinizi belirlemenize yardımcı olacaktır!
Atmel'in AVR hattı yüksek güvenlikli cihazlar değildir (açıkça belirtilmedikçe!) Ve bu nedenle kesinlikle herhangi bir kod güvenliği garantisi ile gelmezler, ne de olmalılar! Tüm güvenli olmayan cihazlar (ve ne yazık ki bazı güvenli olanlar gibi) gibi, yaygın saldırılara eğilimlidirler!
Düzenle
YG programlama arayüzü başlığını tekneye koyacağım. Ama birisi flaş OKUMAK için HV programlayıcı kullanabilir? HV programcısının ISS / Jtag devre dışı olsa bile çip silmek yapabileceğini biliyorum.
Kesinlikle ihtiyaç duyulmadıkça HV programlayıcısını tahta tasarımınıza dahil etmeniz gerektiğini düşünmüyorum ve hiçbir şeyle sorun yaratmayacağından emin olabilirsiniz. YG programcıları (12 volt sinyalleri) sadece kilitli (çoğunlukla hata kilitli) yongaları programlamak için bir güvenlik önlemi olarak mevcuttur. Teoride bu sadece cihazın hiçbir şey okumadığını programlamak içindir. Ve okumaya izin verecek bir istismar hiç duymadım.
Bootloader'ı yükseltmek için (bazen) HV programlama arayüzü başlığını gemiye koyacağım. Ama birisi flaş OKUMAK için HV programlayıcı kullanabilir? HV programcısının ISS / Jtag devre dışı olsa bile yonga silme yapabileceğini biliyorum.
Ben bootloader aracılığıyla kilitli flaş güncellemek için bir yol olabilir düşünüyorum , (bir dahili yazma bayrağı ve / veya ISR ile ilgili bir şey belki ???) Ama ben notlarımı aramak ve belki de test etmek zorunda kalacağım. Bunu ~ 20 saat boyunca yapamayacağım; bu yüzden sadece bu konuya ve bahsettiğiniz işlemci için yeni bir soru sormanızı tavsiye ederim . Çok güzel bir soru !