Реверс-инжиниринг электросамоката и новая прошивка для него на Rust
Производитель Egret GT утверждает, что разъём USB-C на дисплее нужен только для зарядки телефонов. Автор из спортивного интереса купил коммутационную плату USB-C, проверил осциллографом каждый контакт и обнаружил, что два из них используются как шина CAN в нарушение стандарта. Дальше начался классический реверс: сниффинг трафика, дамп прошивки контроллера двигателя и модуля дисплея через SWD, разбор всего в Ghidra.
Внутри нашлось много интересного. Обновление прошивки на самокате идёт по CAN без криптографии, а весь основной жизненный цикл обновления располагается внутри одной функции загрузчика. Это значит, что модифицировать прошивку любого самоката можно без аутентификации. К этому моменту у автора уже накопилось достаточно материала, чтобы написать свою прошивку с нуля.
Посмотрим, что получилось из этой затеи и как на Rust собрать GUI для микроконтроллера с 32 КБ ОЗУ.
Post #69556
16.1K

- 😁 43
- 👍 21
- ❤ 14
- 🔥 8
- 🤔 7
- ❤🔥 4
- 🤝 4
- 😘 3
- 😎 3
- 🙏 1