Aller au contenu
Français
Contenu FikirPilot

Reconstituer le firmware d'un appareil à partir de lectures SPI

Mis à jour: 24/09/2026 · 2 min de lecture · 387 mots

Publié: · Dépêche reçue: · Durée de traitement: 4 min

Reconstituer le firmware d'un appareil à partir de lectures SPI
Carte de circuit électronique et sondes

Dessouder la puce flash d’un appareil mystérieux pour en extraire le micrologiciel risque d’endommager l’appareil, tandis que la lecture de la puce directement sur le circuit peut également échouer. [Matthew “wrongbaud” Alt] décrit plutôt le processus consistant à identifier, enregistrer et décoder, à l’aide d’un analyseur logique, les opérations de lecture SPI effectuées au démarrage par une puce flash courante de la série W25Q. Cette méthode étant limitée aux données réellement lues par le processeur, elle peut ne pas permettre de récupérer l’intégralité du contenu de la puce.

Alt commence par expliquer les principes de base de la communication SPI et la manière d’interpréter les signaux à l’aide de la fiche technique de la puce flash. Il traite ensuite les enregistrements de l’analyseur logique avec Scapy afin de les convertir en un fichier image pouvant être transmis à binwalk. L’outil Python Scapy peut également être utilisé sur ce type de données, au-delà des paquets réseau.

Bien que l’image du micrologiciel contienne le bootloader et le noyau Linux, la partition du système de fichiers semble manquer. Cela s’explique par le fait que le processeur passe, avant de lire le système de fichiers, au mode Quad-SPI, plus rapide et utilisant deux lignes de données supplémentaires. Après un enregistrement et un traitement supplémentaires, les deux images sont fusionnées à l’aide d’une commande dd sur une seule ligne. Les travaux d’Alt comprennent également un guide de piratage matériel et des analyses de l’injection de fautes.

Pourquoi c’est important

Cette approche réduit à la fois le risque d’endommager l’appareil et permet aux chercheurs d’observer les communications réelles sur le circuit, puisqu’elle permet de travailler lors de l’analyse du micrologiciel sans dessouder la puce. Cependant, comme le résultat ne reflète pas l’ensemble du contenu présent dans la mémoire, mais uniquement les sections auxquelles le processeur accède lors du démarrage, la portée de l’image obtenue est limitée dès le départ. En particulier, le passage de SPI à Quad-SPI montre pourquoi l’enregistrement des seuls signaux standard peut produire un résultat incomplet et exige que les travaux similaires prennent également en compte les lignes de données utilisées. Cette situation montre aux chercheurs en matériel et aux spécialistes de la rétro-ingénierie que la méthode ne suffit pas à elle seule et que des étapes supplémentaires d’enregistrement et de traitement peuvent être nécessaires pour compléter les sections manquantes.

Source: Hackaday