คุณไม่ได้ระบุชิปสิ่งต่อไปนี้ส่วนใหญ่จะใช้กับอุปกรณ์ 8 บิต atmega แต่เป็นข้อมูลทั่วไป อ่านส่วน 'การเขียนโปรแกรมหน่วยความจำ' สำหรับแผ่นข้อมูลเฉพาะชิปของคุณสำหรับข้อมูลเฉพาะเพิ่มเติม!
อย่างที่ได้กล่าวไปแล้วและอย่างที่คุณพูดอุปกรณ์ AVR ทั้งหมดมีบิตล็อคสองอันชื่อ LB1 และ LB2 การเขียนโปรแกรมเหล่านี้ (ถึง 0, ต่ำ) จะเพิ่มการป้องกันเนื้อหาที่เขียนลงในหน่วยความจำ Flash และ EEPROM ตามตารางด้านล่าง ระดับการป้องกันแบ่งออกเป็นสามโหมดโดยที่โหมด 1 ไม่มีการป้องกันและโหมด 3 ให้การปกป้องสูงสุด เป็นไปได้ที่จะย้ายไปที่โหมดการป้องกันที่สูงขึ้นโดยการตั้งโปรแกรมบิตล็อคใหม่
AVR อนุญาตให้เปลี่ยนบิต "สูง" เป็น "ต่ำ" แต่ไม่ใช่วิธีอื่น ๆ ไม่สามารถเปลี่ยนบิตล็อค "ต่ำ" เป็น "สูง" ดังนั้นจึงไม่สามารถลดระดับการป้องกันได้ ในการล้างบิตล็อคต้องใช้การลบชิปอย่างสมบูรณ์ซึ่งจะลบหน่วยความจำแฟลช
2 บิตล็อคเพียงอย่างเดียว (LB1 และ LB2) เมื่อต่ำจะป้องกันไม่ให้ 99.9% ของคนขโมยเฟิร์มแวร์ของคุณ! อาจมากกว่า 99.9% มันจะง่ายกว่าในการทำ reverse รหัสของคุณ
ดังนั้นจึงไม่มีวิธีให้ผู้ใช้อัปเดตเฟิร์มแวร์โดย bootloader ที่กำหนดเองและป้องกันแฟลชจากการอ่านในเวลาเดียวกันได้หรือไม่
ด้วยความรู้ที่ดีที่สุดของฉัน (ฉันอาจเข้าใจผิด แต่ฉันคิดว่าฉันมีปัญหากับเรื่องนี้มาก่อน) บนอุปกรณ์ที่มีฟิวส์ป้องกัน bootloader (BLB12 และ BLB11) คุณสามารถล็อคส่วนbootloader ที่กำหนดเองปิด SPI และ การป้องกันจาก 97-98% ของผู้คน
อย่างไรก็ตามเมื่อไม่มีการตั้งโปรแกรมบิตการล็อคจึงไม่มีการเปิดใช้งานคุณสมบัติการล็อคหน่วยความจำ !!! ISP ปิดใช้งานนั้นเพียงพอที่จะบล็อกคนได้ 70%
สำหรับข้อมูลเพิ่มเติมบางส่วนบิตล็อคและฟิวส์ไม่ได้อยู่ในแฟลชปกติหรือพื้นที่ EEPROM และไม่สามารถเข้าถึงได้จากซอฟต์แวร์ยกเว้นล็อคบิตที่เกี่ยวข้องกับ Boot Loader ในอุปกรณ์ที่มีคุณสมบัติการเขียนโปรแกรมด้วยตนเอง ตารางที่ 2 ในบันทึกย่อของแอปนี้จะช่วยคุณระบุสิ่งที่คุณสามารถทำได้สำหรับอุปกรณ์เฉพาะของคุณ!
สาย AVR ของ Atmel ไม่ใช่อุปกรณ์ความปลอดภัยสูง (เว้นแต่จะมีการระบุไว้อย่างชัดเจน!) ดังนั้นจึงไม่มีการรับประกันความปลอดภัยของรหัสใด ๆ เลยและไม่ควรใช้! เช่นเดียวกับอุปกรณ์ที่ไม่ปลอดภัยทั้งหมด (และน่าเศร้าแม้กระทั่งอุปกรณ์ที่ปลอดภัยบางอย่าง) พวกเขามีแนวโน้มที่จะถูกโจมตีโดยทั่วไป!
แก้ไข
ฉันจะใส่ส่วนหัวของอินเตอร์เฟสโปรแกรมมิงบนโปรแกรม HV ไว้ แต่ใครบางคนสามารถใช้โปรแกรม HV เพื่ออ่านแฟลชได้? ฉันรู้ว่าโปรแกรมเมอร์ HV สามารถลบชิปได้แม้ ISP / Jtag จะถูกปิดการใช้งาน
ฉันไม่คิดว่าคุณควรรวมโปรแกรมเมอร์ HV ไว้ในการออกแบบบอร์ดของคุณเว้นแต่จะจำเป็นจริงๆและคุณรู้แน่นอนว่ามันจะไม่ทำให้เกิดปัญหาอะไร โปรแกรมของ HV (12 โวลต์สัญญาณ) มีให้เฉพาะในส่วนของมาตรการความปลอดภัยในการล็อคโปรแกรม (ข้อผิดพลาดล็อคส่วนใหญ่) ชิป ในทฤษฎีนี้เป็นเพียงหมายถึงการเขียนโปรแกรมอุปกรณ์ไม่อ่านอะไร และฉันไม่เคยได้ยินเกี่ยวกับการหาประโยชน์ที่จะอนุญาตให้อ่าน
สำหรับการอัพเกรด bootloader (บางครั้ง) ฉันจะวางส่วนหัวของอินเตอร์เฟสโปรแกรมมิงบน HV แต่ใครบางคนสามารถใช้โปรแกรม HV เพื่ออ่านแฟลชได้? ฉันรู้ว่าโปรแกรมเมอร์ HV สามารถลบชิปได้แม้ ISP / Jtag จะถูกปิดการใช้งาน
ฉันคิดว่าอาจมีวิธีอัปเดตแฟลชที่ล็อคผ่าน bootloader (สิ่งที่ต้องทำกับธงเขียนภายในและ / หรือ ISR อาจ ???) แต่ฉันจะต้องค้นหาบันทึกย่อของฉันและอาจต้องทดสอบ ฉันไม่สามารถทำเช่นนี้ได้ประมาณ 20 ชั่วโมง ดังนั้นฉันขอแนะนำให้ถามคำถามใหม่ที่เน้นเฉพาะเรื่องนี้และสำหรับโปรเซสเซอร์ที่คุณพูดถึง มันเป็นคำถามที่ดีมาก !