这两天一直在摆弄我的戴尔笔记本电脑(型号是2420)。 由于某些原因,我将笔记本电脑BIOS升级到A07,但是当我想将BIOS降级回原来的较低版本时,我发现它不起作用。 我一开始用的软件对bios没有任何影响。 备份文件无法恢复(因为升级的时候想尽快搞定,所以没仔细看,可能是程序不适合笔记本主板型号的原因)! 我尝试了网上各种刷BIOS的软件和方法(包括在dos下使用.exe等),但都失败了,这给我带来了很多的挫败感和郁闷。

我首先查看另一台同型号电脑的BIOS版本是A03,于是我从dell官网下载了A03版本的BIOS更新程序(.EXE)。 然而,当您想要更新BIOS时,它会提示“您即将将您的BIOS刷新到较旧的BIOS。戴尔不会将您的BIOS刷新到较旧的BIOS。按确定退出。” 当你点击确定后,程序就退出了,这让人相当生气。 戴尔,你为什么要有这个程序来自己做决定? 那么,为什么禁止用户降级BIOS呢?

在我尝试了所有的方法都失败后,看来此时所有的在线工具都失效了(可能是因为这款笔记本电脑型号比较新,所以在线工具不适用),我不得不考虑最可靠最可靠的一个。 安全的办法是使用戴尔官网的BIOS更新程序进行闪回(因为官网可以明确下载严格匹配机器型号的BIOS更新)。 显然,因为我的BIOS版本已经刷到A07了,所以想刷回低版本A03。 我知道这个程序执行到最后,会弹出一个超级愚蠢又绝望的提示,然后就退出了。 所以,绝境之下,此时唯一的想法就是:修改这个程序! 找到弹出这个的代码并扭转他的逻辑! 这是我此时最后的救命稻草,也是我唯一的希望。 如果还是失败,我就不得不接受这个令人沮丧的现实(也就是凑合),但这最后一根救命稻草终将让我脱离危险。 。

于是工作开始了。 启动IDA,打开.exe程序,等待一段时间IDA完成分析。 让我高兴的好消息是这个程序没有任何加密或自我保护。 显然这是一个直接编写的程序(没有采取任何保护措施来防止有人修改它)。 我又查看了这个程序的资源,感觉里面有一些对话框,好像这个程序是给程序用的。 一种“封装”,因为它包含了一些程序的印记,比如对话框等。 然而,当我运行这个从网上下载的程序时,它总是崩溃,所以我无法继续将注意力转向反汇编分析.exe程序。

弹出的代码非常容易定位,因为文本内容以纯文本形式放在.rdata中。 很容易找到弹出的代码。 找到它们之后,继续跟踪程序跳转的关键节点,很快就找到了(.text)地址,代码如下:

.text:00466E00
.text:00466E00 loc_466E00:   ; CODE XREF: sub_466D40+9Fj
.text:00466E00               ; sub_466D40+B7j
.text:00466E00 push  offset aWarning_4 ; "WARNING"
.text:00466E05 lea   eax, [ebp+Caption]
.text:00466E0B push  eax             ; LPSTR
.text:00466E0C call  ds:wsprintfA
.text:00466E12 add   esp, 8
.text:00466E15 mov   ecx, [ebp+var_10C]
.text:00466E1B cmp   ecx, [ebp+var_214]
.text:00466E21 jnb   loc_466EF0       ; 【重要】要修改的指令!
.text:00466E27 movzx edx, word_5072F8
.text:00466E2E and   edx, 80h
.text:00466E34 jz    short loc_466E93
.text:00466E36 push  offset aWarning_5 ; "WARNING!!"
.text:00466E3B lea   eax, [ebp+Caption]
.text:00466E41 push  eax             ; LPSTR
.text:00466E42 call  ds:wsprintfA
.text:00466E48 add   esp, 8
.text:00466E4B push  offset aYouAreAboutToF ; "You are about to flash your BIOS to an "...
.text:00466E50 lea   ecx, [ebp+Text]
.text:00466E56 push  ecx             ; LPSTR
.text:00466E57 call  ds:wsprintfA
.text:00466E5D add   esp, 8
.text:00466E60 push  31h             ; uType
.text:00466E62 lea   edx, [ebp+Caption]
.text:00466E68 push  edx             ; lpCaption
.text:00466E69 lea   eax, [ebp+Text]
.text:00466E6F push  eax             ; lpText
.text:00466E70 push  0               ; hWnd
.text:00466E72 call  ds:MessageBoxA
.text:00466E78 cmp   eax, 1
.text:00466E7B jnz   short loc_466E87

未经允许不得转载! 作者:admin,转载或复制请以超链接形式并注明出处天心神途传奇手游发布网

原文地址:《有关如何在戴尔笔记本电脑上闪回到较低版本 BIOS 的详细教程》发布于:2024-02-25

发表评论

表情:
验证码
评论列表 (暂无评论,94人围观)

还没有评论,来说两句吧...