如何魔改AMI BIOS

AMI BIOS

目前几乎全部的桌面端主板和部分移动端主板都是用AMI公司提供的BIOS,本期教程教大家如何修改BIOS。

本文不使用AMIBCP进行修改AMI BIOS,因为部分BIOS会报错,并且修改NVRAM区后还会再DEX段写入大量内容,所以采用UEFITool NE和WinHEX修改,用最少的工具去修改。

工具准备

工具(已打包)

工具作用

UEFITool NE:查看并分离BIOS文件

ifrextrator:将.sct文件转译成可读的状态

AfuWin64Cap:提取本机AMI BIOS

SZ790AD4:华硕Z790吹雪D4 BIOS给你们练手用的

下载:点击下载-提取码1111

开始

BIOS提取

提取BIOS:打开AfuWin64Cap点击行程,点击存储获得文件afuwin.rom。若提示46 - Error: Problem getting flash information请使用备用AMIAptionAFU_V3.01进行提取(文件内已写明使用教程),若三个AFU均失败说明大概率此BIOS有读写保护或者压根不是AMI BIOS而是系微公司的BIOS

文件分离1

文件分离2

分离文件:打开UEFITool NE 将文件afuwin.rom拖入UEFITool NE打开,Ctrl+F打开搜索栏,点击Text,输入PROCHOT LOCK搜索,双击下方搜索结果跳转。

对PE32 image section鼠标右键选择Extract as is...获得文件Section_PE32_image_Setup.sct(注意文件名,若文件名不对则修改为此文件名)。

转译文件

转译文件:将上一步得到的文件放入ifrextractor文件夹并以管理员身份运行里面的start.bat得到一份.txt文件,打开此文件搜索你想改的项目。(以PROCHOT LOCK为例)。无法转译请看最下方更新记录v1.1

查找信息

查找信息:如图所见即为PROCHOT LOCK的信息,记住VarStoreld,VarOffset,OneOfOption Option的内容。

如Varstoreld为0x1,偏移量VarOffset为0x7E,填充值OneOfOption Option里面则是Disabled(禁用)=0,Enabled(启用)=1 Default,说明如果我写入0就是禁用PROCHOT LOCK,写入1就是启用PROCHOT LOCK,默认值为1。想要关闭PROCHOT LOCK应当将1改为0

回到txt文件开头直接搜索Varstoreld:0x1(你的Varstoreld值是多少你就填多少,不要照抄这只是个例子)

搜索Varstoreld

可以看到0x1对应的项目为CpuSetup(这个就像是目录),GUID为B08F97FF-E6E8-4193-A997-5E9E9B0ADB32。

查看Base和Header size

回到UEFITool按照如图所示的路径查找,Text和GUID均与前文查到一致的文件,点击一下查看右侧信息

Base(基地址)=1000E98h

Header size(表头大小)=14h

(这里的h不是一个值,而是表示前面的数值是16进制HEX,计算时忽略h)

计算地址

计算地址

使用Windows自带的计算器-程序员-HEX

Base+Header size+VarOffset=16进制地址。

如图PROCHOT LOCK的设置地址在1000F2A

查找地址

搜索地址

打开WinHEX将afuwin.rom拖入打开ALT+G输入地址

注意括号内为Bytes(16进制),若为10进制则关闭搜索栏点一下WinHEX左侧offset下面那一栏即可。

修改数值

修改数值

可以看到成功定位到了1000F2A,其值为01,根据前文的OneOfOption Option修改为00即可关闭PROCHOT LOCK,修改后保存即可。

刷入BIOS

推荐使用FPT或者编程器刷入

另外免U刷BIOS也可强制刷入,其原理是依赖主板内嵌的单片机输入。

华硕的FLBK可以无条件刷入,变砖也可救回,其他家的没试过。

更新记录

V1.1 

被压缩的section

若ifrextrator无法解析请检查PE32 image section文件在UEFITool的路径上是否有Compressed section,有则说明该文件被压缩,选择Extract body uncompressed...并重命名即可。

更多游戏资讯请关注:电玩帮游戏资讯专区

电玩帮图文攻略 www.vgover.com