У меня есть фитнес-браслет Mi Band 3, и я уже давно пытаюсь понять, как написать свою прошивку под него (в виде игры в тетрис, змейку или что-то в этом роде). Проблема заключается в том, что:
1) В отличие от прикладного софта под различные пользовательские ОС вроде Linux или Windows, прошивка с форматом файла .fw не определяется IDA Pro (или radare2) автоматически (то есть архитектуру процессора, под которую она написана, надо указывать вручную), и для того, чтобы корректно вскрыть прошивку, необходимо указать процессор, порядок байтов и стартовый адрес с размером. Микроконтроллер, который встроен в Mi band 3, я нашел (когда путем гугления наткнулся на одну статью), понял, что процессор там ARM Cortex-m0, но я не могу понять, какие стартовые адреса надо указывать. Что это вообще, это адреса в постоянной памяти, из которых бинарь выгружается в оперативную? Я смотрел в разделе "Memory map" и брал оттуда адреса сегментов ROM, flash и т.д, но каждый раз дизассемблер выдавал сплошные ряды команд наподобие этой: "db 0xf5", и иногда строки с форматирующими символами, указывающими, что все это написано на С. Пробовал также анализировать прошивку в binwalk, и получилось следующее: никаких сегментов и форматов файла он не обнаружил, но зато смог выдать график энтропии. Видимо, теперь надо как-то пытаться расшифровать бинарник.