欢迎来到天天文库
浏览记录
ID:27004482
大小:2.29 MB
页数:13页
时间:2018-11-30
《一步一步教你修改BIOS.doc》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库。
1、一步一步教你修改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表信息
2、。3、用WinHEX打开刚才导出的ACPI文件图中需要修改的地方我用不同的颜色表示出来了,首先我们修改红色线的地方,由于我们要插入一个SLIC表,这个数字要增加4,需要修改成为34。绿色的地方修改为OEM厂家信息,这里改为华硕的信息。蓝色标记前面需要插入4个字节00用于储存SLIC表的地址。修改后的如下:这里需要记录一个地址,就是插入4个字节00的首地址,后面用得倒。这里是30。修改好后保存,退出。4、把OEMSLIC表文件复制到BIOS文件夹,这里是:ACPISLIC.bin。在命令行窗口执行:copyacpitbl.bin/b+acpislic.bin/bacpi
3、tbl.bin/b5、把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个数据的数值和地址如下:(注意再文件中查找储
4、存位置时,高低为要颠倒,如FACS表头地址是D320,查找时要查找20D3,查找重RSDT表向下查找)名称表头地址记录位置RSDT表D320D3EF表数目B905D3E5FACS表D334D4413、向表中添加SLIC表。如果RSDT表前面存在4个字节以上的空位(全是00),可以把FACS前面的表直接前移4个字节,把SLIC表插到FACS表前面。该文件RDST前面的位置,不够,需要重新找地方安置整个表。在EF00附近找到大量的空位,就把整个表移到这里。移动后的表是:RSDTFACPDSDTAPICMCFGSLICFACS记录下RSDT表的地址:EF00,FACS表的地
5、址:EF18,现在回到刚才记录好的地址处,依次把相应的新值修改好。由于增加了一个表,表的数目加1,修改好的对应关系如下:名称表头地址记录位置RSDT表EF00D3EF表数目B906D3E5FACS表EF18D441修改好后存盘退出。4、确认每个子表的内存入口指针偏移量。用IDA打开ORIGINAL.BIN。ProcessorType按照上图选择,然后点击Set,OK这里点击NO在Stringswindows里面查找RSDTFACP……字段双击找到的字段,出现上图情况,把光标定位到在R字母后面按A在1Eh处按C在后面一点的unk_D34D再按C,要用的代码都出来了用鼠标
6、挨个移过CALL后面的函数,直到出现和上图类似的,双击。出现上图画面,点鼠标右键,弹出的菜单,选TextView分析出现的指令,红线标注的地方CX,6就是新表子表的数量,下面的8374h就是表头RSDT指针偏移量。现在可以排一下原来个指标的指针.子表入口指针RSDT8374FACP8378DSDT837CAPIC8380MCFG8384FACS8388继续看下面的代码注意红线标注的地方,就是FACS入口地址的处理代码,向下继续查看代码,红线标注出是FACS表地址赋值指令,等下要修改。蓝色框起来的两条指令是要移动的指令。现在来把新表的各子表地址排一下:子表入口指针RSD
7、T8374FACP8378DSDT837CAPIC8380MCFG8384SLIC8388FACS838C可以看出,SLIC表占用了原FACS表的地址,那么FACS表的地址要加4,刚才出现8388的两处,等下都要修改成为838C,先记下这两处的地址:D45C和D4BB。向下找一段空白的空间,找到F003附近有可以插入的空间,记下这个地址,等下有用。现在把F003下腰插入的指令先写下来。movedi,[esi+8374h]movs:[edi+24h],eax(上面两句是移过来的,下面4句是添加阿)moveax,[esi+8388h](8388是SLIC
此文档下载收益归作者所有