Якщо ви хочете отримати мікропрограму з секретного пристрою, ви можете витягнути флеш-чіп і опустити його в зчитувач. Але якщо у вас є лише один шанс зробити це правильно, і ви не хочете ризикувати пошкодити пристрій у процесі, фізичне видалення чіпа може здатися набагато привабливішим. Зчитування чіпа не вдалося – тому що, звичайно, так і сталося – тож що залишилося?
Добре, якщо наслідувати приклад [Matthew “wrongbaud” Alt]вашим наступним інструментом може бути логічний аналізатор. У нещодавній публікації [wrongbaud] пояснюється процес виявлення, запису та, нарешті, декодування операцій читання SPI, які використовуються для завантаження програмного забезпечення із загальної мікросхеми флеш-пам’яті W25Q під час завантаження. Він зазначає, що це не ідеальне рішення, тому що врешті-решт ви можете понюхати лише те, що насправді зчитує процесор, не обов’язково весь вміст чіпа, але це великий крок у правильному напрямку, якщо ви виконуєте зворотну обробку в темряві.
Перед розшифровкою отриманих даних, [wrongbaud] він робить все, що може, і руйнує гайки та болти зв’язку SPI. Озброївшись результатами свого логічного аналізатора та таблицею даних для флеш-чіпа, він пояснює, як інтерпретувати різні сигнали в грі.
Навіть якщо вам не надто цікаво витягувати програмне забезпечення із таємничих скриньок, це чудовий посібник щодо роботи SPI та цікаве читання для тих, хто хоче краще зрозуміти, як чіпи взаємодіють один з одним.
Після того, як він охопив основи та передав деякі дані по шині SPI, [wrongbaud] продовжує розшифровку за допомогою Scapy. Потужний інструментарій Python зазвичай пов’язаний з обробкою мережевих пакетів, але, як показано тут, його можна використовувати для інших типів даних. З невеликими маніпуляціями він може пробігти файли, отримані логічним аналізатором, і перетворити їх на файл зображення, готовий до завантаження. binwalk.
Але зачекайте! Тільки коли думаєш [wrongbaud] закінчивши, він помічає дещо дивне — у нього є образ завантажувача та ядро Linux, але є велика прогалина там, де має бути файлова система. Виявляється, потрібно ще трохи попрацювати, тому що перш ніж процесор зможе завантажити файлову систему з чіпа, він швидше отримує доступ до Quad-SPI, що додає до суміші ще два рядки даних. Це означає взяти більше, додатковий цикл обробки та a dd однак однорядковий, щоб об’єднати два файли зображень в один [wrongbaud] нарешті приводить нас туди.
Якщо ви вперше з цим стикаєтеся [wrongbaud]робота», вас чекає задоволення. Від планів зламу апаратного забезпечення до глибоких занурень у окремі методи, як-от впровадження помилок, він створив дивовижний вміст, який майже гарантовано навчить вас чогось нового.