一步一步教你修改BIOS.docx

上传人:b****3 文档编号:4128908 上传时间:2022-11-28 格式:DOCX 页数:13 大小:1.28MB
下载 相关 举报
一步一步教你修改BIOS.docx_第1页
第1页 / 共13页
一步一步教你修改BIOS.docx_第2页
第2页 / 共13页
一步一步教你修改BIOS.docx_第3页
第3页 / 共13页
一步一步教你修改BIOS.docx_第4页
第4页 / 共13页
一步一步教你修改BIOS.docx_第5页
第5页 / 共13页
点击查看更多>>
下载资源
资源描述

一步一步教你修改BIOS.docx

《一步一步教你修改BIOS.docx》由会员分享,可在线阅读,更多相关《一步一步教你修改BIOS.docx(13页珍藏版)》请在冰豆网上搜索。

一步一步教你修改BIOS.docx

一步一步教你修改BIOS

一步一步教你修改BIOS

坛子里面关于修改BIOS的文章已经很多了,今天以坛子里面有朋友要求帮忙的磐正EP-8NPAJ为例一步一步实现SLIC表的添加。

首先,要准备好的软件:

MODBIM6、CBROM219、WinHEX、everest、IDA、WinFlash、Hiew7.2。

把要安装的软件如IDA安装好,其他的一起放在一个文件夹下面,如BIOS。

好了,下面开始工作。

第一步,倒入OEM信息。

1、按WIN+R打开运行窗口,输入CMD,点击确定,启动命令行窗口。

2、在命令行窗口里输入cbrom219[BIOS文件名.bin]/acpitblextract导出ACPI表信息。

3、用WinHEX打开刚才导出的ACPI文件

图中需要修改的地方我用不同的颜色表示出来了,首先我们修改红色线的地方,由于我们要插入一个SLIC表,这个数字要增加4,需要修改成为34。

绿色的地方修改为OEM厂家信息,这里改为华硕的信息。

蓝色标记前面需要插入4个字节00用于储存SLIC表的地址。

修改后的如下:

这里需要记录一个地址,就是插入4个字节00的首地址,后面用得倒。

这里是30。

修改好后保存,退出。

4、把OEMSLIC表文件复制到BIOS文件夹,这里是:

ACPISLIC.bin。

在命令行窗口执行:

copyacpitbl.bin/b+acpislic.bin/bacpitbl.bin/b

5、把APCI表重新倒入BIOS文件中去。

在命令行窗口执行:

cbrom219[BIOS文件名]/acpitblacpitbl.bin如下图:

到目前为止,已经把SLIC表信息倒入了BIOS文件中,接下来就要修改BIOS文件,试这个SLIC表能够载入内存。

第二步修改BIOS文件

1、用MODBIN6打开BIOS文件

2、用WinHEX打开生成的ORIGINAL.BIN,并在里面查找RSDT字段

找到后需要查找并记录下3的地址和在文件中的记录位置,1:

RSDT表首地址,2:

表数目地址,3:

FACS表地址。

该BIOS的3个数据的数值和地址如下:

(注意再文件中查找储存位置时,高低为要颠倒,如FACS表头地址是D320,查找时要查找20D3,查找重RSDT表向下查找)

名称

表头地址

记录位置

RSDT表

D320

D3EF

表数目

B905

D3E5

FACS表

D334

D441

3、向表中添加SLIC表。

如果RSDT表前面存在4个字节以上的空位(全是00),可以把FACS前面的表直接前移4个字节,把SLIC表插到FACS表前面。

该文件RDST前面的位置,不够,需要重新找地方安置整个表。

在EF00附近找到大量的空位,就把整个表移到这里。

移动后的表是:

RSDTFACPDSDTAPICMCFGSLICFACS

记录下RSDT表的地址:

EF00,FACS表的地址:

EF18,现在回到刚才记录好的地址处,依次把相应的新值修改好。

由于增加了一个表,表的数目加1,修改好的对应关系如下:

名称

表头地址

记录位置

RSDT表

EF00

D3EF

表数目

B906

D3E5

FACS表

EF18

D441

修改好后存盘退出。

4、确认每个子表的内存入口指针偏移量。

用IDA打开ORIGINAL.BIN。

ProcessorType按照上图选择,然后点击Set,OK

这里点击NO

在Stringswindows里面查找RSDTFACP……字段

双击找到的字段,出现上图情况,把光标定位到在R字母后面按A

在1Eh处按C

在后面一点的unk_D34D再按C,要用的代码都出来了

用鼠标挨个移过CALL后面的函数,直到出现和上图类似的,双击。

出现上图画面,点鼠标右键,弹出的菜单,选TextView

分析出现的指令,红线标注的地方CX,6就是新表子表的数量,下面的8374h就是表头RSDT指针偏移量。

现在可以排一下原来个指标的指针.

子表

入口指针

RSDT

8374

FACP

8378

DSDT

837C

APIC

8380

MCFG

8384

FACS

8388

继续看下面的代码

注意红线标注的地方,就是FACS入口地址的处理代码,向下继续查看代码,

红线标注出是FACS表地址赋值指令,等下要修改。

蓝色框起来的两条指令是要移动的指令。

现在来把新表的各子表地址排一下:

子表

入口指针

RSDT

8374

FACP

8378

DSDT

837C

APIC

8380

MCFG

8384

SLIC

8388

FACS

838C

可以看出,SLIC表占用了原FACS表的地址,那么FACS表的地址要加4,刚才出现8388的两处,等下都要修改成为838C,先记下这两处的地址:

D45C和D4BB。

向下找一段空白的空间,找到F003附近有可以插入的空间,记下这个地址,等下有用。

现在把F003下腰插入的指令先写下来。

movedi,[esi+8374h]

movs:

[edi+24h],eax(上面两句是移过来的,下面4句是添加阿)

moveax,[esi+8388h](8388是SLIC表的入口地址)

movedi,[esi+8374h](8374是RSDT表入口地址)

moves:

[edi+30h],eax(30就是第一部插入4个00的首地址)

jmp0000D4f5跳回原指令继续执行

5、插入上面指令

启动HieW32并打来ORIGINAL.BIN

按F4选择Decode

按F5出现上面的画面。

现在输入D45C按回车

按F3然后按F2编辑这条指令

把这里的8388改为838C,软后按Enter,然后按Esc,按F9保存修改。

同样的办法修改D4BB处。

然后按F5输入F003按Enter跳到F003处,发现F003比在顶格处了,于是把F002作为跳转首地址。

这里挨个输入上面的指令

按F9保存,按F10退出

现在要清除刚才决定移动的指令并添加跳转指令,用WinHEX打开ORIGINAL.BIN,跳转到D4E7处,从D4E7到D4F5用90填充,共14个,修改好后,保存退出。

用Hwie32重新打开ORIGINAL.BIN,跳转到D4E7处,添加指令jmp0000F002,改好后,重新用IDA打开ORIGINAL.BIN,验证代码和跳转的正确性。

检测正确无误后,在MODBIN6里面保存BIOS,大功告成。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 人文社科 > 视频讲堂

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1