MCExtractor v1.32.1 r111 releases: Intel, AMD, VIA & Freescale Microcode Extraction Tool

MC Extractor is a tool which parses Intel, AMD, VIA and Freescale processor microcode binaries. It can be used by end-users who are looking for all relevant microcode information such as CPUID, Platform, Version, Date, Release, Size, Checksum etc. It is capable of converting Intel microcode containers (dat, inc, h, txt) to binary images for BIOS integration, detecting new/unknown microcodes, checking microcode health, Updated/Outdated status and more. MC Extractor can be also used as a research analysis tool with multiple structures which allow, among others, full parsing & information display of all documented or not microcode Headers. Moreover, with the help of its extensive database, MC Extractor is capable of uniquely categorizing all supported microcodes as well as check for any microcodes which have not been stored at the Microcode Repositories yet.

A1. MC Extractor Features

  • Supports all current & legacy Microcodes from 1995 and onward
  • Scans for all Intel, AMD, VIA & Freescale microcodes in one run
  • Verifies all extracted microcode integrity via Checksums
  • Checks if all Intel, AMD & VIA microcodes are Latest or Outdated
  • Converts Intel containers (dat,inc,txt,h) to binary images
  • Searches on demand for all microcodes based on CPUID
  • Shows microcode Header structures and details on demand
  • Ignores most false positives based on sanity checks
  • Supports known special, fixed or modded microcodes
  • Ability to quickly add new microcode entries to the database
  • Ability to detect Intel Production/Pre-Production Release tag
  • Ability to analyze multiple files by drag & drop or by input path
  • Ability to ignore extracted duplicates based on name and contents
  • Reports all microcodes which are not found at the Microcode Repositories
  • Features command line parameters to enhance functionality & assist research
  • Features user-friendly messages & proper handling of unexpected code errors
  • Shows results in nice tables with colored text to signify emphasis
  • Open Source project licensed under GNU GPL v3, comment assisted code

A2. Microcode Repository Database

MC Extractor allows end-users and/or researchers to quickly extract, view, convert & report new microcode versions without the use of special tools or Hex Editors. To do that effectively, a database had to be built. The Intel, AMD & VIA CPU Microcode Repositories is a collection of every Intel, AMD & VIA CPU Microcodes we have found. Its existence is very important for MC Extractor as it allows us to continue doing research, find new types of microcode, compare releases for similarities, check for updated binaries etc. Bundled with MC Extractor is a file called MCE.db which is required for the program to run. It includes entries for all Microcode binaries that are available to us. This accommodates primarily two actions: a) Check whether the imported microcode is up to date and b) Help find new Microcode releases sooner by reporting them at the Intel, AMD & VIA CPU Microcode Repositories Discussion thread.

A3. Sources and Inspiration

MC Extractor was initially based on a fraction of Lordkag’s UEFIStrip tool so, first and foremost, I thank him for all his work which inspired this project. Among others, great places to learn about microcodes are Intel’s own download site and official documentation, Intel Microcode Patch Authentication, Coreboot (a,b,c), Microparse by Dominic Chen, Ben Hawkes’s Notes and Research, Richard A Burton’s MicrodecodeAIDA64 CPUID dumpsSandpile CPUID, Free Electrons (ab), Freescale and many more which I may have forgotten but would have been here otherwise.



Improved handling of initial/empty MCE SQLite database


Intel cpu406C4_plat01_ver00000411_2019-04-23_PRD_ABE7BD38
Intel cpu406C3_plat01_ver00000368_2019-04-23_PRD_CE4070DC
Intel cpu30679_plat0F_ver0000090C_2019-04-23_PRD_B8CE1968
Intel cpu30678_plat0C_ver00000838_2019-04-22_PRD_2FCBB165
Intel cpu30678_plat02_ver00000838_2019-04-22_PRD_6BF2E4C4
Intel cpu50657_platBF_ver05000024_2019-04-07_PRD_080DED28
Intel cpu50656_platBF_ver04000024_2019-04-07_PRD_AFF479D0
Intel cpu806EC_plat94_ver000000B8_2019-03-30_PRD_A16BADB5
Intel cpu806EB_platD0_ver000000B8_2019-03-30_PRD_8198D7DA
Intel cpu506F1_plat01_ver0000002E_2019-03-21_PRD_4F7008D6
Intel cpu806EB_platD0_ver000000AC_2019-01-16_PRD_64A177AB
AMD cpu00870F10_ver08701011_2019-04-15_263E0182
AMD cpu00810F10_ver08101014_2019-03-07_310954DB

Download && Tutorial

Copyright (C) 2016 platomav