#03 — Как найти интерфейс JTAG — Учебник по аппаратному взлому
Автор: Make Me Hack
Загружено: 2020-03-29
Просмотров: 124819
В этом видео я расскажу об интерфейсе JTAG, который можно найти практически на всех устройствах Интернета вещей, таких как маршрутизаторы, веб-камеры, электронные игрушки, пульты дистанционного управления телевизорами и так далее.
Я объясню, почему этот интерфейс может быть так полезен для аппаратного взлома и как определить его расположение и распиновку с помощью простых методов, например, с помощью мультиметра или недорогой платы JTAGulator. Если распиновка известна, но интерфейс JTAG не работает, я объясню причины этой проблемы и способы её решения.
*** Что такое интерфейс JTAG
JTAG — это промышленный стандарт, обычно реализуемый в сложных интегральных схемах; этот стандарт был впервые выпущен в 1990 году с целью упрощения тестирования печатных плат после изготовления.
Он обеспечивал управляемость и отслеживаемость каждого бита внутренней памяти каждой интегральной схемы, а также позволял проверять целостность каждого отдельного проводника, соединяющего различные интегральные схемы на печатной плате.
Он позволяет считывать и записывать содержимое флэш-памяти, а с последующим усовершенствованием стандарта его можно использовать для внутрисхемной отладки, то есть запуска отладчика на реальной прошивке, работающей на реальном оборудовании.
*** Почему интерфейс JTAG важен для аппаратного взлома
— он позволяет считывать и записывать содержимое EEPROM, что позволяет создавать дамп всего содержимого EEPROM. Его также можно использовать для восстановления исходной прошивки в случае выхода устройства из строя во время наших экспериментов по модификации прошивки.
— он позволяет войти в цикл загрузки и использовать интерфейс JTAG для внутрисхемной отладки, то есть использовать отладчик с реальной прошивкой на реальном оборудовании.
*** Как найти интерфейс JTAG
Чтобы найти расположение интерфейса JTAG, мы следуем принципу «сначала самый простой путь». Это означает, что сначала мы ищем в Интернете, не выполнил ли кто-то эту работу за нас и не нашёл ли расположение интерфейса JTAG в нашем устройстве.
Можно начать осматривать плату в поисках контактов с обозначениями интерфейса JTAG, такими как TCK, TDI, TDO и TMS.
Если нам не везёт с поиском в интернете или с маркировкой на нашей плате, найти расположение интерфейса JTAG непросто. Одна из причин — отсутствие стандартизированных разъёмов и распиновки. В любом случае, распространённых распиновок немного, некоторые из них доступны на сайте jtagtest по ссылке ниже.
Если на нашей плате не удаётся найти маркировку выводов JTAG, начинаем искать разъёмы, расположенные в один ряд по 5 или 6 контактов или в два ряда по 10, 12, 14 или 20 контактов.
После того, как мы определили потенциальные выводы, мы можем использовать мультиметр для определения возможной распиновки, поскольку найти GND и VCC легко. Обычно TMS и TDI имеют подтягивающий резистор, TRST обычно может иметь подтягивающий или понижающий резистор, а TDO должен быть высокоомным входом.
После того, как мы определили GND, VCC и измерили сопротивление и напряжение выводов, мы можем сравнить найденные нами результаты с распространённой распиновкой на сайте jtagtest и, если повезёт, определить распиновку JTAG с помощью простого мультиметра.
Если мы знаем тип микросхемы (System On a Chip) и у нас есть её техническое описание, мы можем найти выводы JTAG на микросхеме, а затем проследить печатную плату, чтобы идентифицировать разъём. Однако это обычно очень сложно по двум причинам:
— часто микросхема (System On a Chip) представляет собой SMD-компонент с выводами под корпусом, и идентифицировать их на печатной плате невозможно.
— когда микросхема (System On a Chip) имеет корпус с обозначенными выводами и легко идентифицируемыми выводами JTAG, проследить дорожки на многослойной плате может быть сложно, а сегодня почти все платы многослойные.
Лучшим и простым решением после определения потенциальных кандидатов на выводы JTAG является использование Jtagulator. У него есть множество разъёмов, которые можно подключить к потенциальным кандидатам на выводы JTAG. Jtagulator может выполнить автоматическое сканирование и определить расположение выводов JTAG. -------------------------------
Ссылки на дополнительную информацию
Автор канала: https://www.makemehack.com/2020/02/a-...
Веб-сайт канала: https://www.makemehack.com/
Пример маршрутизатора (Gemtek WVRTM-127ACN) на techinfodepot: http://en.techinfodepot.shoutwiki.com...
Пример маршрутизатора (Gemtek WVRTM-127ACN), прошедший обратную разработку на GitHub: https://github.com/digiampietro/hacki...
Веб-сайт JTagulator: http://www.grandideastudio.com/jtagul...
Последовательный адаптер TTL (партнёрская ссылка): https://amzn.to/2vvzCYB
PuTTY, эмулятор терминала: https://www.putty.org/
Bus Pirate: http://dangerousprototypes.com/docs/B...
Bus Bluster: http://dangerousprototypes.com/docs/B...
J-Link Debug Probes: https://www.segger.com/products/debug...
OpenOCD: http://openocd.org/
Сайт...
Доступные форматы для скачивания:
Скачать видео mp4
-
Информация по загрузке: