
За последние несколько лет рынок наполнился огромным количеством новых процессорных чипов из Поднебесной — в частности, на базе стандарта RISC-V, со своими собственными реализациями ядер и расширениями.
Вот и наши эксперты, которым нужно было исследовать безопасность не особо известного микроконтроллера, столкнулись с тем, что не могут проанализировать прошивку устройства, поскольку IDA Pro не имеет поддержки ряда специфических инструкций и кастомных расширений.
Поэтому пришлось:
— пройти квест по определению, что это за инструкции; оказалось, что они относятся к расширению P Extension (оно же Packed SIMD Extension);
— на основе раннего черновика спецификации P Extension написать декодер для этих инструкций и подружить его с IDA Pro;
— разработать лифтер для правильной генерации псевдокода (без ассемблерных вставок и пропущенных операций).
Подробности этого приключения по улучшению инструментария — в статье “От скалярной тоски к SIMD-эйфории: как подружить IDA Pro с инструкциями RISC-V P Extension”.
