分离整合型显卡BIOS |
|
近日一网友询问,其一款Quadro FX 3000显卡,由于刷新BIOS时,操作失误,造成显卡无法使用。想使用编程器重新将BIOS文件写回,发现从网站下载的BIOS文件,却是与刷新程序整合在一起的,无法用编程器写入;我们经过分析,成功的分离出了显卡BIOS文件,在此过分离过程做一详细说明。 |
首先从HP(图形工作站)升级程序中,下载到Quadro FX_3000.exe升级程序。由于其是EXE文件,根据经验,厂商发布的驱动程序包通常都是压缩的,因此,判断此EXE文件,可能是自解压程序,使用WINRAR打开此EXE文件,发现其中有3个文件,而且其中一个是IMG文件,以及BAT批处理文件,为确明升级程序的工作原理,以记事本打开其中的BAT文件,发现升级程序主要是生成自启动软盘,而不是直接对显卡刷新。
直接运行Quadro FX_3000.exe,解压升成BIOS升级软盘,由于软盘中有BAT文件,因此我们很容易判断其就是刷新执行批处理文件,右键点击此BAT文件(flash.bat),发现此批处理文件,只是执行了EUFLASH.EXE文件,因此我们判断,EUFLASH.EXE文件就是自动刷新程序,其中包含了显卡的BIOS文件。
运行ULtra Edit,打开EUFLASH.EXE文件,点击“搜索”--“查找”,输入55 AA(这里要做一个说明,显卡ROM文件与其它设置运行文件一样,其头部字节都是55 AA,这一点你可以任意打开一个显卡ROM文件或网卡的ROM文件,其头部字都是55 AA,关于其原因,在此不做详细介绍,只做一简单说明。),由于55 AA是显卡文件的头部,因此,我们删除从文件的开头到55 AA所有的内容。
删除简单的方法是,使用鼠标点击55前面的字符,按住鼠标左键不放,向上移动鼠标,直到头部,将其选择的内容按鼠标右键删除即可(呵呵,太笨的简单方法)。
虽然我们已经找到了ROM文件的开头部分,但是如何确定ROM文件的尾部呢。我们查看了显卡的ROM芯片,为39LV512,即最多可容入64K的文件。而64K文件的寻址空间为0000H---FFFFH。因此从10000H以后的内容,我们都不需要,因此,我们首先在ULTRAEDIT中,将光标移到文件头部,然后选“搜索”--转到行/页。输入10进制地址,由于FFFFH后为10000H,因此我们可使用计算器,直接计算16进制的10000H的10进制地址;计算为65536,输入65535,确定,即可定位在10000H地址。
定位到10000H后,我们使用鼠标拉文件到最尾部,其地址应为5bdef H,使用计算器,减去FFFFH,计算十进制应是310768,然后选择“编辑”--“HEX 插入/删除”,点删除,输入310768,点击确定;即可得到一个完整的64K的显卡ROM文件。然后点击ULTRAEDIT“文件”--“另存为”--VGA.ROM,保存即可。 然后我们使用编程器将保存的ROM文件写入显卡ROM芯片中即可。
注意:1、修改的关键是找到55 AAROM文件的头部。然后再确定ROM的尾部。 |
|
|