The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

Выполнено дизассемблирования микрокода i386 и создан открытый CPU z386

23.05.2026 21:43 (MSK)

Энтузиасты смогли успешно извлечь и дизассемблировать микрокод процессора Intel 80386, который из-за отсутствия документации считался "чёрным ящиком". Бинарный образ микрокода был воссоздан с привлечением AI по фотографиям кристалла в высоком разрешении, а логика работы разобрана через трассировку соединений на кристалле. Постепенно были определены структура микрокоманд (μ-ops), поля, порядок исполнения и маркеры конца инструкций. Наработки проекта опубликованы на GitHub как общественное достояние.

Выявлено, что в CPU 80386 каждая инструкция полностью исполняется через микрокод, в то время как в 8086 и современных процессорах часть инструкций обрабатывается напрямую. Кроме того, в отличие от процессоров 8086, в 80386 микрокод не реализует алгоритмы напрямую, а в основном настраивает аппаратные ускорители (умножитель, делитель, быстрый сдвиг, PTU (Protection Test Unit)).

В ходе исследования также была обнаружена возможная проблема с безопасностью при обработке битовой карты прав доступа к вводу/выводу (IO permission bitmap): при 4-байтовом обращении к портам проверялись биты прав доступа только для первых 3 байтов, а доступ к 4-му байту не проверялся, что теоретически допускало обращение к аппаратным регистрам, доступ к которым должен был быть запрещён.

На основе опубликованного микрокода разработан открытый CPU z386, реализованный на языке SystemVerilog и работающий с использованием FPGA. Вместо реализации каждой инструкции в форме отдельного RTL (Register-transfer level) в z386 реализованы аппаратные структуры, которыми управляет оригинальный микрокод. Производительность подготовленной реализации соответствует быстрому 386 ПК (~70MHz). Под управлением z386 удалось успешно запустить DOS 6/7, DOS/4GW, DOS/32A и игры, такие как Doom и Cannon Fodder.

  1. Главная ссылка к новости (https://www.reenigne.org/blog/...)
  2. OpenNews: Атака TSA, приводящая к утечке информации из микроархитектурных структур CPU AMD
  3. OpenNews: Google опубликовал инструментарий для анализа и изменения микрокода AMD
  4. OpenNews: CPU AMD Zen 5 подвержены уязвимости, допускающей изменение микрокода и обход изоляции SEV-SNP
  5. OpenNews: Intel устранил все замечания в новой лицензии на микрокод
  6. OpenNews: Опубликован инструментарий для дешифровки микрокода Intel
Лицензия: CC BY 3.0
Наводку на новость прислал Artem S. Tashkinov
Короткая ссылка: https://opennet.ru/65513-cpu
Ключевые слова: cpu, 386
При перепечатке указание ссылки на opennet.ru обязательно


Обсуждение (38) Ajax | 1 уровень | Линейный | +/- | Раскрыть всё | RSS
  • 1.1, Аноним (1), 21:45, 23/05/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    Никак не могу понять, то что они сделали это хорошо, полезно или что?
     
     
  • 2.3, Аноним10084 и 1008465039 (?), 21:51, 23/05/2026 [^] [^^] [^^^] [ответить]  
  • +7 +/
    Они сделали это! Вот и всё
     
     
  • 3.23, Аноним (23), 22:53, 23/05/2026 [^] [^^] [^^^] [ответить]  
  • +/
    Они вскрыли одну из старейших дыр: "... допускало обращение к аппаратным регистрам, доступ к которым должен был быть запрещён".
     
     
  • 4.27, Аноним10084 и 1008465039 (?), 22:59, 23/05/2026 [^] [^^] [^^^] [ответить]  
  • +/
    И ведь получается, что если это уязвимость микрокода, то потенциальный эксплоит будет работать строго на 386 оригинальном камне, но не в эмуляторе
     
     
  • 5.30, Аноним (30), 23:15, 23/05/2026 [^] [^^] [^^^] [ответить]  
  • +/
    В эмуляторах предусмотреть опцию --enable-iop-backdoor
     
  • 2.8, AmDr (?), 22:08, 23/05/2026 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Обратный инжиниринг.
    Вот попытаются люди понять, как работали кнопочные телефоны, вот применят Ии, и станут выпускать, кнопочники, наподобии Nokia8110, сделав их пиком моды.
     
     
  • 3.31, Аноним (30), 23:22, 23/05/2026 [^] [^^] [^^^] [ответить]  
  • +/
    Только вот сети 2G в Европе уже начали сворачивать. К сожалению, и в РФ тоже начнут. Но можно же код для обработки 2G заменить на код 4G, стащенный с Baseband смартфонов.
     
  • 2.10, Ширламырла (?), 22:14, 23/05/2026 [^] [^^] [^^^] [ответить]  
  • +7 +/
    Кто-то вышивает крестиком. Кто-то мастерит и разукрашивает солдатиков. Кто-то ездит на рыбалку или охоту. А кто-то просто бухает.

    Если заниматься от всей души и увлеченно, то результаты впечатляют.

    Эти вот замутили такое. Молодцы, черт их дери!

     
     
  • 3.28, Аноним (28), 23:05, 23/05/2026 [^] [^^] [^^^] [ответить]  
  • +/
    > А кто-то просто бухает.
    > Если заниматься от всей души и увлеченно, то результаты впечатляют.

    Тут просто нечего возразить :)

     
  • 2.16, Tron is Whistling (?), 22:26, 23/05/2026 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Да не, есть в этом определённая ценность.
    Я как архитектурник, всё гадал, почему у интела вылез P-Pro в итоге который на микрокоде базировался. А вот оказывается заложено было ещё в i386, только потом пытались сделать монолит, но видимо на частотах пня стало понятно, что никак. То, что понятно, было понятно, а вот откуда взялась такая красивая идея с микрокодом так быстро... с ней давно экспериментировали.
     
     
  • 3.17, Tron is Whistling (?), 22:35, 23/05/2026 [^] [^^] [^^^] [ответить]  
  • +1 +/
    И тоже примерно можно понять, как оно случилось.

    Монолит 386 с его кучей линий оказался слишком сложным для целостного полуручного дизайна - и то есть для упрощения задачи решили плюнуть и пожертвовать временем выполнения операций, привернув транслятор из x86 во VLIW.

    Потом тот самый 386 двинул технологии проектирования, и автоматизированное проектирование позволило сделать 486 более монолитом, расширив число исполнительных модулей. Микрокод и тут пригодился, но всё равно ещё применялся только как по сути прямая трансляция x86 во VLIW. P5 стал верхом этой архитектуры, где аж порядка 90 бит во внутренней управляющей структуре.

    А вот когда начали дизайнить P6 - упёрлись в кучу ошибок. И решили во-первых сделать обновляемый микрокод, во-вторых вместо прямой трансляции во VLIW сделали наконец-то собственно пайплайн для этого микрокода, эдакий промежуточный RISC.

    Меня смущал именно переход от внутреннего VLIW к RISC в течение такого короткого времени, но если полная трансляция началась ещё с 386 - тогда понятно.

     
  • 3.19, Tron is Whistling (?), 22:38, 23/05/2026 [^] [^^] [^^^] [ответить]  
  • +/
    Ну и понятно теперь почему вялые попытки на VLIW потом ещё случались, но умерли.
    По сути VLIW умер с линейкой P5. Экспериментировали с ним начиная с 386, но в итоге в P6 отказались.
     
  • 2.29, Аноним (30), 23:12, 23/05/2026 [^] [^^] [^^^] [ответить]  
  • +/
    Полезно для разработчиков эмуляторов CPU: QEMU, felix86, Box64
     
  • 2.33, Аноним (33), 23:26, 23/05/2026 [^] [^^] [^^^] [ответить]  
  • +/
    Это не для тебя.
     
  • 2.39, жабабыдлокодер (ok), 23:39, 23/05/2026 [^] [^^] [^^^] [ответить]  
  • +/
    Когда человек занимается изучением древнего процессора, он не грабит, не убивает и не пытается свергнуть правительство.
     

  • 1.2, A.Stahl (ok), 21:47, 23/05/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    А просто попросить эти данные у Интела нельзя? Сомневаюсь, что это какая-то "коммерческая тайна".
     
     
  • 2.4, Аноним10084 и 1008465039 (?), 21:52, 23/05/2026 [^] [^^] [^^^] [ответить]  
  • +/
    Ну MS исходники древних MS DOSов открывает со скрипом, Штеуд тоже мб упрется. Хотя как будто и впрямь больших премудростей тут нет, и клоны 386 и делали, и вроде даже ещё и делают для ретро штук
     
     
  • 3.6, Аноним (6), 21:59, 23/05/2026 [^] [^^] [^^^] [ответить]  
  • +/
    Они ещё "недавно" на МКС использовались, может есть ещё действующее оборудование:
    https://opennet.ru/53083-falcon9
     
     
  • 4.35, Аноним (30), 23:29, 23/05/2026 [^] [^^] [^^^] [ответить]  
  • +/
    Если учесть, что базовый модуль МКС был смонтирован на орбите в 1998-м.
     
  • 2.14, Ширламырла (?), 22:19, 23/05/2026 [^] [^^] [^^^] [ответить]  
  • +/
    Подойди к рыбачку с удочкой и задай вопрос: а чё? В магазине купить нельзя?

    Тут примерно тоже самое.

    Это не потребность. Это такой спорт.

     
  • 2.24, Аноним (24), 22:56, 23/05/2026 [^] [^^] [^^^] [ответить]  
  • +/
    Нельзя. Точнее, попросить можно, и они может и рады бы рассказать, показать, пообщаться, поделиться историями как оно бывало, но пошлют лесом. Почему -- объяснит их главный, основной заказчик, министерство войны. Конкретно, на модифицированных 80386 до сих пор летают истребители, работают радары, сонары, и окружающая их техника. А вот реверсить запретить невозможно. Кроме того, это весьма увлекательное занятие, но это детали.
     
  • 2.34, Аноним (30), 23:27, 23/05/2026 [^] [^^] [^^^] [ответить]  
  • +/
    Ну поробуй попроси у Microsoft исходники Windows 95. Не, ну я понимаю, что лет через двадцать они и сами их выложат, но сейчас...
     

  • 1.5, Аноним (6), 21:56, 23/05/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    for fun почему бы и нет:
    https://en.wikipedia.org/wiki/I386
     
  • 1.9, Аноним (9), 22:12, 23/05/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    А по современней никак нельзя?
     
     
  • 2.20, Аноним (6), 22:41, 23/05/2026 [^] [^^] [^^^] [ответить]  
  • +/
    >А по современней никак нельзя?

    Так про актуальные и действующие никто не даст опубликовывать.
    Только официальные данные:
    https://www.techpowerup.com/review/intel-panther-lake-technical-deep-dive/2.ht

     
  • 2.25, Аноним (24), 22:57, 23/05/2026 [^] [^^] [^^^] [ответить]  
  • +/
    А оборудование и лоеров ты проспонсируешь?
     
  • 2.32, Аноним (32), 23:23, 23/05/2026 [^] [^^] [^^^] [ответить]  
  • +/
    Там амд уже "опубликовал" ключи для своего микрокода, так что вирусы теперь прямо в микрокоде процессора работают.
     
  • 2.37, Аноним (30), 23:36, 23/05/2026 [^] [^^] [^^^] [ответить]  
  • +/
    Легендарный Core 2 Duo.
     

  • 1.11, Tron is Whistling (?), 22:16, 23/05/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • +3 +/
    "при 4-байтовом обращении к портам проверялись биты прав доступа только для первых 3 байтов, а доступ к 4-му байту"
    Его и не требовалось проверять, потому что доступ к устройствам осуществляется с выравниванием и размером записи. Если доступ невыровненный - i386 разобьёт это на несколько циклов шины, и каждый своё проверит. Если доступ выровненный - последний байт проверять вообще не требуется, потому что если он понадобился - значит устройство ожидает 32-битной записи на выровненный номер порта, и весь порт целиком открыт. 3 байт проверяется, чтобы определить, доступны ли все 32 бита в операции, а не только 16.
     
     
  • 2.12, Tron is Whistling (?), 22:18, 23/05/2026 [^] [^^] [^^^] [ответить]  
  • +/
    Предположить устройство, использующее схему доступа AABC (выравнен), где A - 16-битный, а у B и C при этом разные пермишны, и B разрешён, а C запрещён - очень сложно.
     
     
  • 3.13, Tron is Whistling (?), 22:19, 23/05/2026 [^] [^^] [^^^] [ответить]  
  • +/
    (да ещё чтобы при этом была вот так доступна 32-битная запись во все 4 с первого адреса - это вообще нереал, устройство с 16-битным AA при 32-битном обращении запишет только AA в лучшем случае)
     

  • 1.15, Bottle (?), 22:25, 23/05/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    А как ИИ тут помог? Из новости непонятно - эти дорожки что ли аппаратно логику микрокода реализуют?
    Абзац из новости по ссылке:
    Some years later, I was talking to GloriousCow and Smartest Blob (possibly amongst others) on Discord and they mentioned that it would be interesting to get high resolution images of the 80386 die and try to extract the microcode from it. I mentioned that the first part had already been done but that turning the image into a binary blob and a binary blob into intelligible microcode seemed too hard. Well, they may have taken that as a bit of a challenge - they threw various bits of image processing, neural networks, and human-aided automation at the problem and a few days later had the binary blob extracted from the image and cross-checked

    Т.е. непонятна роль нейронок, они могли их применять в качестве альтернативного поискового движка.

     
     
  • 2.18, Tron is Whistling (?), 22:37, 23/05/2026 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Скорее их применяли для предобработки картинок.
     
  • 2.26, Аноним (23), 22:59, 23/05/2026 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > А как ИИ тут помог?

    Сейчас любой фотошопный фильтр называют "ИИ".

     

  • 1.21, Аноним (21), 22:42, 23/05/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    >Выявлено, что в CPU 80386 каждая инструкция полностью исполняется через микрокод

    То есть, 80386 заменой микрокода можно переквалифицировать хоть в пентиум, хоть в armv7. В теории. За вычетом регистров.

     
     
  • 2.22, IdeaFix (ok), 22:48, 23/05/2026 [^] [^^] [^^^] [ответить]  
  • +/
    Нет. Больше скажу, Трансмету Крузо нельзя по факту ничего кроме х86 заставить "эмулировать" :)
     
  • 2.36, Аноним (30), 23:32, 23/05/2026 Скрыто ботом-модератором     [к модератору]
  • +/
     

  • 1.38, rm1 (?), 23:38, 23/05/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    AI даже сюда добрался бесполезные дыры в безопасности искать.
     

     Добавить комментарий
    Имя:
    E-Mail:
    Текст:



    Партнёры:
    PostgresPro
    Inferno Solutions
    Hosting by Hoster.ru
    Хостинг:

    Закладки на сайте
    Проследить за страницей
    Created 1996-2026 by Maxim Chirkov
    Добавить, Поддержать, Вебмастеру