From eedd6bdc754e6457f12114c044cd83b36761ad4f Mon Sep 17 00:00:00 2001 From: viktor Date: Fri, 24 Jul 2026 05:17:09 +0900 Subject: [PATCH] =?UTF-8?q?=D0=94=D0=BE=D1=81=D1=82=D0=BE=D0=B2=D0=B5?= =?UTF-8?q?=D1=80=D0=BD=D0=BE=D1=81=D1=82=D1=8C=20=D0=BE=D0=B1=D1=80=D0=B0?= =?UTF-8?q?=D0=B7=D0=BE=D0=B2=20+=20=D0=B2=D0=B5=D1=80=D1=81=D0=B8=D0=B8?= =?UTF-8?q?=20+=20=D0=B3=D1=80=D0=B0=D0=BD=D0=B8=D1=86=D0=B0=20=D1=81?= =?UTF-8?q?=D1=82=D0=B0=D1=82=D0=B8=D0=BA=D0=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Оба образа plaintext/надёжны; .13 vs .32 = 91% блоков различаются (крупный рефакторинг). База ~0x0360_0000. Граница: AMBE(RF Firmware) и ключи EasyFlash NV не в имеющихся файлах -> нужен дамп flash модуля (живая операция при владельце). Статика по безопасному ROI исчерпана. Co-Authored-By: Claude Opus 4.8 Claude-Session: https://claude.ai/code/session_01NikMGoqQWWk9wy2ww2vJAr --- docs/fm100b-firmware-re.md | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/docs/fm100b-firmware-re.md b/docs/fm100b-firmware-re.md index b0c9113..eec6f2d 100644 --- a/docs/fm100b-firmware-re.md +++ b/docs/fm100b-firmware-re.md @@ -105,6 +105,23 @@ Bootloader | Application | RF Firmware | NET info Вывод: модуль — универсальный Beken-378x DMR/intercom SoC, используемый разными брендами (Radtel/Kirisun/iRadio). Многое из этого можно дёргать по 0x68 через мост (осторожно — только Query/Read вслепую). +## Достоверность образов и версии +- Оба образа (.13 2025-04, .32 2026-01) — plaintext, надёжны (в обоих `beken378`/`EasyFlash`/партиции/ + `check failed`). Встречаются одиночные не-ASCII байты в строках (в разных местах у .13 и .32) — + косметика/артефакт дампа, на структуру выводов не влияет. +- Поблочный diff .13↔.32: **91% блоков различаются** — крупный рефакторинг прошивки за 9 месяцев + (не мелкий патч). Идентичны лишь ~32 блока 4КБ. + +## Граница статического реверса (что БЕЗ дампа/живой рации недостижимо) +Достигнуто статикой: чип (Beken 378x), архитектура, разделы, API (172 cmd), «вокодер»=WebRTC, +протокол калибровки 0x68 (реверснут, работает). НЕ достаётся из имеющихся файлов: +- **AMBE/DMR-baseband** — в разделе **RF Firmware**, которого у нас НЕТ (нужен дамп flash модуля). +- **Ключи/значения EasyFlash NV** — в разделе NET info (нужен дамп) либо глубокий Thumb-2 disasm + ef_default_env (тяжело, без символов). +- **База загрузки** ≈0x0360_0000 (по векторам), но строки — PC-relative, точные xref требуют disasm. +Вывод: следующий разблокирующий шаг — **дамп flash модуля**, а это ЖИВАЯ операция (загрузчик Beken/ +download-режим) при владельце, с риском. Пока владелец недоступен — статика исчерпана по безопасному ROI. + ## Реальные следующие шаги (реверс+правка+тест) 1. **API-поверхность:** извлечь полный список ATC_*/SP*-команд (это протокол 0x68 между AT32 и модулем) — карта того, чем вообще можно управлять. Уже частично в docs/fm100b-commands.md.