Skip to content

02 修改处理器微码WinHex篇

qlm2009 edited this page Feb 9, 2018 · 10 revisions

微星H110M主板无法直接用MMTool_5.00.0007修改微码,保存时会报错。

更新:用MMTool_5.02.0024修改微星的BIOS,可以正常保存了,但这篇教程还是保留着。

用UEFITool导出微码Raw文件{17088572-377F-44EF-8F4E-B09FFF46A070},可以看到它的文件结构是微码1+微码2+微码X...+MPDT尾部(4D504454000100001000000000001000h);你不能改变原Raw文件的大小,太大只能删掉一个微码或者换较小的旧微码,太小的话可以在最后一个微码后面用FFh填充。

接下来以微星H110M-PRO-VD为例介绍如何用WinHex修改微码:

A)用UEFITool_A45打开E7996IMS.2F0,在FIT->Address选中一个微码双击进入微码模块,右键Extract body...另存为File_Raw_Microcode_body.raw,大小是284kB

B)将File_Raw_Microcode_body.raw拖到MCE.exe(MC Extractor)上,解压缩得到3个微码(注意FIT里的顺序)

cpu506E3_plat36_ver000000BA_2017-04-09_PRD_EEB3BD5A.bin

cpu906E9_plat2A_ver00000070_2017-08-09_PRD_93EB3C4D.bin

cpu506E8_plat22_ver00000034_2016-07-10_PRD_57D53E7A.bin

C)查看原第一个微码cpu506E3_plat36_ver000000BA_2017-04-09_PRD_EEB3BD5A.bin大小是96 kB, 要插入的新微码cpu906E9_plat2A_ver00000070_2017-08-09_PRD_93EB3C4D.bin大小是95kB。

用Winhex打开cpu906EB_plat02_ver00000072_2017-09-20_PRD_A08C2841.bin选择整个块复制, 继续用Winhex打开File_Raw_Microcode_body.raw,编辑->剪帖板数据->写入刚才复制的新微码数据块;

D)在WinHex打开cpu906E9_plat2A_ver00000070_2017-08-09_PRD_93EB3C4D.bin,记住其头部“0100000070”或大小18000h, 在WinHex打开cpu906EB_plat02_ver00000072_2017-09-20_PRD_A08C2841.bin,记住其尾部“88A2F4”或大小17BFFh,

回到Winhex打开的File_Raw_Microcode_body.raw,导航->转移到偏移量->新位置“17BFF”,标记地址“17C00”为选块起始位置, 找到“0100000070”的地址18000,标记地址“17FFF”为选块尾部,编辑->移除以及提示会改变文件大小(变小1kB);

E)用WinHex新建1个大小1kB的空文件,编辑->填充文件->填充十六进制数值FF,选择整个块复制

F)用WinHex打开cpu506E8_plat22_ver00000034_2016-07-10_PRD_57D53E7A.bin,记住尾部“74BA0EF6”,

回到Winhex打开的File_Raw_Microcode_body.raw,查找16进制“74BA0EF6”定位到地址46BFF, 在地址46C00剪贴板数据->粘贴后,保存并提示会改变文件大小(变回284kB,这个大小是不能改变的),另存为File_Raw_Microcode_body_mod.raw

G)用UEFITool打开E7996IMS.2F0,查找GUID 17088572-377F-44EF-8F4E-B09FFF46A070返回2个结果, 选第二个双击跳转并选中,右键Replace body...选择修改好的File_Raw_Microcode_body_mod.raw替换,另存为E7996IMS.2F0mod.rom

H)用WinHex打开E7996IMS.2F0mod.rom,按“Wiki 02 修改处理器微码MMTool篇”来修复FIT中的微码地址

第二个微码正确地址为FB23D0h+17C00h=FC9FD0h,按镜像法从右到左、WinHex修改原值D0A3FC为D09FFC

第三个微码正确地址为FB23D0h+17C00h+17800h=FE17D0h,按镜像法从右到左、WinHex修改原值D01BFE为D017FE,保存。

I)用UEFITool_A45打开修改好的bios查看FIT,用MMTool打开查看CPU Patch验证。