Hardware Hacking

Reading time: 4 minutes

tip

Impara e pratica l'Hacking AWS:HackTricks Training AWS Red Team Expert (ARTE)
Impara e pratica l'Hacking GCP: HackTricks Training GCP Red Team Expert (GRTE)

Supporta HackTricks

JTAG

JTAG consente di eseguire una scansione dei confini. La scansione dei confini analizza alcuni circuiti, inclusi i circuiti integrati di scansione e i registri incorporati per ogni pin.

Lo standard JTAG definisce comandi specifici per condurre scansioni dei confini, inclusi i seguenti:

  • BYPASS consente di testare un chip specifico senza il sovraccarico di passare attraverso altri chip.
  • SAMPLE/PRELOAD prende un campione dei dati che entrano ed escono dal dispositivo quando è nella sua modalità di funzionamento normale.
  • EXTEST imposta e legge gli stati dei pin.

Può anche supportare altri comandi come:

  • IDCODE per identificare un dispositivo
  • INTEST per il test interno del dispositivo

Potresti imbatterti in queste istruzioni quando utilizzi uno strumento come il JTAGulator.

The Test Access Port

Le scansioni dei confini includono test del Test Access Port (TAP) a quattro fili, una porta di uso generale che fornisce accesso alle funzioni di supporto ai test JTAG integrate in un componente. TAP utilizza i seguenti cinque segnali:

  • Test clock input (TCK) Il TCK è il clock che definisce quanto spesso il controller TAP eseguirà un'azione singola (in altre parole, salterà al prossimo stato nella macchina a stati).
  • Test mode select (TMS) input TMS controlla la macchina a stati finiti. Ad ogni battito del clock, il controller TAP JTAG del dispositivo controlla la tensione sul pin TMS. Se la tensione è al di sotto di una certa soglia, il segnale è considerato basso e interpretato come 0, mentre se la tensione è al di sopra di una certa soglia, il segnale è considerato alto e interpretato come 1.
  • Test data input (TDI) TDI è il pin che invia dati nel chip attraverso le celle di scansione. Ogni fornitore è responsabile della definizione del protocollo di comunicazione su questo pin, poiché JTAG non lo definisce.
  • Test data output (TDO) TDO è il pin che invia dati fuori dal chip.
  • Test reset (TRST) input Il TRST opzionale ripristina la macchina a stati finiti a uno stato noto buono. In alternativa, se il TMS è mantenuto a 1 per cinque cicli di clock consecutivi, invoca un ripristino, nello stesso modo in cui farebbe il pin TRST, motivo per cui TRST è opzionale.

A volte sarai in grado di trovare quei pin contrassegnati nel PCB. In altre occasioni potresti dover trovarli.

Identifying JTAG pins

Il modo più veloce ma più costoso per rilevare le porte JTAG è utilizzare il JTAGulator, un dispositivo creato specificamente per questo scopo (anche se può rilevare anche i pin UART).

Ha 24 canali che puoi collegare ai pin delle schede. Poi esegue un attacco BF di tutte le possibili combinazioni inviando comandi di scansione dei confini IDCODE e BYPASS. Se riceve una risposta, visualizza il canale corrispondente a ciascun segnale JTAG.

Un modo più economico ma molto più lento per identificare i pin JTAG è utilizzare il JTAGenum caricato su un microcontrollore compatibile con Arduino.

Utilizzando JTAGenum, dovresti prima definire i pin del dispositivo di sondaggio che utilizzerai per l'enumerazione. Dovresti fare riferimento al diagramma dei pin del dispositivo e poi collegare questi pin ai punti di test sul tuo dispositivo target.

Un terzo modo per identificare i pin JTAG è ispezionare il PCB per uno dei pinout. In alcuni casi, i PCB potrebbero fornire convenientemente l'interfaccia Tag-Connect, che è un chiaro indicatore che la scheda ha anche un connettore JTAG. Puoi vedere come appare quell'interfaccia su https://www.tag-connect.com/info/. Inoltre, ispezionare i datasheet dei chip sul PCB potrebbe rivelare diagrammi dei pin che indicano interfacce JTAG.

SDW

SWD è un protocollo specifico per ARM progettato per il debug.

L'interfaccia SWD richiede due pin: un segnale bidirezionale SWDIO, che è l'equivalente dei pin TDI e TDO di JTAG e un clock, e SWCLK, che è l'equivalente di TCK in JTAG. Molti dispositivi supportano il Serial Wire o JTAG Debug Port (SWJ-DP), un'interfaccia combinata JTAG e SWD che ti consente di collegare un sondino SWD o JTAG al target.

tip

Impara e pratica l'Hacking AWS:HackTricks Training AWS Red Team Expert (ARTE)
Impara e pratica l'Hacking GCP: HackTricks Training GCP Red Team Expert (GRTE)

Supporta HackTricks