Anda tidak menentukan chip, berikut ini sebagian besar ditujukan untuk perangkat atmega 8 bit, tetapi ini adalah informasi umum. Baca bagian 'Pemrograman Memori' untuk Anda lembar data chip spesifik untuk informasi lebih spesifik!
Yang sedang berkata, dan seperti yang Anda katakan, semua perangkat AVR berisi dua bit Lock bernama LB1 dan LB2. Pemrograman ini (ke 0, rendah) akan menambah perlindungan pada konten yang ditulis ke memori Flash dan EEPROM sesuai dengan tabel di bawah ini. Tingkat perlindungan dibagi dalam tiga mode, di mana mode 1 tidak menawarkan perlindungan dan mode 3 menawarkan perlindungan maksimum. Dimungkinkan untuk pindah ke mode perlindungan yang lebih tinggi hanya dengan memprogram ulang bit-bit Lock.
AVR memungkinkan pengubahan bit "tinggi" menjadi "rendah", tetapi tidak sebaliknya. Tidak mungkin untuk mengubah bit kunci "rendah" menjadi "tinggi", sehingga menurunkan tingkat perlindungan tidak dimungkinkan. Untuk menghapus bit Lock, diperlukan Chip Erase lengkap, yang menghapus memori Flash.
Ini 2 bit kunci saja (LB1 dan LB2) ketika rendah akan mencegah 99,9% orang mencuri firmware Anda! Mungkin lebih dari 99,9%. Hampir selalu lebih mudah untuk merekayasa ulang kode Anda.
Jadi tidak ada cara untuk membiarkan pengguna memperbarui firmware dengan bootloader kustom dan melindungi flash dari membaca pada saat yang sama?
Sepengetahuan saya (saya bisa saja salah tapi saya pikir saya akan memiliki masalah dengan ini sebelumnya,) pada perangkat yang memiliki sekering perlindungan bootloader (BLB12 dan BLB11), Anda dapat mengunci bagian bootloader khusus , menonaktifkan SPI dan menjadi dilindungi dari 97-98% orang.
Namun ketika tidak ada bit Kunci yang diprogram, tidak ada fitur kunci memori yang diaktifkan !!! Penonaktifan ISP hanya cukup untuk memblokir 70% orang.
Untuk beberapa informasi tambahan, Bit kunci dan Sekring tidak terletak di flash normal atau ruang EEPROM, juga tidak dapat diakses dari perangkat lunak, kecuali untuk Bit kunci yang terkait dengan Boot Loader di perangkat dengan fitur Pemrograman Mandiri. Tabel 2 dalam catatan aplikasi ini akan membantu Anda mengidentifikasi apa yang dapat Anda lakukan untuk perangkat khusus Anda!
Atmel's AVR line bukan perangkat keamanan tinggi (kecuali secara eksplisit dicatat!) Dan karena itu mereka sama sekali tidak datang dengan jaminan keamanan kode apa pun, begitu pula mereka! Seperti semua perangkat yang tidak aman (dan sayangnya bahkan beberapa yang aman), mereka rentan terhadap serangan umum!
Edit
Saya akan menempatkan header antarmuka pemrograman pemrograman HV. Tetapi bisakah seseorang menggunakan programmer HV untuk membaca flash? Saya tahu programmer HV dapat menghapus chip bahkan ISP / Jtag dinonaktifkan.
Saya tidak berpikir Anda harus memasukkan programmer HV dalam desain papan Anda kecuali benar-benar diperlukan dan Anda tahu pasti itu tidak akan menyebabkan masalah dengan apa pun. (12 volt,) pemrogram HV hanya tersedia sebagai alat pengaman untuk memprogram chip yang terkunci (kesalahan terkunci, sebagian besar). Secara teori ini hanya dimaksudkan untuk memprogram perangkat tidak membaca apa pun. Dan saya belum pernah mendengar tentang eksploitasi yang memungkinkan membaca.
Untuk meningkatkan bootloader (kadang-kadang) saya akan menempatkan header antarmuka pemrograman pemrograman HV. Tetapi bisakah seseorang menggunakan programmer HV untuk membaca flash? Saya tahu programmer HV dapat menghapus chip bahkan ISP / Jtag dinonaktifkan.
Saya pikir mungkin ada cara untuk memperbarui flash yang dikunci melalui bootloader, (ada hubungannya dengan flag tulis internal dan / atau ISR mungkin ???) Tapi saya harus mencari catatan saya dan mungkin harus mengujinya. Saya tidak akan bisa melakukan ini selama ~ 20 jam; jadi saya sangat menyarankan mengajukan pertanyaan baru yang hanya berfokus pada ini dan untuk prosesor yang Anda sebutkan. Itu pertanyaan yang sangat bagus !