Hardware Hacking

Вивчайте хакінг AWS від нуля до героя з htARTE (HackTricks AWS Red Team Expert)!

Інші способи підтримки HackTricks:

JTAG

JTAG дозволяє виконувати граничне сканування. Граничне сканування аналізує певні схеми, включаючи вбудовані клітини та регістри граничного сканування для кожного контакту.

Стандарт JTAG визначає конкретні команди для проведення граничного сканування, включаючи наступне:

  • BYPASS дозволяє вам тестувати певний чіп без накладних витрат на проходження через інші чіпи.

  • SAMPLE/PRELOAD бере зразок даних, що входять і виходять з пристрою, коли він знаходиться в нормальному режимі функціонування.

  • EXTEST встановлює та зчитує стани контактів.

Також може підтримувати інші команди, такі як:

  • IDCODE для ідентифікації пристрою

  • INTEST для внутрішнього тестування пристрою

Ви можете зіткнутися з цими інструкціями, коли використовуєте інструмент, наприклад, JTAGulator.

Порт доступу до тесту

Граничне сканування включає тести чотирьохпровідного порту доступу до тесту (TAP), загального призначення, який забезпечує доступ до функцій підтримки тесту JTAG, вбудованих у компонент. TAP використовує наступні п'ять сигналів:

  • Вхід тактового сигналу тесту (TCK) TCK - це тактовий сигнал, який визначає, як часто контролер TAP буде виконувати одну дію (іншими словами, переходити до наступного стану в машині станів).

  • Вхід вибору режиму тесту (TMS) TMS керує кінцевою машиною станів. На кожному такті годинника контролер TAP JTAG пристрою перевіряє напругу на контакті TMS. Якщо напруга нижче певного порогу, сигнал вважається низьким і інтерпретується як 0, в той час як якщо напруга вище певного порогу, сигнал вважається високим і інтерпретується як 1.

  • Вхід даних тесту (TDI) TDI - це контакт, який відправляє дані в чіп через скануючі клітини. Кожен виробник відповідає за визначення протоколу зв'язку через цей контакт, оскільки JTAG цього не визначає.

  • Вихід даних тесту (TDO) TDO - це контакт, який відправляє дані з чіпу.

  • Вхід скидання тесту (TRST) Необов'язковий TRST скидає кінцеву машину станів до відомого стану. Альтернативно, якщо TMS утримується на 1 протягом п'яти послідовних тактів годинника, він викликає скидання, так само, як це робить контакт TRST, тому TRST є необов'язковим.

Іноді ви зможете знайти ці контакти, позначені на платі. У інших випадках вам може знадобитися знайти їх.

Визначення контактів JTAG

Найшвидший, але найбільш дорогий спосіб виявлення портів JTAG - використання JTAGulator, пристрою, створеного спеціально для цієї мети (хоча він також може виявляти UART розпіновку).

У нього є 24 канали, які можна підключити до контактів плат. Потім він виконує BF-атаку всіх можливих комбінацій, відправляючи команди граничного сканування IDCODE та BYPASS. Якщо він отримує відповідь, він відображає канал, що відповідає кожному сигналу JTAG.

Дешевший, але набагато повільніший спосіб визначення контактів JTAG - використання JTAGenum, завантаженого на мікроконтролер, сумісний з Arduino.

Використовуючи JTAGenum, спочатку вам потрібно визначити контакти пристрою для пронумеровування. Вам доведеться звертатися до діаграми розпіновки пристрою, а потім підключити ці контакти до тестових точок на цільовому пристрої.

Третій спосіб визначення контактів JTAG - огляд плати для одного з розпіновок. У деяких випадках плати можуть зручно надавати інтерфейс Tag-Connect, що є чітким підтвердженням того, що на платі є роз'єм JTAG. Ви можете побачити, як виглядає цей інтерфейс за посиланням https://www.tag-connect.com/info/. Крім того, огляд документації чіпсетів на платі може розкрити діаграми розпіновок, які вказують на інтерфейси JTAG.

SDW

SWD - це протокол, специфічний для ARM, призначений для налагодження.

Інтерфейс SWD потребує двох контактів: двонаправленого сигналу SWDIO, який є еквівалентом контактів TDI та TDO JTAG та годинника, та SWCLK, який є еквівалентом TCK в JTAG. Багато пристроїв підтримують послідовний дріт або порт відлагодження JTAG (SWJ-DP), комбінований інтерфейс JTAG та SWD, який дозволяє підключати до цільового пристрою як зонд SWD, так і JTAG.

Last updated