IoT IoT
Реверс-инжиниринг контроллера e-bike E-bike Controller Reverse Engineering
Восстановлена схема 3-фазного 48V контроллера и реконструирована прошивка из бинарника: Ghidra → декомпиляция → маппинг регистров → компилируемый APM32 + FreeRTOS проект. 3-phase 48V controller schematic recovered and firmware reconstructed from binary: Ghidra → decompilation → register mapping → compilable APM32 + FreeRTOS project.
Reverse EngineeringGhidraAPM32FreeRTOSModbus RTUBLDCBinary AnalysisAltium
Ключевые метрики
Binary→C
прошивка восстановлена из бинарника firmware reconstructed from binary
Ghidra
дизассемблирование и декомпиляция disassembly and decompilation
48V 3Ph
силовая схема BLDC-контроллера восстановлена 48V 3-phase BLDC controller schematic recovered
Modbus
протокол задокументирован — регистры, команды, формат protocol documented — registers, commands, format
Возможности системы
Реверс схемотехники PCB Reverse Engineering
- 3-фазный H-мост: MOSFET IRFB3077 (48В), драйверы затворов IR2300B 3-phase H-bridge: MOSFET IRFB3077 (48V), IR2300B gate drivers
- Цепи датчиков Холла для определения положения ротора Hall sensor circuits for rotor position sensing
- Периферия: газ (ADC), тормоз, PAS, датчик скорости Peripherals: throttle (ADC), brake, PAS, speed sensor
- UART-порты: дисплей и замок втулки UART ports: display and hub lock
- Полный Altium-проект восстановленной схемотехники Complete Altium project of the recovered schematic
Реконструкция прошивки Firmware Reconstruction
- Загрузка бинарника в Ghidra: APM32 (Cortex-M3), дизассемблирование Binary loaded into Ghidra: APM32 (Cortex-M3) disassembly
- Декомпиляция в псевдо-C с сырыми адресами регистров Decompilation to pseudo-C with raw register addresses
- Построение карты регистров: физический адрес → HAL-периферия Register map built: physical address → HAL peripheral
- Перевод декомпилированного кода на STM32 HAL Decompiled code translated to STM32 HAL
- Восстановление архитектуры FreeRTOS: задачи, очереди, семафоры FreeRTOS architecture recovered: tasks, queues, semaphores
- Итог: компилируемый C-проект на APM32 HAL, воспроизводящий оригинал Result: compilable C project on APM32 HAL, replicating original behavior
Реверс протокола Modbus RTU Modbus RTU Protocol RE
- Полная таблица регистров контроллера Complete controller register map
- Функциональные коды: чтение телеметрии, запись параметров Function codes: telemetry read, parameter write
- Форматы команд и ответов задокументированы Command and response formats documented
- Bilingual-документация v1.1.12 (RU/EN) Bilingual documentation 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 протокола контроллера: таблица регистров, функциональные коды, форматы команд и телеметрии. Задокументировано в формате, пригодном для разработки совместимых клиентов.
**PCB Reverse Engineering**
Full schematic recovery of a 3-phase 48V BLDC motor controller without original documentation: power stage (MOSFET H-bridges per phase, gate drivers), Hall sensor circuits, brake, throttle, PAS, UART ports for display and lock. Result — complete Altium project of the recovered schematic.
**Firmware Reconstruction from Binary**
The most technically demanding part of the project. The firmware binary image (APM32 — Chinese STM32 alternative, Cortex-M3) was loaded into Ghidra for disassembly and decompilation. The decompiled pseudo-C contains raw peripheral register accesses by physical addresses — no variable names, no structures, no context.
Reconstruction proceeded in stages: building a register map (physical address → HAL peripheral name), drafting a translation plan from decompiled code to HAL calls, identifying FreeRTOS tasks and their logic, recovering the Modbus RTU protocol (bilingual protocol v1.1.12 documented). Result — a compilable C project based on STM32 HAL + FreeRTOS, structurally and functionally replicating the original firmware.
**Protocol Reverse Engineering**
Full recovery of the controller's Modbus RTU protocol: register map, function codes, command and telemetry formats. Documented in a format suitable for developing compatible clients.