InSpectre vs. me_cleaner | Is there a difference?

@Lost_N_BIOS - I finally had time to try and replace the microcodes by myself. This is how I did it:

1. Extracted my NVMeBIOS.bin with MC Extractor to get all the microcode.bin files.
2. Opened HxEditor and opened my NVMeBIOS.bin and all the extracted microcode.bin files.
3. I picked a microcode I wanted to edit and searched for the offset in HxEditor.
4. Then I marked the the whole content of the microcode I wanted to edit in its corresponding extracted microcode.bin to check the size (=Length in HxEditor).
5. I went back to the offset of the microcode in NVMeBIOS.bin and marked an area from the beginning of the offset until I reached the same Length of the extracted microcode.bin to see if it was the same length.
6. Then I did a “double check” before I replaced that area with a new microcode by searching the whole microcode in NVMeBIOS.bin to see if it was again the same length as I just manually checked.
7. Then I got the new microcode from the repository and replaced the old microcode. Some of the new microcodes were upgrades (newer date) and two microcodes were downgrades to the latest pre-spectre microcode (306A9 and 206A7)

Here is the result:

Test.png



Download Link: https://ufile.io/6x1ynbrf

As you can read on the screenshot I had a “problem” with 306A2 and 206A7,because they were really close to each other.
The offset at which 306A2 ended, the next offset directly underneath was already the starting point for 206A7.
But the new 306A2 microcode increased in file size and therefore got longer in Length and overrode a part of the 206A7 microcode.
Therefore I had to put the beginning of the new 206A7 microcode also at another offset. The end of the new 206A7 microcode ends in a big field only filled with FF hex, so I guess that’s ok then?

Can I flash my own bios mod, what do you think? MC Extractor doesn’t show an error atleast and I also checked the new bios.bin in UEFITool and it looks all good to me:

Test2.png

@Koven - Moving them around is fine, but you need to make sure each starts at a multiple of either 400h or 800h, depending on how the original BIOS is constructed (I checked your BIOS, this one uses multiple of 800h (0, 800, 1000, 1800, 2000 etc)
Padding of FF is fine, you just have to follow the rule above. Since you were changing file sizes, it would have been easier for you to just construct an all new microcode body, pasting each microcode one after another in hex editor, then replace entire body once done.
UEFITool not something to confirm microcode edit is OK, except for when comparing all microcode volumes side by side with mod/stock BIOS, to confirm a padding file wasn’t added or removed above microcode volume.

I cannot tell what is going on in your image, since I do not work with microcodes that way, sorry However, I checked your BIOS, extracted microcode body and it’s OK, but not ideal (using multiple of 400h instead of 800h, by you starting #7 at FC00h, should be 10000h instead)
Start your last microcode (#7) 400h later >> Instead of starting #7 @ 2F95C0h, start it at 2F99C0h (so, 400h of FF padding between end of #6 and start of #7). Some BIOS 400h multiples is OK, and this one may be too, but I always practice of following the originally used offset multiple examples just in case

If you extract microcode body with UEFITool 51, then you can easier see the offsets I mentioned above when dropping into MC Extractor, then it’s easier to see what’s going on, how to edit, what spacing you need etc.
Then replace body when done. When editing other BIOS this way, be sure to check stock microcode body at the end, some have a footer that you need to put back into place once you are done (not in this BIOS)

See, here, this is how I look at microcodes from the stock BIOS, the mod BIOS I sent you, and the mod BIOS you just added above, see how much easier this is to view the microcode offsets and then be able to maintain that offset ruling

uCode.png

@Lost_N_BIOS - Ok I understand. I changed what you suggested. Here is the result:

Untitled.png



And the new bios.bin link: https://ufile.io/2ei1854s

Just to be sure, I don’t have to move all the hex that comes AFTER 206A7 to make a 800h multiple between 206A7 and the first “code” that comes after that? Or do I have to insert a 800h FF padding after 206A7 too?

EDIT: Just flashed. Looks good to me haha:

Untitled2.png