В описании bootstrap loader сказано, что 256-битный ключ для чтения
программы хранится по адресам 0xFFE0-0xFFFF. Но там же должны быть вектора
прерываний?
Ответ:
[Вернуться в категорию "Всё о MSP430 (Автор: Сергей Борщ)"] Совершенно верно. Именно содержимое векторов прерываний и является ключом. Чистый кристалл содержит 0xFF в этих ячейках, т.е. ключ нам известен. Именно с этим ключем (все '1') и проводится запись в чистый кристалл. После записи программы область ключа заполнится векторами прерываний и единственная команда, которая может быть выполнена без знания ключа - стирание всей флеш-памяти, и следовательно - приведение ключа в исходное состояние. Знать ключ теоретически может только человек, имеющий на руках прошивку кристалла, следовательно ему чтение памяти необходимо явно не для копирования. Задача защиты от копирования выполнена. Время подбора 256-битного ключа сопоставимо с временем разрушения данных во флеш. Зная ключ (т.е. имея прошивку) при помощи bootstrap loader можно выполнять чтение любой ячейки памяти (SFR, RAM, Flash), запись в любую ячейку, старт программы с любого адреса, стирание сегмента флеш.[Всё о MSP430 (Автор: Сергей Борщ)]
|