Skip to content
KitploitKITPLOIT
ToolsBlog
Submit
ToolsBlog
Submit

Hacking, PenTest, and Cybersecurity Tools for Your Security Arsenal!

Kitploit is a directory of hacking, cybersecurity, and pentesting tools. Discover the latest project updates to find vulnerabilities, analyze systems, automate testing, and strengthen your security.

··Feeds·Contact·Privacy·© 2026 Kitploit

Tool Directory

Categories

View all categories
Loading categories
MicrocodeDecryptor | Kitploit
Tools/GitHubGitHub/chip-red-pill/microcodedecryptor
Reverse EngineeringCryptographyHardware SecurityBinary AnalysisFirmware Analysis
GitHubchip-red-pill/microcodedecryptor

MicrocodeDecryptor

View Repository
1.5k1144 years agoReviewed by Kitploit

Most Popular

View all →

Discover the most used tools by our community.

Explore all tools

Browse our collection of tools

View all tools →
Share

Disclaimer

All information is provided for educational purposes only. Follow these instructions at your own risk. Neither the authors nor their employer are responsible for any direct or consequential damage or loss arising from any person or organization acting or failing to act on the basis of information contained in this page.

Description

At the beginning of 2020, we discovered the Red Unlock technique that allows extracting Intel Atom Microcode. We were able to research the internal structure of the microcode and then x86 instruction implementation. Also, we recovered a format of microcode updates, algorithm and the encryption key used to protect the microcode (see RC4).

FAQ

  1. Can I make a custom microcode update?

No, you can't. Only decryption is supported, because microcode has an RSA signature for integrity protection.

  1. What kind CPUs are supported?

A microcode update decryption key depends from CPU generation. We've extracted keys for Intel Gemini Lake (Goldmont Plus microarchitecture) and Intel Apolo Lake (Goldmont microarchitecture) generation. See List of Supported CPUs

  1. How you had extracted the keys?

Using vulnerabilities in Intel TXE we had activated undocumented debugging mode called red unlock and extracted dumps of microcode directly from the CPU. We found the keys and algorithm inside.

  1. Where can I find more information about it?

See our talks Chip Red Pill: How We Achived to Execute Arbitrary Microcode Inside Intel Atom CPUs from OffensiveCon22.

Python

All our scripts are written on Python. We recommend using Python 3. The scripts require pycryptodome packet. To install pycryptodome, run the following command:

root@kitploit:~
pip3 install pycryptodome

Decrypting Microcode Update

Run the script dec_uUpd_Atom_apl.py for Apolo Lake CPUs:

root@kitploit:~
C:\microcode>py -3 dec_uUpd_Atom_apl.py cpu506C9_plat03_ver00000040_2020-02-27_PRD_2FC3D618_.bin
Hash matched at length 0x3E00 (15872)
Data entropy: 6.898306

Run the script dec_uUpd_xu_Atom_glp.py for Gemini Lake CPUs:

root@kitploit:~
C:\microcode>py -3 dec_uUpd_xu_Atom_glp.py cpu706A8_plat01_ver00000018_2020-06-09_PRD_1D9A5DFE.bin
Patch hash matched: enc size: 0x3480
Patch data entropy: 6.438890
XuCode hash matched: size: 0xed40
XuCode data entropy: 7.752765

Unpacking decrypted XuCode (for Goldmont Plus only)

Run the script XuUnp.py for Goldmont Plus CPUs:

root@kitploit:~
C:\microcode>py -3 XuUnp.py cpu706A8_plat01_ver00000018_2020-06-09_PRD_1D9A5DFE.bin.xu.dec
Processing cpu706A8_plat01_ver00000018_2020-06-09_PRD_1D9A5DFE.bin.xu.dec
. ELF at 0x28
. Parking: 0xD58+944
. XuRT: 0x16EC+D404
. Decompressing 54276 -> 101448, be patient...
+ Unpacked OK

screenshot

About XuCode

XuCode is the software part of SGX technology, there are ELF-files integrated in microcode update. screenshot

See: XuCode: An Innovative Technology for Implementing Complex Instruction Flows

List of Supported CPUs

The microcode update can be decrypted for following CPUs:

Research Team

Mark Ermolov (@_markel___)

Maxim Goryachy (@h0t_max)

Dmitry Sklyarov (@_Dmit)

Download Tool
Processor ModelMicroarchitectureSGX / XuCode support
Pentium J4205Goldmont, Apollo Lake-
Celeron J3455Goldmont, Apollo Lake-
Celeron J3355Goldmont, Apollo Lake-
Pentium N4200Goldmont, Apollo Lake-
Celeron N3450Goldmont, Apollo Lake-
Celeron N3350Goldmont, Apollo Lake-
Atom x7 E3940Goldmont, Apollo Lake-
Atom x5 E3930Goldmont, Apollo Lake-
Atom x7 A3960Goldmont, Apollo Lake-
Atom x7 A3950Goldmont, Apollo Lake-
Atom x5 A3940Goldmont, Apollo Lake-
Atom x5 A3930Goldmont, Apollo Lake-
Atom C3958Goldmont, Denverton-
Atom C3955Goldmont, Denverton-
Atom C3858Goldmont, Denverton-
Atom C3850Goldmont, Denverton-
Atom C3830Goldmont, Denverton-
Atom C3808Goldmont, Denverton-
Atom C3758Goldmont, Denverton-
Atom C3750Goldmont, Denverton-
Atom C3708Goldmont, Denverton-
Atom C3558Goldmont, Denverton-
Atom C3538Goldmont, Denverton-
Atom C3508Goldmont, Denverton-
Atom C3338Goldmont, Denverton-
Atom C3308Goldmont, Denverton-
Pentium Silver J5005Goldmont Plus, Gemini Lake+
Celeron J4105Goldmont Plus, Gemini Lake+
Celeron J4005Goldmont Plus, Gemini Lake+
Pentium Silver N5000Goldmont Plus, Gemini Lake+
Celeron N4100Goldmont Plus, Gemini Lake+
Celeron N4000Goldmont Plus, Gemini Lake+
Pentium Silver N5030Goldmont Plus, Gemini Lake Refresh+
Celeron N4120Goldmont Plus, Gemini Lake Refresh+
Celeron N4020Goldmont Plus, Gemini Lake Refresh+