winload.exe数字签名问题详解 您所在的位置:网站首页 win7开机缺少winloadexe winload.exe数字签名问题详解

winload.exe数字签名问题详解

2024-06-18 05:27| 来源: 网络整理| 查看: 265

    在上篇文章中关于winload.exe数字签名无法验证导致无法正常开机问题,现在再做个深入的分析。

    部分遇到相似问题的朋友在使用将原系统C:\Windows\System32\Boot目录下的winload.exe文件拷贝到C:\Windows\System32目录下替换错误的winload.exe的方法之后重启电脑发现问题依旧,自然就认为这是个坑人的办法。其实事实并非如此,下面就来详细分析下这个问题。

    在搞清楚这个问题之前先要了解一下win7的启动过程:电脑加电后,首先它会启动主板上的BIOS,BIOS默认对电脑的硬件进行自检,完成自检之后BIOS会搜索硬盘上的MBR,如果MBR正常,那么MBR就会读取硬盘上的DPT,也叫分区表,DPT里记录了硬盘的分区表信息,MBR会在这些分区里搜索活动分区,并且读取活动分区里的主引导记录PBR,如果一切正常就把控制权给PBR。在取得控制权后PBR会寻找活动分区根目录下的bootmgr文件,这个文件是win7的启动管理器,bootmgr接管后会读取活动分区根目录下Boot文件夹下的BCD文件,这个文件存储了win7的启动配置数据,Boot文件夹还包含相应语言的文件夹,对应语言文件夹下存在BOOTMGR.EXE.MUI文件。bootmgr读取BCD并调用BOOTMGR.EXE.MUI最终为我们呈现启动菜单界面。当然因为很多人默认直接进入Windows所以就看不到启动菜单。完成这一步骤后,bootmgr会按照在BCD文件中设置的系统所在分区加载该分区Windows\System32\winload.exe程序,就是说winload.exe的运行环境是bootmgr。winload.exe取得控制权后加载内核,硬件和其他服务,然后进入桌面至此完成启动。

   上面的文字叙述可能比较繁琐,整个启动过程简单来说就是:BIOS--MBR--DPT--PBR--bootmgr--BCD--启动菜单---winload.exe(如果选择的是win7)--内核加载等 --启动整个windows7系统。

    启动过程搞清楚了就能清楚地定位问题,既然winload.exe无法验证签名,它又运行在bootmgr下而且BCD文件是配置文件,那我们就得到解决问题的第一个方法,禁止验证winload.exe的签名就可以了,那又怎么禁止呢?前面说到的BCD配置文件是控制权从bootmgr到winload.exe的关键文件,显然我们要去找它。先进入WinPE里面(如果不知道什么是PE和怎么进PE就百度吧),然后到原来系统盘根目录下的Boot文件夹里就可以看到BCD文件了,操作之前先备份一下BCD文件,在PE里找到BOOTICE程序,这是BCD编辑工具,打开它你会看到这样的界面: 

                          

选择BCD编辑后选择其他BCD文件,然后到系统盘Boot目录下找到BCD文件,最好用智能编辑模式打开BCD文件,然后可以看到这样的界面:

                           

这里可以看到在左下方有禁用数字签名验证的选项,这里为了演示我已经禁用了数字签名验证。到这里就算是数字签名无效的winload.exe也可以启动系统了。到这里也可以看出很多使用ghost系统的用户因为关闭了更新而BCD中又没有禁用驱动签名验证从而导致winload.exe数字签名失效而无法验证,使系统无法启动。

    上面的方法是禁用数字签名,当然也可以选择使用有效签名的winload.exe文件替换签名无效的winload.exe文件。

相信到这里关于文首疑问的答案应该很清楚了。显然很多用户C:\Windows\System32\Boot目录下的winload.exe文件的签名也是无效的,或者说你的winload.exe文件的数字签名本身是无效的,你又是用的ghost系统,开始时系统BCD是禁止数字签名验证的,在修改过BCD之后或BCD损坏之后,系统开始验证winload.exe的数字签名,验证失败导致系统无法加载。可以看下我的winload.exe:

                          

我现在使用的winload.exe的签名无效但是我禁止数字签名验证一样可以正常进入系统。当然我的C:\Windows\System32\Boot目录下的winload.exe文件的数字签名是有效的。所以替换之后可以成功进入系统。所以说不是替换文件的方法无用,而是很多人只是机械的按别人的方法操作而不看问题的根源。

    到这里问题已经基本说清楚也解决了。最后说一下两种方法的优缺点吧,当然两种方法都需要PE,所以说PE是个好东西。禁用数字签名验证只需要修改BCD即可,很方便。但是禁用数字签名验证会带来一定的安全问题。替换文件就需要找到数字签名有效的winload.exe文件,是的一定要有效才行,网上下载的很多都是无效的,所以导致很多人到坑里去了,这个麻烦一点但不需要牺牲安全。

    虽然网上有很多解决这个问题的办法,但很多都只说了个方法而没有具体解决问题的思路。其实只要理清思路,问题的解决办法自然会有啦,很多系统无法成功启动的问题只要顺着win7启动过程去看就能找到解决的方法。

    



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有