Dans un billet daté du 8 octobre 2026, Joshua Kennedy raconte avoir repris puis achevé, au cours de l’année, son projet de glitch de tension sur Xbox 360. Il avait acheté une Matrix CoolRunner Rev D en 2017, avant de mettre le projet de côté après un essai infructueux avec un programmateur sur port LPT. Son récit détaille le rôle du Raspberry Pi Pico : lire la mémoire NAND de la console et programmer les fichiers de timing. Le CoolRunner, lui, est resté la puce chargée du glitch.
Que provoque un glitch du signal de reset ?
Kennedy décrit une brève impulsion sur le signal de réinitialisation du processeur, CPU_RESET. Cette perturbation peut amener le processeur à exécuter incorrectement une instruction : c’est une forme d’injection de faute matérielle. Tom’s Hardware explique que cette faille peut ouvrir la voie à l’exécution de code arbitraire et au contournement des protections cryptographiques de la console ; le média rapporte aussi que les fenêtres de déclenchement varient selon les révisions matérielles de la Xbox 360. Tom’s Hardware détaille ces conséquences et variations.
Kennedy décrit une impulsion d’environ 100 ns pour la Matrix CoolRunner Rev D. La puce doit déclencher le glitch au moment opportun pour perturber l’exécution d’une instruction.
À quoi servait le Pico ?
Le Pico n’a pas remplacé la puce de glitch : il a servi à lire la NAND et à programmer les fichiers de timing qui vont sur le CoolRunner. Kennedy rapporte que la lecture de la NAND a pris quelques secondes.
| Tâche | Outil ou composant | Rôle |
| Lecture de la NAND | Raspberry Pi Pico avec PicoFlasher | Lire la mémoire NAND de la console |
| Programmation des fichiers de timing | Raspberry Pi Pico avec Pico-dirtyJTAG et urjtag | Programmer les Octal450 Timing Files sur la Matrix CoolRunner Rev D |
| Injection du glitch | Matrix CoolRunner Rev D | Envoyer l’impulsion destinée à perturber le signal CPU_RESET |
Pour programmer les fichiers, Kennedy dit avoir utilisé Pico-dirtyJTAG sur le Pico et installé urjtag depuis les sources. Le Pico servait donc de lecteur et de programmateur ; le CoolRunner restait au cœur du déclenchement.
Pourquoi la précision temporelle compte-t-elle ?
Kennedy attribue aux blocs PIO du Raspberry Pi Pico une résolution temporelle effective d’environ 7,5 ns, avec une horloge à 133 MHz. Les fichiers de timing servent à régler le moment du déclenchement, tandis que les fenêtres disponibles varient selon les révisions de la console.
Cette distinction explique les deux rôles du montage : le Pico fournit les outils de lecture et de programmation, et la Matrix CoolRunner Rev D produit l’impulsion de glitch.