descriptionОписание
Цель: выяснить, как прошивка работает с «хвостом» HDD (последние десятки секторов), и используется ли этот хвост как:
– токен/анти-swap,
– либо как контейнер ключа (eDEK) / параметров шифрования,
– либо вообще как нечто третье.
Входные данные:
бинарный дамп U4.bin (SST25VF010A, 128 КБ);
описание железа (модель 57Y4400, USB диск на INIC-1610 + PIC16F883);
экспериментальные наблюдения:
хвост 32 КБ с «магическими байтами» 25 C9 9C ...;
при смене PIN / admin PIN на новом устройстве содержимое хвоста не меняется (бит-в-бит одинаковые дампы);
иногда изменение байтов в хвосте через SATA приводит к появлению или пропаже LUN.
Задачи:
Базовый реверс прошивки:
настроить в Ghidra/IDA 8051-проект, указать правильную карту памяти (CODE/XDATA/IDATA, внешние регистры);
выявить стартовую точку (reset vector, boot-код);
найти обработчики USB/SATA/ATA, таблицы команд.
Поиск логики чтения хвоста HDD:
найти использование ATA команд 0xEC, 0xC8, 0x25;
отследить где прошивка получает MaxLBA (результат IDENTIFY DEVICE);
найти арифметику вида LBA_tail = MaxLBA - const (например, 0x3F сектора, 32 КБ и т.п.);
найти код, который инициирует чтение именно этого диапазона.
Анализ обработки буфера хвоста:
определить адрес в XDATA / внутренней RAM, куда читается хвост;
проследить дальнейший data-flow:
цикл по буферу с подсчётом суммы/CRC/хеша и последующим сравнением с константой или регистром;
либо цикл копирования байтов в фиксированный диапазон XDATA (предполагаемые MMIO-регистры криптоблока, например 0xB000–0xBFFF).
Поиск связки с AES / криптологикой INIC:
найти функции, настраивающие шифрование (режим, ключ, IV);
выяснить, откуда берутся байты ключа (из хвоста или от внешнего МК по какому-то интерфейсу);
зафиксировать адреса регистров, куда пишется ключ/вектор.
Отчёт / выводы:
текстовое описание найденных функций (адреса, назначение, псевдокод);
схема: «ATA READ → буфер → … → (CRC check / MMIO write)»;
однозначный ответ: используются ли данные хвоста как ключ/IV, или только как проверка/токен;
если есть, отметить любые проверки, которые при несоответствии приводят к отсутствию LUN / блокировке диска.
Что НЕ требуется:
не нужно писать эксплойты, ломать защиту, подбирать PIN и т.д.;
задача — анализ логики прошивки, а не фактический взлом устройства.