Hackaday · Creativiteit & ontwerp
Firmware van apparaten extraheren met een logische analysator
Er is een methode ontwikkeld om firmware uit apparaten te extraheren zonder de flashchip fysiek te verwijderen, door een logische analysator te gebruiken om SPI-leesbewerkingen tijdens het opstarten vast te leggen.

Deze techniek maakt firmware-extractie mogelijk door de SPI-bus te monitoren, die wordt gebruikt om firmware te laden van chips zoals de W25Q-serie. Het proces omvat het identificeren, vastleggen en decoderen van de SPI-leesbewerkingen.
Hoewel niet de volledige inhoud van de chip wordt vastgelegd, snuift deze methode op wat de CPU leest, wat een aanzienlijke vooruitgang biedt voor reverse engineering.
De auteur legt de grondbeginselen van SPI-communicatie uit, waarbij wordt gedetailleerd hoe signalen moeten worden geïnterpreteerd met behulp van een logische analysator en datasheets van flashchips. Dit gedeelte dient als een inleiding tot SPI voor diegenen die geïnteresseerd zijn in chipcommunicatie.
Vastgelegde SPI-gegevens worden vervolgens gedecodeerd met Scapy, een Python-tool die doorgaans wordt gebruikt voor netwerkpakketten. Scapy is aangepast om opnamebestanden van logische analysatoren te verwerken en deze om te zetten in afbeeldingsbestanden voor verdere analyse.
Er werd een probleem ontdekt waarbij de geëxtraheerde firmware-image een gat had voor het bestandssysteem. Dit kwam doordat de CPU overschakelt naar een snellere Quad-SPI-modus voor het bestandssysteem, waarbij extra datalijnen worden gebruikt.
Verdere vastlegging en verwerking waren nodig om de Quad-SPI-gegevens aan te pakken. De twee resulterende afbeeldingsbestanden werden samengevoegd tot één bestand met behulp van een 'dd'-commando.
AI-samenvatting op basis van de bron.
Hackaday