Что значит прошивка jtag

Прошивка через JTAG: схема, распиновка, инструкция

Открываем для тебя дивный мир флеш-памяти

Что значит прошивка jtag

Содержание:

Ingredients

Directions

Что касается спутников ресиверов, то JTAG дает возможность перепрошить микросхему flash-памяти, если нет возможность прошить ресивер стандартным способом, через кабель к компьютеру. Сегодня мы разберем прошивку через JTAG-интерфейс на примере спутникового ресивера Globo X90 для его восстановления. Ранее мы уже научились прошивать его через кабель (см. предыдущую часть)

Зачем нужен JTAG

Прошивка через JTAG куда сложней обычной процедуры, поэтому к ней прибегают только в самом крайнем случае, когда ресивер совсем не подаёт признаков жизни: не загружается, не горит индикация, прошили другой прошивкой, либо после прошивки у вас только черный экран

JTAG прошивка по шагам

1. Собрать интерфейс (переходник) от порта ресивера к порту ПК

Собрать адаптер для JTAG не так сложно, как кажется на первый взгляд. Для Globo X90, да и вообще для всех ресиверов, предпочтительным вариантом сборки является вариант на микросхеме 74HC244N (её еще называют даташит). Распиновка JTAG:

Что значит прошивка jtag

Так выглядит собранная схема:

Что значит прошивка jtag

Со стороны ресивера это будет специальный разъём, он иногда даже так и подписан — JTAG

Что значит прошивка jtag

Второй «конец», который уходит в сторону ПК — это обычный LPT-кабель, который можно купить в любом компьютерном магазине. О том, как можно собрать всё это хозяйство:

Что значит прошивка jtag

3. Скачать программу для прошивки

Для реанимации ресиверов Globo и всех их клонов, а так же для Евросатов/Евроскаев потребуется специальный программатор. Что касается программного обеспечения, то на данных процессорах используется программа EJTAG_TT_1.0.6.17 (Я.Диск)

4. Установить драйвер, если у вас Windows XP

Если вы используете Windows XP, то необходимо установить драйвер giveio.sys (Я.Диск). Скопируйте файл драйвера GIVEIO.sys в папку C:\Windows\system32\drivers\ если, конечно, система у Вас установлена на диск С: и Вы не меняли пути установки Windows. Запустите файл install.reg.

5. Скачиваем прошивку

6. Переводим ресивер в отладочный режим

Что значит прошивка jtag

Обратите внимание на точки подключения. Они должны совпадать с тем, как вы собрали переходник. В некоторых Globo-ресиверах бывает обратная последовательность — не перепутайте. На некоторых ресиверах можно сделать обычную перемычку для перевода в отладочный режим

Что значит прошивка jtag

Можно использовать перемычку с IDE-винчестеров

Что значит прошивка jtag

Так это будет выглядеть:

Что значит прошивка jtag

7. Настраиваем EJTAG и прошиваем

Настройки в нашей JTAG tool выставляем так же как на скриншоте:

Что значит прошивка jtag

Если EJTAG не увидит ресивер, попробуйте поменять тип флеш памяти в последнем столбике. Вообще, здесь можно пробовать менять любые параметры, чтобы ресивер определился

Что значит прошивка jtag

Что значит прошивка jtag

Если после нажатия кнопки «коннект», у вас выходит ошибка «флэш ID нету в *.ini –файле», то попробуйте поменять настройки в программе, как и советовали выше, нужно попробовать все вариации галочек и точек в настройках. Если и это не приведет к успеху, то тут стоит насторожиться — проверить питание процессора, напряжение с БП — есть вероятность того, что флеш-память уже «умерла», тогда никакой JTAG уже не поможет. Следующим шагом жмём «Записать» и в окне проводника выбираем нужный файл с дампом или загрузчиком (лоадером)

[adace-ad >Что значит прошивка jtag

При необходимости, как мы и писали выше, EJTAG сотрёт самостоятельно нужный блок памяти и начнет запись.

Здесь есть небольшой нюанс — достаточно залить около 50-70% прошивки через JTAG (желательно, конечно, полностью), но если у вас оборвалась прошивка на этом этапе, то можно попробовать прошивать стандартно (через порт), т.к. дальше уже идут списки каналов, спутники и так далее, т.е. то, что вы зальете и обычный прошивкой.

8. Убираем перемычку, отключаем Debug Mode

Не забудьте в конце прошивки корректно завершить программу EJAG, отключить от сети ресивер и аккуратно отключить JTAG-интерфейс. Так же снять перемычку для входа в отладочный режим. Далее подключаем ресивер уже через ком-порт и заливаем в него софт обычным способом.

Ручной поиск транспондера у спутника

Если вы заливаете «голую» прошивку, то есть необходимость вбить вручную нужные вам транспондеры. У некоторых ресиверов есть функция ручного ввода транспондеров. Для этого

Источник

Что значит прошивка jtag

Восстановление аппаратов с помощью J-tag

В этой теме:
— Софт.
— Технологии.
— Делимся опытом.
— Фото с точками J-tag.
— Флуд и оффтоп будет подлежать удалению.

Что значит прошивка jtag

Что значит прошивка jtag

Огромная база знаний по данному топику!

Что значит прошивка jtag

Что значит прошивка jtag

Что значит прошивка jtag

Что значит прошивка jtag

Что значит прошивка jtagЧто значит прошивка jtagЧто значит прошивка jtagЧто значит прошивка jtag

Что значит прошивка jtag

Что значит прошивка jtag

Что значит прошивка jtag

Что значит прошивка jtag

Такая ошибка может возникнуть при неправильном выборе частоты прошиваемого мк и/или завышенной скорости работы по вигглеру. И как следствие, программа-прошивальщик не может остановить проц, (чтобы ввести его в дебуг например), мне помагало также аппаратное отключение вотчдог таймера на мк (но это частный случай). Единственное что могу посоветывать это раздобыть настоящий j-link или его клон(вполне себе вещь хорошая за небольшие деньги). Есди не забуду сегодня выложу схемы вигглера.
Про сигналы trst, ntrst, reset надо смотреть доки на проц (в них описано какие уровни на них должны быть), так же неплохо осцииллографом проверить сигнал сброса (не уверен насчет конкретно этого случая, есть ли он вообще).

ARM с которым я работал был устроен так. Ядро стартует на частоте равной кварцу или кварцу дел/умн на делители модуля PLL (в моем случае они были равны 1). Другими словами проц стартовал на частоте 10 МГц и вот в этот момент он и подхватывался отладчиком (использовал jlink). А далее отладчик останавливал программу и поэтому до номинальных чатот в 48 МГц проц не подымался. Это что касается установки скорости Processor Frequency. Что касается скорости работы самого отладчика то тут надо начинать с низов обычно с килогерца.
Насчет определения процессора, да он может быть детектирован при старте, но если не прошла команда halt с отладчика дальше с ним работать будет невозможно.
Я бы сам попробовал с этим поковыряться, но нет сломанного аппарата баловаться с гарантийной мобилой как то стремно.
Могу лишь посоветовать найти хорошее оборудование. Найдете Segger думаю проблема решится. Некоторые процы HJTAG у меня не брал хоть убейся.
У вас HJTAG самодельный или фирмовокитайский??
И скиньте пожайлуста дашиты на этот проц на дипозит попробую вам помочь.

Что значит прошивка jtagDS_WM8505_071.pdf ( 1.85 МБ )
это даташит на WM8505 процессор (у меня ещё с плюсиком на конце WM8505+).

Что значит прошивка jtagDDI0198E_arm926ejs_r0p5_trm.pdf ( 1.43 МБ )
а это даташит на тип (arm926ejs) процессоров.

ты не сможеш залить в оперативу своего планшета никакой загрузчик, пока не инициализируеш скриптом контроллер памяти арма.
технология заливки boot загрузчика в тело такова(я работаю OCD commander)
1. запускаем OSD,если тело подключено правильно, сброс пройдет нормально, и ошибок не выйдет
2. инициализируем контроллер оперативной памяти
здесь возникают проблемы, инициализация зависит от используемого чипа памяти, а также его подключения
нужен либо готовый скрипт под конкретное устройство, либо мануалы на процессор и память, а возможно и схему подключения к чипу.
3. память инициализированна, можно командой download, залить boot загрузчик и запустить его
если все прошло успешно, тело должно запуститься, обычно с помощью комбинаций клавиш, можно войти в сервисное меню, с помощью которого можно прошить загрузчик во флэш

HJTAG работает по такойже схеме, если у него есть скрипт на такое устройство, он инициализирует память, загружает туда свой код, который предназначен для записи eboot сразу во флэш

Зажми Громкость + и воткни не отпуская USB, потом в компе в диспетчере устройств смотри, если устройства не будет значится совсем все плохо, и без разборки не обойтись но там все легко.

РУКОВОДСТВО ПО ВОЗВРАЩЕНИЮ БРИКНУТЫХ (КИРПИЧЕЙ) ПЛАНШЕТОВ К ЖИЗНИ: EXPLAY MID-725, TECLAST T760, TEXET TM-7022

Есть 2 возможных состояния «НЕ стояния» у планшета.

1) После перепрошивки ну или каких либо действий планшет перестает загружаться, тоесть мы его включаем он нам лого кажет экран тухнет и опять лого и так по кругу. Но при этом компьютер видет его на USB порту. Типа полубрик (Не кирпич но уже близко к тому)
Этот случай лечится легко, открываем RKBatchTool из приложенного архива, качаем это ТОЛЬКО ДЛЯ TECLAST и EXPLAY для TEXET Стоковая прошивка TEXET TM-7022. В RKBatchTool указываем путь к IMG файлу прошивки и ВНИМАНИЕ! ЖМЕМ КНОПКУ «RESTORE» Ждем конца прошивки и ура.

2) Абсолютный кирпич. Планшет не включается вообще и не распознается компьютером. В текущей ситуации необходимо проделать некоторые шаги, чтобы перевести планшет в специальный сервисный режим, и компьютер его мог увидеть как MSC device (rk maskrom device).

ВНИМАНИЕ. ВСЕ, ЧТО ВЫДЕЛАЕТЕ ДАЛЕЕ, ВЫ ДЕЛАЕТЕ ТОЛЬКО НА СВОЙ СТРАХ И РИСК. МОЖНО СОВСЕМ ДОБИТЬ ПЛАНШЕТ, НЕ УВЕРЕНЫ В СЕБЕ НЕ ДЕЛАЙТЕ ЭТОГО ЛИБО ОБРАЩАЙТЕСЬ В СЦ.

1) Переворачиваем планшет, тонким острым предметом поддеваем по углам заглушки из резинок, далее обычной крестовой отверткой откручиваем винты и аккуратно снимаем крышку. После снятия наблюдаем картину такого вида

Источник

Сверхмобильная прошивалка AVR по JTAG

Что значит прошивка jtag

Схема:
Что значит прошивка jtag

Плата:
Что значит прошивка jtag

Все прекрасно разводится на одном слое, без перемычек.

Принцип работы
Наш хэдкраб тактируется от внутреннего RC-генератора, т.к. JTAG — это синхронных интерфейс и тайминги не важны. Для отображения состояния на плате располагается сдвоенный красно-зеленый светодиод.
После подачи питания контроллер инициализирует линии JTAG (TMS, TCK, TDO, TDI), зажигает красный светодиод и согласно протоколу работы TAP-контроллера (Test Access Point, описание его работы можно найти в даташите на любой МК, поддерживающий JTAG) пытается ввести в режим программирования устройство, к которому он прицепился. Здесь небольшое лирическое отступление. В программе работа с TAP выглядит так:

Реализация функций TAP и shift_instruction выглядит следующим образом:

По сути, каждая операция по JTAG производится через TAP посредством этих двух функций в различных вариациях. Например так выглядит чтение байтов сигнатуры устройства:

Остальные команды можно изучить в описании TAP или же, более наглядно, в прикрепленном к посту рабочем проекте. Лирическое отступление закончилось, вернемся к описанию работы.

После входа в режим программирования прошивалка сверяет байты сигнатур устройства с зашитыми в код прошивалки (не дай Б-г не то устройство прошьем). Если байты не совпадают, прошивалка деинициализирует линии JTAG и начинает мигать обоими светодиодами, пока её не отцепят от устройства. Короче говоря, отваливает от процесса. Если устройство всё же похоже на нужное, то прошивалка делает следующее:
— стирание кристалла (chip erase);
— прошивка память программы устройства из своей собственной памяти (program flash);
— проверка памяти программы устройства со своей собственной памятью (read flash);
— программирование битов конфигурации (fuses);
— программирование битов защиты (lock bits);
— отваливается, погасив все светодиоды.

Конечно же, прошивлка сама по себе не отвалится, её надо отстыковать). Но на момент погашения светодиодов, устройство, к которому наш хэдкраб был подключен, уже должно стартовать: готово к работе!
Если на этапе программирования или проверки возникнет несовпадение или ошибка, прошивалка отлипнет от порта и замигает светодиодами, т.е. опять-таки отвалит от процесса.

Нюансы
1) Естественно, для того чтобы прошивалка все-таки прошила устройство по JTAG, этот самый JTAG должен быть активирован на данном устройстве. Иначе придется применять прошивалку уже другого рода — по ISP. Подобное так же собиралось и функционирует.
2) Собственно сама прошивка для устройства располагается в памяти контроллера прошивалки и может занимать довольно много места. Если не будет влезать в Mega8, то можно применить Mega168, там больше флеша.
3) Бинарник прошивки устройства цепляется к прошивке хэдкраба на этапе линковки, это делается различными способами, в зависимости от среды разработки. В IAR это в свойствах проекта в Linker во вкладке Config указываем Raw binary image путь к файлу бинарника, задаем Symbol, Segment и Align например как a123, SEGa и 2 соответственно. Тогда на вкладке Extra Options надо будет добавить 2 строки:
-ZSEGa=EFF
-ga123
где EFF — это адрес, по которому будет располагаться бинарник устройства в памяти прошивалки.

Вот вроде бы и всё. Устройство бывает крайне полезным, когда устройства сверхподвижны и отлавливать их приходится буквально в поле.
Снова оговорюсь, что есть подобное же устройство, но для программирования через SPI.

Источник

JTAG в каждый дом: полный доступ через USB

Исследователи Positive Technologies активировали аппаратную отладку (JTAG) для Intel Management Engine, которая позволяет получить полный доступ ко всем устройствам PCH (Platform Controller Hub), используя технологию Intel DCI (через интерфейс USB). Мы планируем поделиться подробностями на одной из ближайших конференций. А о том, как активировать этот интерфейс, но для основного процессора, расскажем ниже.

Что значит прошивка jtag

От ошибок никто не застрахован. Это утверждение касается и низкоуровневого программирования, где таких привычных средств, как отладочная печать или программный отладчик, в определенный момент может быть уже недостаточно. Для решения этой проблемы разработчики аппаратных средств используют так называемые внутрисхемные эмуляторы (in-circuit emulators) или специальный отладочный интерфейс JTAG, если он присутствует на целевой платформе (IEEE1149.1 [1]). Эти отладочные механизмы появились еще в 80-х годах прошлого века [2]. Со временем производители микросхем расширяли возможности этих интерфейсов. Благодаря этому разработчики смогли получать детальную информацию об энергопотреблении, находить узкие места в высокопроизводительных алгоритмах и получили много других возможностей.

Для исследователей безопасности аппаратные средства отладки также представляют интерес. Они позволяют получить низкоуровневый доступ к системе в обход основных средств обеспечения безопасности, изучать поведение целевой платформы и ее недокументированные возможности. Очевидно, что подобные возможности оказались привлекательны и для спецслужб [3].

Долгое время доступ к этим технологиям для процессоров Intel имелся только у ограниченного круга лиц, что было связанно с необходимостью использования дорогого специализированного оборудования. Но с выходом процессоров семейства Skylake ситуация кардинально изменилась: отладочные механизмы были встроены в PCH [4], что позволяет использовать столь мощный инструмент обычным пользователям — включая и злоумышленников, которые могут таким образом получить полный контроль над процессором. Из соображений безопасности по умолчанию эти механизмы не активированы, но в данной статье мы покажем, что их можно заставить работать на оборудовании, которое доступно в обычных компьютерных магазинах.

Эволюция отладочных средств на процессорах Intel

1. От in-circuit emulator к JTAG

Первоначально in-circuit emulator (ICE) для процессоров Intel 80286 представлял собой отдельный компьютер («большую синюю коробку» [5]), который включал клавиатуру и монитор. ICE подключался вместо процессора отлаживаемой системы и эмулировал его поведение. Такой эмулятор позволял устанавливать точки останова, изменять память и регистры процессора, производить запись и чтение.

Позднее Intel представила новый аппаратный отладчик I2ICE (рис. 1), который уже не заменял собой штатный процессор. С помощью специальных переходников пользователь подключался к отлаживаемой системе, а для общения с хост-машиной такой аппаратный отладчик использовал стандартный последовательный порт на скорости 9600 Бод [5].

Что значит прошивка jtag

Рис. 1. Intel I2ICE — один из первых внутрисхемных отладчиков для процессоров Intel 80386 (recycledgoods.com/intel-series-iv-emul-system-iii514b.html)

По мере развития технологий и увеличения тактовых частот Intel отказывается от разработки отдельных полнофункциональных средств отладки и частично переносит ее внутрь процессора, в виде специального недокументированного режима ICE-mode (который по принципам работы очень напоминал другой режим — System Management Mode (SMM), у некоторых разработчиков того времени было стойкое убеждение, что SMM — не что иное, как документированный и расширенный ICE-mode [6]). В свою очередь, всеобщая стандартизация отладочных механизмов в электронной промышленности приводит к тому, что в некоторых процессорах Intel 80486 появляется поддержка тестового интерфейса IEEE1149.1 (JTAG) [7].

Joint Test Action Group (JTAG) на самом деле является названием рабочей группы, которая разработала стандарт Standard Test Access Port and Boundary-Scan Architecture (IEEE1149.1 [1]). Он позволяет использовать стандартную аппаратуру тестирования и отладки для широкого класса устройств. Со временем сокращение JTAG стало ассоциироваться со стандартом IEEE1149. В современных микросхемах он широко распространен в промышленности и используется для тестирования, прошивки, отладки и выходного контроля микросхем при производстве. Физически JTAG представляет собой четыре или пять выделенных линий, которые образуют тестовый порт TAP (Test Access Port). Стандарт предусматривает объединение устройств в цепочку, позволяя получать доступ к каждому подключенному устройству (рис. 2).

Что значит прошивка jtag

Рис. 2. Объединение отлаживаемых устройств в JTAG-цепочку

Часто разработчики аппаратуры расширяют базовую функциональность JTAG, вводя новые возможности; процессоры Intel не стали в этом смысле исключением, начиная с Pentium появляется более дешевый и мощный вариант внешнего отладчика, который использует специальный зондовый режим (probe mode).

2. Режим зондовой отладки

Режим зондовой отладки (probe mode) является еще одним недокументированным режимом работы процессоров Intel. Он используется для диагностики и отладки. Его невозможно активировать без доступа к JTAG-регистрам процессора. В probe mode процессор может изменять память, производить запись и чтение из портов ввода-вывода. В данном режиме прерывается нормальное выполнение инструкций и процессор переходит в режим бездействия, ожидая команд по интерфейсу JTAG. Такое поведение принципиально отличает данный механизм от ICE-mode, когда инструкции на процессоре продолжали выполняться. При входе в probe mode останавливается предварительная выборка и декодирование команд. Команды от JTAG для модификации или чтения поступают непосредственно в исполнительные блоки процессора, тем самым минуя этапы предварительной выборки и декодирования [8], что позволяет получать доступ к ряду регистров, которые недоступны из обычных режимов.

Probe mode реализован как расширение JTAG с добавлением нескольких регистров и дополнительных сигналов R/S#, PRDY (подробнее о том, как реализован режим probe mode, см. [8], [9]). Сторонние компании наравне с Intel выпускают JTAG-адаптеры для процессоров x86, в которых обеспечивается поддержка этого расширения, но мы рассмотрим только оригинальные аппаратные средства отладки.

3. Современные аппаратные средства и технологии отладки процессоров Intel

Современные процессоры Intel предоставляют JTAG через три интерфейса:

Что значит прошивка jtag

Что значит прошивка jtag

Рис. 4. Типы подключения DCI
Что значит прошивка jtag
Рис 5. Intel SVT Closed Chassis Adapter

Интерфейс Intel ITP-XDP имеет закрытый протокол, требует специализированного разъема на плате и специализированного программного обеспечения Intel System Studio (на сайте производителя доступна пробная версия). К недостаткам также стоит отнести высокую цену (около 3000 долларов США) и необходимость подписывать документы о неразглашении информации (Corporate Non-Disclosure Agreement) [10]. Высокая цена и CNDA делают данный отладчик недоступным для рядового разработчика или домашнего использования.

Однако начиная с процессоров семейства Skylake Intel внедрил технологию Direct Connect Interface (DCI), ее достаточно поверхностное описание можно найти в документации [4]. Данная технология ставит своей целью упростить разработку мобильных устройств, из чего вытекает ее недостаток: ее можно активировать без каких-либо аппаратных модификаций (при наличии JTAG линий между PCH и CPU). Также стоит отметить, что подключение с использованием адаптера Intel SVT использует линии USB 3.0, но реализует свой протокол, что позволяет работать с целевой системой в режимах глубокого сна. К сожалению, адаптер SVT при своей относительно низкой цене (390 долларов США) также доступен для покупки только после подписания CNDA.

Самым интересным для рядового программиста вариантом, который при этом не требует подписания каких-либо документов перед использованием, является USB3 Hosting DCI. Он представляет JTAG-интерфейс через обычный отладочный кабель USB 3.0. При активации DCI на целевой системе порт USB 3.0 переходит в режим slave и начинает принимать команды от хостовой системы.

Один из важных вопросов относительно USB 3.0 DbC DCI Hosting заключается в том, через любой ли внешний порт USB 3.0 возможно подключение к DCI — или требуется отладочный порт, доступный только на специальных системных платах для разработчиков. Следует рассмотреть данный вопрос подробнее.

В среде системных разработчиков существует путаница, порожденная тем, что сама по себе отладка через USB появилась достаточно давно (со времен USB 2.0) и в данный момент используется многими разработчиками для программной отладки ядер операционных систем и UEFI приложений. Однако программная отладка через USB (в windbg, UEFI debug agent и т. п.) не имеет ничего общего с механизмами аппаратной отладки через JTAG, кроме собственно транспорта. Спецификация контроллера шины USB 2.0 (EHCI, Enhanced Host Controller Interface) предоставляет специальный механизм, который называется Debug Port (PCI capability), с помощью которого возможно взаимодействие между сервером (программным или аппаратным) на отлаживаемой машине и клиентом на хосте. В частности, ядро Windows поддерживает отладку через EHCI Debug Port (при этом нужен отладочный кабель USB 2.0, с интегрированным устройством USB 2.0). При этом, действительно, не каждый внешний порт USB 2.0 мог работать как Debug Port, а эта возможность была закреплена за определенными портами, которые могли быть и не выведены наружу. Все зависело от производителя оборудования. Поэтому разработчики специально искали оборудование с выведенным наружу Debug Port, для отладки по USB. Таким образом, Debug Port — это атрибут USB-порта.

Однако ситуация полностью изменилась с появлением USB 3.0 и спецификации контроллера этой шины XHCI (eXtended Host Controller Interface). Данная спецификация также поддерживает отладку по USB, однако она претерпела существенное развитие и стала называться USB Debug Capability (DbC). Согласно XHCI, DbC является не атрибутом порта, а свойством конкретного контроллера XHCI. То есть, если данный XHCI-контроллер поддерживает DbC, то возможность отладки по USB 3.0 будет доступна на любом (в том числе и внешнем) порте USB 3.0. При этом DbC автоматический выберет первый порт, к которому подключен отладочным кабелем клиент, выполняющий транзакции USB 3.0.

Здесь важно отметить, что первые XHCI-контроллеры не поддерживали DbC, поэтому на системах с такими котроллерами отладка по USB была невозможна. Однако в PCH версии 100 и выше (для Skylake) компания Intel встроила свой собственный контроллер XHCI, который поддерживает DbC. Технология Intel DCI (которая и появилась начиная с процессоров Skylake) использует USB 3.0 DbС в качестве транспорта, для подключения JTAG-клиента. USB 2.0 Debug Port он не использует.

Таким образом, через любой порт USB 3.0 можно подключиться к DCI и осуществлять JTAG-отладку.

Активация DCI

Как же можно активировать этот отладочный интерфейс? Мы нашли три способа:

1. Активация через EFI Human Interface Infrastructure

EFI Human Interface Infrastructure — специальный механизм, который позволяет создавать пользовательский интерфейс в UEFI, обрабатывать и контролировать пользовательский ввод. Если посмотреть строение современных UEFI BIOS, можно найти в них множество скрытых опций, которые недоступны пользователю, но обрабатываются. На этом и основан наш первый способ. EFI HII определяет значения по умолчанию для всех опций, в том числе и скрытых. Найдя опцию, связанную с DCI, можно ее активировать для настройки по умолчанию, а затем, установив в BIOS заводские настройки, активировать DCI. Отредактировать эти настройки позволяет утилита AMI BIOS Configuration Program 5.0. Отредактированный образ программируется в SPI-flash программатором или через штатный механизм прошивки BIOS, если позволяют права доступа.

Однако у этого способа есть недостаток: система не загрузится, если активирован Boot Guard, так как утилита изменяет модуль EFI.

Что значит прошивка jtag

2. Активация через Flash Descriptor Region

Что значит прошивка jtagDCI также можно активировать через настройку специальных битов конфигурации PCH — либо вручную (они находятся в Flash Descriptor Region), либо c помощью утилиты Flash Image Tool. Данный способ работает даже при включенном Boot Guard.

3. Активация через P2SB-устройство

В конце концов, можно попробовать действовать напрямую — через устройство P2SB. В документации на разные поколения PCH можно найти специальный индекс и регистр, используя который можно активировать DCI на лету, если BIOS не заблокировал изменение настройки DCI.

Что значит прошивка jtag

Данный способ является уязвимостью, так как если BIOS не блокирует запись в регистр ECTRL, то из-за особенностей работы (возможности сохранения конфигурации между перезагрузками после выключения питания) позволяет активировать DCI один раз, а далее использовать JTAG-интерфейс как аппаратный backdoor в систему (например, отключать экран блокировки).
Мы провели исследование [12], в результате которого выяснилось, что крупнейшие производители материнских плат не устанавливают блокировку данного регистра, что позволяет активировать DCI и использовать этот механизм, например, для перезаписи BIOS в обход всех средств защиты, включая проверку цифровой подписи.

Резюме

Наличие отладочных механизмов в современных процессорах Intel позволяет облегчить разработку модулей UEFI, операционных систем, гипервизоров. Исследователи безопасности получают низкоуровневый механизм привилегированного доступа к аппаратуре, который может быть использован для поиска зловредного ПО, исследования недокументированных возможностей аппаратуры или драйверов специфического оборудования. Но, как любой отладочный механизм, DCI может использоваться и злоумышленниками для несанкционированного доступа к данным.

В качестве защиты от таких атак мы рекомендуем активировать Boot Guard, проверять бит активации DCI и запрет отладки в регистре IA32_DEBUG_INTERFACE (при этом DCI может работать, но остановить выполнение уже нельзя, поэтому нет возможности получить доступ к памяти и регистрам).

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *