Windows взлом пароля 1182 дня назад Цитата('3056936','3056936','6','438')">Сообщить о спамеКак это делается
1) Микросхема BIOS подключена к "южному мосту" чипсета посредством интерфейса LPC (Low Pin Count), детально описанного в [1]. Для доступа к содержимому BIOS на предмет чтения и записи, а также передачи управляющих команд и контроля текущего состояния микросхемы Flash ROM, используется 16-мегабайтный диапазон FF000000h-FFFFFFFFh в адресном пространстве памяти. Чтобы программные обращения к указанному диапазону транслировались в физические циклы чтения и записи на интерфейсе LPC, конфигурационные регистры "южного моста" чипсета должны быть установлены следующим образом.
В 16-битном регистре BIOS_CNTL (его координаты в конфигурационном пространстве Bus=0, Device=1Fh, Function=0, Register=4Eh-4Fh) бит 0 нужно установить в "1". Это снимает блокировку циклов записи и разрешает их трансляцию на интерфейс LPC.
В 8-битном регистре FWH Decode Enable 1 (его координаты в конфигурационном пространстве Bus=0, Device=1Fh, Function=0, Register=E3h) биты 7-0 нужно установить в "1". Это обеспечивает трансляцию циклов чтения и записи на интерфейс LPC для всех адресных диапазонов, используемых при взаимодействии с микросхемой BIOS. Подробности в [3]. Принципы построения конфигурационного пространства описаны в [15-16]. Протокол доступа к нему посредством функций PCIBIOS описан в [14].
2) Микросхема SST 49LF004A, используемая в качестве носителя BIOS, имеет объем 512 Кбайт и разделена на 8 блоков по 64 Кбайт. Каждый блок имеет свой регистр защиты записи (Block Locking Register). Например, для блока 0, расположенного по адресам FFF80000h-FFF8FFFFh, адрес регистра Block Locking Register равен FFB80002h. Для разрешения стирания и записи блока, бит 0 этого регистра должен быть установлен в "0". Адреса регистров защиты записи для каждого блока и другие подробности содержаться в [18]. Манипуляции с регистрами микросхемы Flash ROM, расположенными в пространстве памяти, выполняются с помощью стандартных инструкций архитектуры x86, обеспечивающих чтение и запись ячеек памяти, например MOV. Вопросы организации регистров, отображенных на память (Memory-mapped I/O) детально рассмотрены в ранее опубликованной статье "Устройства системной поддержки. Исследовательская работа № 7, 8 и 9".
3) Для запуска операции стирания блока или сектора требуется выполнить последовательность из шести циклов записи заданных байтов по заданным адресам. Последовательности приведены в [18] а также в исходном тексте программы, прилагаемом к статье. Использование многоцикловых последовательностей для запуска операций стирания и записи, снижает вероятность случайного искажения содержимого Flash в результате программного сбоя.
4) Для запуска операции записи байта требуется выполнить последовательность из четырех циклов записи заданных байтов по заданным адресам. Отметим, что перед выполнением записи, для сектора, в который выполняется запись, необходимо выполнить стирание.
Об аппаратной защите BIOS и ее эффективности
Как было показано выше, для перезаписи содержимого Flash ROM, программа должна выполнить три действия: перенастроить чипсет для обеспечения доступа к микросхеме BIOS, перенастроить регистры блокировки записи, входящие в состав самой микросхемы BIOS и, наконец, передать приказ записи или стирания. На каждом из этих трех этапов действуют механизмы защиты BIOS от несанкционированной модификации. Рассмотрим подробнее эти механизмы, а также причины, по которым они в ряде случаев оказываются неэффективными. Приведенная информация поможет выработать методику, позволяющую исследовать заданную материнскую плату на предмет наличия рассматриваемой уязвимости.
Комментарии: 1 Просмотров: 819
|