Home Homebrew GaryOderNichts svela i segreti della sveglia Nintendo Alarmo: hacking, reverse engineering e...

GaryOderNichts svela i segreti della sveglia Nintendo Alarmo: hacking, reverse engineering e firmware personalizzati

136
0

Il developer GaryOderNichts è riuscito a esaminare a fondo Alarmo, la piccola sveglia a tema Nintendo che permette di svegliarsi con suoni tratti dai videogiochi Nintendo preferiti.

La sveglia, dal costo di circa 99 euro, è dotata di un display LCD da 2,8 pollici, una rotella multifunzione con LED RGB e un sensore mmWave da 24 GHz che permette di rilevare i movimenti nelle vicinanze. Inoltre, include il Wi-Fi a 2,4 GHz per scaricare aggiornamenti e nuovi temi.

Il disassemblaggio di Alarmo

Curioso di scoprire il funzionamento interno, Gary ha smontato Alarmo, trovando componenti interessanti: un microcontrollore STM32H730ZBI6 e una memoria eMMC da 4GB.

Tramite debug via SWD, Gary è riuscito a esplorare la memoria e i registri di Alarmo, anche se ha incontrato un ostacolo significativo: il meccanismo di protezione della lettura (RDP), che impedisce di leggere la memoria flash interna una volta attivato un debugger.

Per aggirare questo sistema, Gary ha cercato di ottenere esecuzione di codice senza connettere un debugger, sfruttando le funzionalità di debug della porta STM32H7 per caricare payload temporanei in memoria.

Reverse engineering del Firmware

Grazie alle indicazioni di Spinda, un’altra sviluppatrice attiva su X, Gary ha scoperto che la maggior parte del firmware risiede nell’area di memoria OCTOSPI2, tipicamente usata per la comunicazione SPI, ma in questo caso configurata come 32 MiB di RAM esterna HYPERRAM.

Tuttavia, per decifrare il contenuto dei file presenti sulla memoria eMMC, Gary ha dovuto affrontare un ulteriore ostacolo: la crittografia AES-128-CTR, gestita da un processore CRYP integrato nel microcontrollore.

Dopo aver generato un flusso di chiave a partire dal CRYP, Gary è riuscito a decifrare i file della sveglia, ottenendo così accesso a temi, file di sistema e loader secondari.

Accesso alla modalità USB e payload personalizzati

Una scoperta interessante riguarda un file che prende il nome di 2ndloader.bin, si tratta di un loader secondario memorizzato sull’eMMC che può avviarsi in modalità USB e configurare Alarmo come dispositivo di archiviazione di massa.

Tenendo premuti i tre pulsanti della sveglia durante l’avvio, Alarmo attiva questa modalità, permettendo il caricamento di un file binario cifrato, bypassando ogni controllo sulla firma del firmware.

In questo modo, Gary è riuscito a caricare un payload personalizzato, visualizzando un’immagine di un gatto come prova.

L’hack del Nintendo Alarmo ha permesso a Gary di ottenere un controllo significativo del dispositivo, dimostrando l’accessibilità della piattaforma per modifiche avanzate.

Grazie alla vulnerabilità individuata nel 2ndloader e al recupero della chiave AES, esiste ora una potenziale strada per lo sviluppo di firmware personalizzati, sebbene alcuni aspetti, come il codice dell’area utente sicura, rimangano inaccessibili.

L’intero progetto e il codice sorgente dei payload utilizzati per questa esplorazione sono stati pubblicati da Gary sulla propria repository GitHub.

Fonte: garyodernichts.blogspot.com

LASCIA UN COMMENTO

Per favore inserisci il tuo commento!
Per favore inserisci il tuo nome qui

Questo sito usa Akismet per ridurre lo spam. Scopri come i tuoi dati vengono elaborati.