MC Extractor: Intel, AMD, VIA & Freescale Microcode Extraction Tool Discussion

The mCode
I can’t upload it directly as I’m a new user just for this reason. But I am using the latest version of the MCE from like two days ago. It at least identifies that the code exists, but it determines incorrect checksum and that it must be corrupt. This is the case for most Z790 BIOS I’ve found. I’m not for certain what’s going on, but it appears to have some data in the padding area that it’s not registering. That’s purely speculation though.

Edit: Sorry. I didn’t realize that I had the file locked. The link should work correctly now.

0x104 for cpuid 0xB0671, which allow 13th k series cpu with non-z motherboard turn off cep so that have lower voltage but no performance loss.

Could it be possible that it extends to other CPUIDs as well? If so, the CPUID would be excessively long which might account for the supposed corruption if it exceeds the expected value length. Though, I’m not programmer.

Thanks for Sharing the information.

@dsanke

Interesting, I had already seen that corrupt microcode in the past but had discarded it as a mistake from Asus. The only change is at the headers, where “B0” was altered to “FF”:

It is interesting that they also altered the CPUID at the “extra” header, I was under the impression that this field is protected by the RSA signature as it is part of the RSA block:

Maybe only some fields of the “extra” header are protected and not all. This can be validated only by attempting to load that microcode and check whether the CPU microcode loader rejects it or not (which Asus probably did).

So, you’re saying that this is a “modded” older microcode which allowed a certain behavior that Intel blocked in subsequent releases.

In that case, I can mark it as a known “modded” microcode in MCE, and it won’t show the warning message, just a note that it is User/OEM modified.

1 Like

Actually, from what I can tell, the microcode is valid Intel microcode that’s used on various different board manufacturers’ boards. I pulled BIOS files from two different manufacturers lately and the CRCs match. So they’re sourced from the same location. I pulled Gigabyte and ASUS.
Also, these were pulled from Z790 boards. So it’s not non-Z. And it also extends to 14th gen CPUs as indicated here:
Intel CPUID Format v008
And this may be of use in figuring out why the microcode is listed as corrupt:
Intel Microcode Caused “Unsupported CPU” BSOD Issue

No, these are not related. Intel would not push a microcode with an invalid CPUID (i.e. FF0671) and broken Checksum. That is usually, as dsanke said, a very clear indicator of OEM modification to accomplish a specific goal. This type of modification has been done in the past to allow non-K overclocking, AVX-512 support, BCLK alterations etc. For example:

  • 306C3 → 99
  • 506E3 → FF
  • 90672 → FF
  • 90675 → FF

The vendors either trick the OS to not load a newer microcode during boot (e.g. version FF) or implement BIOS-level loading in which a different microcode blob gets picked up according to a feature/setting, installed CPU etc. The latter is what is probably happening here. These types of modifications tend to propagate to other similar vendors so that they also offer the same capability. It is not weird for this to start with Asus and then find it itself at MSI, Gigabyte etc.

EDIT: As explained here, the 104 microcode is used to allow undervolting without performance loss. This confirms that it is a “modded” microcode for a specific capability no longer offered/allowed by Intel. Asus decided to modify the header to an invalid CPUID and (apparently) use BIOS-level logic to switch to that microcode under certain situations. Other vendors (e.g. MSI) appear to maintain both 104 and newer microcodes for that CPUID without messing with the header.

2 Likes

To ALL
@westlake
MCE_1.98.0_EXE.zip (8.4 MB)

3 Likes

Hi new MCode for B0671 this file provided from MSI z790 CARBON 7D89 1C3 Beta.

B0671 1700\cpuB0671_plat32_ver00000125_2024-04-16_PRD_EF3643F9.bin

cpuB06A8_platE0_ver00004122_2024-02-22_PRD_A3F96D75.zip (215.2 KB)
cpuB06A3_platE0_ver00004122_2024-02-22_PRD_A3F96D7A.zip (215.2 KB)
cpuB06A2_platE0_ver00004122_2024-02-22_PRD_A3F96D7B.zip (215.2 KB)

1 Like

Hello

I am looking for the MCE.exe 1.100.1 file (necessary for the latest db r303)
If anyone has this, I can never find where the latest MCEs are available

Thanks so much

@tistou77
If you mean MCE version 1.101.0, it’s slightly adjusted exe can be found in archive, attached to this post: [Discussion] UBU Tool related Questions, Reports and Suggestions - #1964 by Michael_Code
.

@frwil Thanks for your help, I found it
Every time the version changes, I never find the latest version MCE.exe

MCE-MEA .rar (7.2 MB)

I made a compact offline version of MCExtractor and MEAnalyzer with newest libraries.

This will not connect to the internet and check for updates.

hello everyone,my device is redmig2021-amd version(rtx3060),my bios cpumicrocode is too old,and the oem refused to update,and Enduring the sluggishness of ftpm. However, I can’t update with ubu. Please teach me how can I update. bnewlest bios url

Bios is InsydeH2O…
image
It has only one mcode, Hex edit it manually can be an option…
Flashing operation using the original tools…unpredicted results.
Optional…(Intel cpu only) maybe Intel FPT dump/edit if FD unlocked for writing… still inconclusive on final results.

thanks for you suggestion, i use hex editor replace the new microcode, how can i flash it? i have no programmer…it is amd…

Then good luck, what else can i assure you, i told you that the results can be inconclusive, but i’m not the one with the system on hand and its not my asset to decide the risks.

1 Like

Notice.

There is now version 37 microcode for 90672 and version 12B microcode for B0671.