Популярное

Музыка Кино и Анимация Автомобили Животные Спорт Путешествия Игры Юмор

Интересные видео

2025 Сериалы Трейлеры Новости Как сделать Видеоуроки Diy своими руками

Топ запросов

смотреть а4 schoolboy runaway турецкий сериал смотреть мультфильмы эдисон
dTub
Скачать

39C3 - The Angry Path to Zen: AMD Zen Microcode Tools and Insights

Автор: media.ccc.de

Загружено: 2026-01-22

Просмотров: 5413

Описание:

[EntrySign](https://bughunters.google.com/blog/54...) opened the door to custom microcode on AMD Zen CPUs earlier this year. Using a weakness in the signature verification we can load custom microcode updates and modify behavior of stock AMD Zen 1-5 CPUs. While AMD has released patches to address this weakness on some CPUs, we can still use unpatched systems for our analysis.

In this talk we cover what we found out about microcode, what we saw in the microcode ROM, the tooling we build, how we worked to find out more and how you can write & test your own microcode on your own AMD Zen systems. We have our tools up on [GitHub](https://github.com/AngryUEFI) for everyone to play around with and hopefully help us understand microcode more than we currently do.

Modern CPUs often translate the complex, user visible instruction set like x86_64 into a simpler, less feature rich internal instruction set. For simple instructions this translation is done by a fast path decoding unit. However some instructions, like `wrmsr` or `rdrand` are too complex to decode that way. These instructions instead are translated using a microcode decoder that can act almost like an execution engine. The microcode decoder still emits internal instructions into the pipeline, but allows for features like conditional branches and calls & returns. All of this logic happens during a single x86_64 instruction and is usually hidden from the outside world. At least since AMD K8, launched in 2003, AMD CPUs allowed updating this microcode to fix bugs made in the original implementation.

Building on our [previous](https://media.ccc.de/v/34c3-9058-ever...) [experience](https://media.ccc.de/v/35c3-9614-insi...) with AMD K8 & K10 microcode and [EntrySign](https://bughunters.google.com/blog/54...) [published](https://media.ccc.de/v/why2025-156-en...) earlier this year, we took a closer look at AMD Zen 1-5 CPUs. We build on top of [Zentool](https://github.com/google/security-re...) to understand more instructions and created a set of tools to easily create microcode patches as well as apply them on CPUs. We can modify the behavior of instructions and observe some usually not visible internal state by supplying our own microcode update.

Like on K8, we extracted the physical ROM on the CPU using an electron microscope to read the hardcoded microcode on a Zen 1 CPU. Using the understanding of the microcode encoding we could then start disassembling the contents and understand how some instructions are implemented. While there are still a lot of things we don't understand, we could follow control flow and analyze algorithms like the XXTEA decryption of the microcode update.

To start off this work, we implemented a set of tools that allow easy testing of microcode updates without the need for a fully featured OS. That way we can run timing tests with low noise and don't risk data corruption if we corrupt a vital instruction. To continue our naming scheme from our work on K8 we dubbed this the AngryTools, all of them available on [GitHub](https://github.com/AngryUEFI). The core components are a UEFI application running from RAM, AngryUEFI, and a Python framework for test writing on a client computer, AngryCAT. AngryUEFI starts on the test system and waits for AngryCAT tests supplied via TCP. These tests usually consist of a microcode update that gets loaded on the target CPU core and a buffer with x64 instructions that get run afterwards. AngryUEFI then sends back information about the test execution. AngryUEFI also recovers most faults caused by invalid microcode, often even allowing reuse of a CPU core after a failed test run. We also added some syscall-like interfaces to support more complex data collection like [IBS](https://reflexive.space/zen2-ibs/).

To make it easier to write custom microcode updates we also implemented [ZenUtils](https://github.com/AngryUEFI/ZenUtils), a set of Python tools. So far we support single line assembly and disassembly based on architecture specification for Zen 1 & 2 with limited support for other Zen architectures. We also include a macro assembler that can create a full microcode update from an assembly-like input file. Later we will also extend ZenUtils with utilities to sign and en/decrypt microcode updates. Currently we rely on Zentool for these tasks.

We also show some basic examples of how microcode programs work, from a simple CString strlen implementation in a single x64 instruction to a [subleq](https://esolangs.org/wiki/Subleq) VM implemented entirely in microcode. These show off the basics of microcode programming, like memory loads & stores, arithmetic and conditional branches. We are also currently looking at other exampl

39C3 - The Angry Path to Zen: AMD Zen Microcode Tools and Insights

Поделиться в:

Доступные форматы для скачивания:

Скачать видео mp4

  • Информация по загрузке:

Скачать аудио mp3

Похожие видео

Купил УБИТЫЙ MacBook за 6000₽. И потерпел ПОРАЖЕНИЕ! Ремонт MacBook Pro 13 2013 a1502

Купил УБИТЫЙ MacBook за 6000₽. И потерпел ПОРАЖЕНИЕ! Ремонт MacBook Pro 13 2013 a1502

Перетест Ai MAX+ 395 в жирном мини-ПК и тест AMD 8060s vs Intel B390

Перетест Ai MAX+ 395 в жирном мини-ПК и тест AMD 8060s vs Intel B390

Google Antigravity: The End of Employees? (Explained)

Google Antigravity: The End of Employees? (Explained)

The Rise of Chinese Memory

The Rise of Chinese Memory

Программирование на ассемблере без операционной системы

Программирование на ассемблере без операционной системы

Plan 9: Not dead, Just Resting, by Ori Bernstein

Plan 9: Not dead, Just Resting, by Ori Bernstein

39C3 - Celestial navigation with very little math

39C3 - Celestial navigation with very little math

ASUS GX10 (NVIDIA DGX Spark): честный тест для инференса нейросетей

ASUS GX10 (NVIDIA DGX Spark): честный тест для инференса нейросетей

Debian: САМЫЙ СТАБИЛЬНЫЙ Linux и ТЁМНАЯ История Создателя

Debian: САМЫЙ СТАБИЛЬНЫЙ Linux и ТЁМНАЯ История Создателя

39C3 - Of Boot Vectors and Double Glitches: Bypassing RP2350's Secure Boot

39C3 - Of Boot Vectors and Double Glitches: Bypassing RP2350's Secure Boot

С атомами что то не так. Нам показывают совсем не то, что есть на самом деле

С атомами что то не так. Нам показывают совсем не то, что есть на самом деле

"please stop" - maintainers

What GPU is the BEST for Linux Gaming?

What GPU is the BEST for Linux Gaming?

Я УДАЛИЛ Claude Code – Вот, что я использую сейчаc

Я УДАЛИЛ Claude Code – Вот, что я использую сейчаc

Building the PERFECT Linux PC with Linus Torvalds

Building the PERFECT Linux PC with Linus Torvalds

Мой опыт перехода с MacOS на Linux | Полный гайд

Мой опыт перехода с MacOS на Linux | Полный гайд

Превращение старого ноутбука в домашний сервер! (2026)

Превращение старого ноутбука в домашний сервер! (2026)

Typst: Современная замена Word и LaTeX, которую ждали 40 лет

Typst: Современная замена Word и LaTeX, которую ждали 40 лет

ОБЫЧНЫЙ VPN УМЕР: Чем обходить блокировки в 2026

ОБЫЧНЫЙ VPN УМЕР: Чем обходить блокировки в 2026

Лучше, чем Windows 11? (И БЕСПЛАТНО)

Лучше, чем Windows 11? (И БЕСПЛАТНО)

© 2025 dtub. Все права защищены.



  • Контакты
  • О нас
  • Политика конфиденциальности



Контакты для правообладателей: infodtube@gmail.com