BSL.EXPERT // HARDWARE & IoT ENGINEERING STATUS: AVAILABLE FOR PROJECTS
IoT

Реверс-инжиниринг контроллера e-bike

Восстановлена схема 3-фазного 48V контроллера и реконструирована прошивка из бинарника: Ghidra → декомпиляция → маппинг регистров → компилируемый APM32 + FreeRTOS проект.
Reverse EngineeringGhidraAPM32FreeRTOSModbus RTUBLDCBinary AnalysisAltium

Ключевые метрики

Binary→C
прошивка восстановлена из бинарника
Ghidra
дизассемблирование и декомпиляция
48V 3Ph
силовая схема BLDC-контроллера восстановлена
Modbus
протокол задокументирован — регистры, команды, формат

Возможности системы

Реверс схемотехники
  • 3-фазный H-мост: MOSFET IRFB3077 (48В), драйверы затворов IR2300B
  • Цепи датчиков Холла для определения положения ротора
  • Периферия: газ (ADC), тормоз, PAS, датчик скорости
  • UART-порты: дисплей и замок втулки
  • Полный Altium-проект восстановленной схемотехники
Реконструкция прошивки
  • Загрузка бинарника в Ghidra: APM32 (Cortex-M3), дизассемблирование
  • Декомпиляция в псевдо-C с сырыми адресами регистров
  • Построение карты регистров: физический адрес → HAL-периферия
  • Перевод декомпилированного кода на STM32 HAL
  • Восстановление архитектуры FreeRTOS: задачи, очереди, семафоры
  • Итог: компилируемый C-проект на APM32 HAL, воспроизводящий оригинал
Реверс протокола Modbus RTU
  • Полная таблица регистров контроллера
  • Функциональные коды: чтение телеметрии, запись параметров
  • Форматы команд и ответов задокументированы
  • Bilingual-документация v1.1.12 (RU/EN)

Описание

**Реверс схемотехники**

Полное восстановление схемотехники 3-фазного контроллера BLDC-мотора на 48В без исходной документации: силовой каскад (MOSFET H-мосты по каждой фазе, драйверы затворов), цепи датчиков Холла, тормоз, газ, PAS, UART-порты дисплея и замка. Результат — полный Altium-проект восстановленной схемы.

**Реконструкция прошивки из бинарного файла**

Наиболее технически сложная часть проекта. Бинарный образ прошивки (APM32 — китайский аналог STM32, Cortex-M3) загружен в Ghidra для дизассемблирования и декомпиляции. Декомпилированный псевдо-C содержит сырые обращения к регистрам периферии по физическим адресам — без имён переменных, без структур, без контекста.

Восстановление велось в несколько этапов: построение карты регистров (физический адрес → название периферии HAL), составление плана перевода декомпилированного кода на HAL-вызовы, идентификация задач FreeRTOS и их логики, восстановление протокола Modbus RTU (задокументирован bilingual-протокол v1.1.12). Итог — компилируемый C-проект на базе STM32 HAL + FreeRTOS, структурно и функционально воспроизводящий оригинальную прошивку.

**Реверс протокола**

Полное восстановление Modbus RTU протокола контроллера: таблица регистров, функциональные коды, форматы команд и телеметрии. Задокументировано в формате, пригодном для разработки совместимых клиентов.

Скриншоты

Реверс-инжиниринг контроллера e-bike — 1
Реверс-инжиниринг контроллера e-bike — 2
Реверс-инжиниринг контроллера e-bike — 3
Реверс-инжиниринг контроллера e-bike — 4
Реверс-инжиниринг контроллера e-bike — 5
Реверс-инжиниринг контроллера e-bike — 6
Реверс-инжиниринг контроллера e-bike — 7