Представлен проект удалённого выполнения кода на уровне прошивки на синтезаторе Yamaha PSR-E433 через MIDI-сообщения
Разработчик Анна Антоненко (Anna Antonenko, на Хабре — @portasynthinca3) подробно рассказала в своём техническом блоге, как у неё в рамках процесса обратного инжиниринга получилось запустить удалённое выполнение кода на уровне прошивки на музыкальном синтезаторе Yamaha PSR-E433 через MIDI-сообщения.
Анна Антоненко работает в команда Flipper Devices, занимается разработкой встраиваемых систем и в свободное время развивает операционную систему BOSS (BEAM‑based Operating System with Security).
По информации OpenNET, Антоненко пояснила, что в ходе своих экспериментов над электроникой синтезатора она выявила обфусцированный shell‑интерфейс, позволивший организовать выполнение своего кода на уровне прошивки. Доступ к shell‑интерфейсу осуществляется посредством отправки MIDI‑пакетов с сообщениями SysEx, которые можно передать при подключении синтезатора через порт USB. Полученные в ходе обратного инжиниринга сведения о чипе и прошивках, а также примеры кода и отладочные дампы размещены автором проекта на GitHub.
Интерес к обратному инжинирингу возник у Антоненко несколько лет назад. Она решила почистить внутренности своего синтезатора Yamaha от пыли и заодно удовлетворить своё любопытство, связанное с желанием изучить начинку музыкального устройства.
Анна обнаружила на плате синтезатора чип YAMAHA SWL01U, про который в интернете не удалось найти подробную информацию. Два месяца назад Антоненко нашла в сети руководство по похожей модели синтезатора, в котором была приведена распиновка этого чипа. Анна вновь разобрала синтезатор и начала эксперименты, воспользовавшись имевшимися на плате выводами для отладочного интерфейса JTAG и порта UART.
При помощи отладчика OpenOCD, подключения к JTAG и проведения многочисленных экспериментов,
Читать на habr.com