> For the complete documentation index, see [llms.txt](https://blog.s1rn3tz.ovh/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://blog.s1rn3tz.ovh/pentest-physique/hardware-hacking/jtag.md).

# JTAG

## Description

Le JTAG est le nom de la norme IEEE 1149.1 intitulée « Standard Test Access Port and Boundary-Scan Architecture », qui été normalisée en 1990. Le terme JTAG, désignant le groupe de travail qui a conçu la norme, est abusivement utilisé au lieu du terme générique Boundary Scan, ou du sigle TAP.

## Instructions Boundary Scan

La norme IEEE 1149.1 définis des instructions spécifiques pour les boundary scan incluants notamment les instructions:

* **BYPASS**: Permet aux données BST de passer de manière synchrone à travers les appareils cibles vers les appareils adjacents pendant le fonctionnement normal de l'appareil.
* **SAMPLE**/**PRELOAD**:&#x20;
  * Permet à un modèle de données initial d'être une sortie au niveau des broches de l'appareil.
  * Vous permet de capturer et d'examiner un snapshot des signaux au niveau des broches de l'appareil si l'appareil fonctionne en mode normal.
* **EXTEST**:&#x20;
  * Force le motif de test sur les broches de sortie et capture les résultats du test sur les broches d'entrée.
  * Vous permet de tester les circuits externes et les interconnexions au niveau de la carte.
* **INTEST** (Optionnel):
  * Contrairement à l'instruction EXTEST, INTEST force le motif de test sur les broches d'entrées et capture les résultats du test sur les broches de sorties.
* IDCODE (Optionnel): Permet d'identifier un système.

## Les TAP (Test Access Ports)

TAP peut utiliser cinq signaux dont un optionnel:

* TCK (Test Clock Input)
* TMS (Test Mode Select)
* TDI (Test Data Input)
* TDO (Test Data Output)
* TRST (Test Reset Input, Optionnel)

<figure><img src="/files/3JO67GNW6F9p0twJ7jl7" alt=""><figcaption><p>Architecture JTAG basique</p></figcaption></figure>

## Identifier les pins JTAG

### Via le [JTAGulator](/pentest-physique/equipements.md#jtagulator)

Le JTAGulator est un système créé spécifiquement pour identifier les pins JTAG. l'outil permet de bruteforcer les pins à l'aide des instructions IDCODE et BYPASS vues précédemment puis attend les réponses de ces pins pour les afficher dans l'ordre des pins du système cible.

### Via l'utilitaire JTAGenum

JTAGenum est un scanner open source (expérimental) Arduino (`JTAGenum.ino)`ou RaspbberyPi (`JTAGenum.sh)`. Ce code a été construit avec trois objectifs principaux :

1. Déterminez quelles sont les lignes JTAG.
2. Énumérer le registre d'instructions pour trouver des fonctionnalités non documentées.
3. être facile à construire et à appliquer.

ressource: <https://github.com/cyphunk/JTAGenum/>


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://blog.s1rn3tz.ovh/pentest-physique/hardware-hacking/jtag.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
