找回密码
 注册

QQ登录

只需一步,快速开始

查看: 13623|回复: 39

最近写了几篇关于DELL机的BIOS分离文章,有兴趣的网友可看看.

ibmpass 发表于 2008-9-24 19:55:01 | 显示全部楼层 |阅读模式 来自 中国山东烟台

马上注册,结交更多好友,享用更多功能。

您需要 登录 才可以下载或查看,没有帐号?注册

x
DELL D700M BIOS分离过程
   近日,网友回复自己一台DELL D700M的机器,由于刷新过程中出错,造成刷新失败,机器无法启动;从DELL网站下载的BIOS文件,是一个直接运行的EXX文件,采用BIOS维修网站以前关于DELL BIOS文件分离的文章,无法分出BIOS文件,因此寻求耗子。
   网友通过QQ传过来的BIOS文件,其就是一个文件名为DELL 700M的EXE自解压文件;由于是EXE自解压程序,选择文件鼠标右键--使用WINRAR打开,将文件解压出。
5 @( {; `% N' h4 o) O- a! ?: ~2 Z

* n9 }. @2 _) P                               
登录/注册后可看大图
    解压出的文件只有三个,看文件名,其中的A06应为自刷新文件
$ A; s3 X# x5 _
                               
登录/注册后可看大图
    使用ULTRAEDIT打开A06.EXE文件,从文件头部看出,此文件应是WIN环境下自动运行的程序,因此按以前分离DELL BIOS的经验,首先在ULTRAEDIT 32工具栏中--“搜索”--“查找”--输入“NAPI”
   

2 ^' C9 u4 D3 W! W                               
登录/注册后可看大图
    由于顺利搜索到NAPI,下面的工具简单的。由于主板使用4M的BIOS文件,因此只要从NAPI开始,分出7FFFF地址的字节即可。

+ g8 `7 I9 X4 c9 o/ k) P                               
登录/注册后可看大图
    从上图可看到,NAPI的首地址是AC030H,因此简单的方法是,首先删除AC030H以前的内容,然后再删除7FFFFH地址以后的内容,然后将文件保存即可。
    删除16进制AC030H地址的内容,我们先将AC030H转换成10进制,即使用WIN自带的计算器,选择计算器--查看--16进制,选择十六进制,输入AC030(注意:H不需要输入,那是16进制的标识符,表明AC030为16进制),然后选择十进制,计算十进制数值“704560”
9 {; E8 `+ S) ?9 b* q
                               
登录/注册后可看大图
    因此我们在ULTRAEDIT32中,将鼠标移到文件头部,即00000H地址处;在ULTRAEDIT32--工具栏--“编辑”--“HEX 插入/删除”--选择删除,输入需要删除的10进制字节数:“704560”

# H" A6 y( a; |/ B                               
登录/注册后可看大图
    确定后删除,此时文件头部即00000H地址处,应正常好为NAPI

/ j# n  p$ [3 C# a& q# x6 f                               
登录/注册后可看大图
    然后使用简单的方法。将鼠标移到地址7FFFFH处,只要删除7FFFFH后面所有内容,然后将剩余的文件保存即可;鼠标移到8000H处,在ULTRAEDIT32--工具栏--“编辑”--“HEX 插入/删除”--选择删除,输入需要删除的10进制字节数:“XXXXXXX”,在这里XXXXX可随意输入,只要确定7FFFF后面所有无用内容删除即可。(注意)XXXXXX必须是纯数字。
     删除后文件尾部如下图:

0 ~6 t8 P! ]; e) Y) M                               
登录/注册后可看大图
    操作完成后,点击ULTRAEDIT32工具栏--“文件”--“另存为”保存为文件,网友使用编程器写入后,开机一切正常。

评分

参与人数 1威望 +10 收起 理由
wevip + 10 精品文章

查看全部评分

ibmpass  | 发表于 2008-9-24 19:55:49 | 显示全部楼层 来自 中国山东烟台
DELL DMC521 BIOS分离维修过程
    今天一网友回复耗子,自己一台DELL DMC521机器,由于刷新BIOS时,没有关闭杀毒程序,造成刷新过程中出错,重启无法开机。由于是刷新BIOS出错后无法开机,因此只要重写BIOS即可解决问题;但目前面临的问题是,DELL机器的BIOS比较特殊,其提供的BIOS文件都是EXE自刷新的文件,因此分离比较麻烦,而且网友按主页以前提供的DELL BIOS文件分离的文章,无法分离出BIOS文件--参考文章:
' {! `3 y7 @# H( o' h& V
                               
登录/注册后可看大图
如何分离DELL(戴尔)机整合型BIOS文件(过程分析及相关参数介绍)
;因此询问耗子是否可以从EXE自刷新程序中分离出BIOS文件。
. \% h' |0 u$ j# D& N" [2 O  o    收到网友传来的BIOS文件,其就是个EXE文件。首先选择使用WINRAR打开EXE文件,确定文件是否自解压的EXE文件,虽然可以使用WINRAR打开这个EXE文件,但是解压出的文件却是一个名为A17AS.BIN的文件,但其只有128K(1M)大小,这显然不对,因此排除直接分出BIOS文件的想法。
7 O  w$ L5 k8 H; v2 c) U% `

1 X8 w4 }0 y- d$ B3 S: B; F1 Q2 h                               
登录/注册后可看大图
    无法直接分出BIOS文件,使用ULTRAEDIT32,直接打开DMC521.EXE文件,从文件头部可看出,其就是一个WIN32程序,当然这个对我们并没有多少帮助;直接向下搜索,意外竟在0277D2H地址处,发现了“LH5”字符,我们都知道“LH5”是AWARD BIOS的标识字节,因为AWARD BIOS都是使用LH5压缩的。找到此字节,说明文件应是AWARD BIOS,也可通过此确定BIOS文件的头部,这真是意外中的意外呀。
/ I- q  D1 L4 _+ I7 |# \
                               
登录/注册后可看大图
    虽然现在确定文件是AWARD的,而且也可确定文件头部。但是在LH5前还有约64K的FF空字节,因此要分出的文件有两种可能。一种是从LH5处,直接向下分出7FFFFH字节的文件,其就是完整的BIOS文件。二是从LH5前64K空字节处,开始分出7FFFFH字节的文件,即包括LH5前的64K空字节。
    由于无法确定文件的头部,本来耗子想按两种方法分别分出BIOS文件,对比确定一下;但又想投机取巧,于是让网友将已经损坏的BIOS芯片中的内容读出来,如果芯片中还有数据的话,可以方便的确定,呵呵;还好芯片网友还没有擦除,备份出文件,通过网络传过来,使用ULTRAEDIT32打开备份出的已经损坏的文件。
    通过分析备份出的损坏BIOS芯片的中文件,确实是文件前面有64K的空字节(机器无法启动的原因是,BIOS文件没有刷新完成,12FFFH地址后面全是空字节)。
0 R# J) b2 ~! {( j; ^. f
                               
登录/注册后可看大图
    确定了文件的头部,以下操作就简单了。正确分出BIOS文件,并传给网友测试;网友写入后回复,可以正常开机,但进入系统后检测不到机器的型号,显示全是空白。即然机器可以启动了,但是机器型号等资料检测不到,看来BIOS中还有部分信息没有加入。
    重新打开网友备份出的已经损坏的BIOS文件,在文件头部位置果然发现机器的详细信息,如下图:

7 ~2 i5 u2 k$ J8 h                               
登录/注册后可看大图
    复制文件中的这部分资料,然后对应地址覆盖在分出的BIOS文件的文件中。重新保存成文件,传给网友测试,经网友回复,一切正常。至此维修修复完成。
 
    注意:
    1、如是刷新失败后,先不要急于写芯片,一定要先备份出文件,这样以后需要时使用。
    2、此方法是否适应于其它DELL的机器,耗子没有时间测试。因此有兴趣的网友可自行测试一下。
    3、分离文件时,文件的大小按BIOS芯片的大小确定即可。
回复 支持 反对

使用道具 举报

ibmpass  | 发表于 2008-9-24 19:56:40 | 显示全部楼层 来自 中国山东烟台
DELL系列机器BIOS文件分离分析
    使用DELL系列机器的网友都知道,DELL系列机型的BIOS文件很特殊,DELL厂家提供的BIOS文件,多都是EXE自运行程序,在WIN环境下直接运行EXE文件,即可自动完成刷新;但其EXE文件并不只是一个简单的自解压程序,无法使用WINRAR打开,因此也就无法解出其中的BIOS文件;无法解出BIOS文件,在主板损坏后,就无法使用编程器来重新修复BIOS。0 Q" z3 k/ t4 ?5 _0 D
    在此以前,好多网友都说其DELL的BIOS文件升级,只是升级需要升级的某一部分,即BIOS升级文件只是一个补丁,并不是全部文件升级,但实际,DELL BIOS刷新程序是一个特殊的可执行程序,本身已经包括刷新程序和BIOS文件,有32位和16位两种运行模式,也就是说,它可以在Windows平台下以32位程序运行(非实模式),也可以在纯DOS环境中运行。运行后系统会自动重启,BIOS刷新完毕。在某些特定的情况下,它可能必须在纯DOS环境中运行,在Windows平台下会有错误报告,代码0x00000610。
; X/ n# C* g2 P  B, z8 |$ c5 R    耗子经过寻找一些国外网站的资料,加上在自己DELL机上的实际测试,将一些DELL BIOS的初步分析说明一下。. ], u1 F: o5 {) y6 U- x  a0 }
    其实下载的DELL的BIOS刷新程序中含有完整的GZip压缩的BIOS镜像。我们可以使用使用-writehdrfile或-writeromfile参数很容易的分离出BIOS文件。注:GZip压缩格式:这是一个开源的压缩格式,Windows 用户可能对其并不熟悉,但是Linux下它的应用十分广泛(Linux最流行的压缩方式莫过于tar打包加上gz压缩)。* t9 v) i. o4 Y" L6 J3 j' [
    首先下载机器对应的BIOS文件,当然其都是EXE的可运行程序;在WINDOS命令行状态下,输入文件名 -writehdrfile或-writeromfile参数,这里说明一下,文件名即为下载的BIOS文件(即EXE格式的文件)。
" R5 ?9 d; T. B8 u    如我的DELL 630M机器的BIOS,下载最新版本BIOS为MX51_A04.exe文件,在XP命令行状态下,分动运行MX51_A04 -writehdrfile和MX51_A04 -writeromfile,可分别在当前目录下得到一个文件;文件名为MX51_A04.hdr和MX51_A04.rom# g/ _, R! x% @: G3 h/ Y; J2 b
     
4 y  A) X) W; j  _7 e
                               
登录/注册后可看大图
     

0 M7 v4 ]5 [* H: j2 W                               
登录/注册后可看大图
    分离出的MX51_A04.rom文件即为BIOS文件,大小为1,048,576字节,正好为1M。可直接用编程器写入BIOS芯片中。MX51_A04.hdr的BIOS镜像,大小为1,048,668字节,等于1MB+92字节,这92字节分别是头部的84字节和结尾的8字节,除去这92个字节即可得到ROM文件。其中头部的84字节是以$RBU开头的版权字符串,结尾的8字节中前4字节是ROM文件的CRC32校验和的补码,后4字节是前面84字节+1MB完整ROM镜像+4字节ROM校验和的CRC32校验和的补码。
    文件头对比:
8 }3 [" K( M9 r# g' O" I
                               
登录/注册后可看大图
    文件尾部对比:
$ q1 N1 [" T4 l4 p
                               
登录/注册后可看大图
    通过对比我们发现,我们只要去掉xxxx.hdr头部的84字节,及尾部的8字节。然后保存即为需要的BIOS文件,不过,我们可以直接分出BIOS文件,这一步就不需要了。
    对于HDR文件的用处,是在纯DOS环境下刷新BIOS时使用。如MX51_A04.exe -readgzfile这条命令将在当前文件夹下寻找D610_A06.gz文件,如果找到,它把该文件解压得到D610_A06.hdr文件,校验其中的CRC信息,并把该hdr文件中所包含的1MB ROM镜像刷新到BIOS中。所以,如果我们手头有ROM镜像,只须先添加92字节成为HDR镜像,然后用GZip打包成gz文件就可以刷新了。其实DELL机器的BIOS,可直接在WIN环境下运行并刷新,在DOS环境下刷新基本用不上,这只是让网友了解一下HDR文件的作用。
    简单一句话,就是如果想分离DELL机器的BIOS文件,只要使用文件名加 -writeromfile参数即可。但其命令并不针对所有DELL机型,这一点网友需要注意。另附命令其它参数,有兴趣的网友可自行测试。
( {* M' h5 ]5 `4 K- o3 \! m
    -classic7 Z! n8 B& I5 s3 Z
    -reportstatus
' I6 ^, R( h7 @: r5 G    -norburesults
/ L7 ^; U: ^; K; I  `8 _    -rburesults
! F# U. a9 ^, i7 f& E( @) x    -writeromfile/ Y/ }" y6 [4 N) @1 T- n- Y
    -writehexfile: }$ l4 W  ^2 r/ T
    -writehdrfile9 _- C; K1 p7 g& [2 Z2 z
    -wipeclean9 \/ A0 {; U/ _8 U. f( N$ X
    -wipeall  h8 ~0 j% i. d# @9 |
    -verbose
% o/ t$ \& B& \8 a8 ]    -prgboot
4 S" L7 j) }, M9 B    -noreboot
& J' [- W3 q  I7 x    -nopause
8 E" `* m5 Q9 k" [6 w: {7 \    -info; ?! d! V7 v* j9 W- n
    -forcetype& e9 p& n7 T1 Y. }; {
    -forceit) E7 o! ~) s! F, l. Z3 r$ `) R- O
    -factory
$ G3 {4 w, S% {' B    -edvu, I" |2 r$ \6 Z6 j$ h% p8 m! \
    -boot4 }9 y6 `# X  R+ O9 O! _8 z
 
6 `* ?. j  S9 x) g- ]    注意:1、DELL机器的BIOS文件,一定要从DELL厂家下载,最好不要从第三方网站下载。
. e- {  J  z' Z: o2 F1 {% F6 H          2、在分离BIOS时,注意使用的参数及格式。
8 ?( k5 Y- u9 o5 ]" f$ y( w
回复 支持 反对

使用道具 举报

caven1222 发表于 2008-10-2 21:13:55 | 显示全部楼层 来自 中国北京
牛!~学习了
回复 支持 反对

使用道具 举报

lidexia1984 发表于 2008-10-2 21:49:30 | 显示全部楼层 来自 中国广东深圳
学习了
回复 支持 反对

使用道具 举报

     
91xiubbss 发表于 2008-10-2 23:51:52 | 显示全部楼层 来自 中国广东广州
好像写了很久了吧,
回复 支持 反对

使用道具 举报

小小本本维修 发表于 2008-10-3 10:18:21 | 显示全部楼层 来自 中国湖南娄底
太辛苦了楼主   谢谢
回复 支持 反对

使用道具 举报

tianjf 发表于 2008-10-23 18:39:59 | 显示全部楼层 来自 中国江苏徐州

谢谢分享

学习了,牛
回复 支持 反对

使用道具 举报

tjj181513 发表于 2008-10-23 18:56:49 | 显示全部楼层 来自 中国上海
太辛苦了楼主   谢谢
回复 支持 反对

使用道具 举报

小吕TT 发表于 2008-10-26 19:10:40 | 显示全部楼层 来自 中国广东深圳
太厉害了
& D; S2 U  }1 r7 X
回复 支持 反对

使用道具 举报

晨吉 发表于 2008-10-26 20:10:28 | 显示全部楼层 来自 中国江苏常州
辛苦了   挺复杂的  慢慢学吧
回复 支持 反对

使用道具 举报

郑州华诚科技 发表于 2008-10-26 20:20:39 | 显示全部楼层 来自 中国河南郑州
试过,挺好用的
回复 支持 反对

使用道具 举报

woshililixin 发表于 2008-11-20 23:13:59 | 显示全部楼层 来自 中国湖北武汉
值得佩服,太感谢了
回复 支持 反对

使用道具 举报

kai2045 发表于 2008-11-20 23:35:53 | 显示全部楼层 来自 中国广东茂名
顶一下.学习了
回复 支持 反对

使用道具 举报

sunny217 发表于 2008-11-25 14:59:51 | 显示全部楼层 来自 中国江苏南京
请教楼主.DELL的BIOS在哪下载.官网怎么查不到..不像IBM的那样好查啊.能不能给个具体地址..
回复 支持 反对

使用道具 举报

sdjnlfc 发表于 2008-11-25 15:07:09 | 显示全部楼层 来自 中国山东济宁
太辛苦了楼主   谢谢
6 Y8 g' O) g2 i: b( H% X/ R本文来自: 中华维修论坛(www.91xiubbs.com) 详细出处参考:http://www.91xiubbs.com/thread-119035-1-1.html
回复 支持 反对

使用道具 举报

qjklwidt 发表于 2008-12-8 22:03:35 | 显示全部楼层 来自 中国湖北荆州

==

太历害啦,但是还是看不懂太深了吧
回复 支持 反对

使用道具 举报

idallyc 发表于 2008-12-8 22:06:52 | 显示全部楼层 来自 中国重庆
有必要写得这么夸张吗??????突出专业吗?
回复 支持 反对

使用道具 举报

远洋科技 发表于 2008-12-10 18:15:38 | 显示全部楼层 来自 中国广东广州
太牛了支持,
回复 支持 反对

使用道具 举报

NORMAN 发表于 2008-12-10 18:45:06 | 显示全部楼层 来自 中国广东广州
真的太复杂了,不懂
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表