Автор провел реверс-инжиниринг электросамоката Egret GT, проанализировав его аппаратную часть и прошивку. Исследование началось с изучения мобильного приложения, которое через Bluetooth управляет настройками, отслеживает заряд аккумулятора и обновляет ПО дисплея, контроллера и панели кнопок.
Выяснилось, что самокат передает производителю скрытые метрики: ток двигателя, напряжение аккумулятора и историю зарядок. Автор установил, что VIN устройства задается приложением при подключении, что позволяет имитировать другие модели, однако это не снимает заводские ограничения скорости.
При анализе дисплея выяснилось, что USB-C порт использует два контакта в качестве шины CAN. Для перехвата трафика автор собрал устройство на базе ESP32-C6, SN65HVD230 и MCP2515. Визуализация данных позволила определить идентификаторы сообщений, отвечающих за положение газа, режимы вождения и скорость двигателя.
Для доступа к прошивке автор приобрел запасной контроллер с микроконтроллером APM32E103xCxE. Через порт SWD он выгрузил содержимое флэш-памяти и ОЗУ. Используя Ghidra, автор провел дизассемблирование кода, что позволило полностью задокументировать протоколы обмена данными и логику работы системы.






