Энтузиасты дизассемблировали микрокод Intel 80386 и создали открытый процессор z386 Команда реверс-инженеров успешно воссоздала и расшифровала оригина…
Команда реверс-инженеров успешно воссоздала и расшифровала оригинальный микрокод легендарного процессора Intel 80386, который ранее считался «черным ящиком». Бинарный образ ПЗУ восстановили по высокоразрешающим фотографиям кристалла с привлечением нейросетей, а логику команд определили через трассировку физических соединений. Выяснилось, что в 80386 абсолютно все инструкции x86 обрабатываются через микрокод, который не выполняет вычисления сам, а лишь конфигурирует аппаратные блоки. Все наработки проекта опубликованы на GitHub.
В процессе анализа исследователи обнаружили аппаратную уязвимость в логике проверки прав ввода-вывода (IO permission bitmap). При обращении к портам порциями по 4 байта процессор проверял права только для первых трех байтов, оставляя четвертый без контроля. Это теоретически позволяло защищенному софту обходить ограничения ядра ОС.
На базе этих данных на языке SystemVerilog был разработан открытый процессор z386 для FPGA. Авторы воссоздали оригинальные блоки чипа, которыми теперь управляет подлинный микрокод Intel. Эмулируемый процессор работает на частоте около 70 МГц и полностью совместим со старым софтом.