本帖最后由 youxia1220 于 2026-1-2 14:14 编辑
首先申明,我是个小白,学习制作PE时间不长,分享一点PE集成驱动体会,没有高深理论,只是自己摸索的经验。不一定全面和正确,还请大佬多多指点!
以在PE中集成Microsoft Hyper-V Virtualization Infrastructure Driver为例,说说我集成驱动的一般思路。
PE启动后,设备管理器如图:
此时定位到注册表HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Enum\ROOT\VID\0000,没有什么有用的信息可供参考。
我通常采取的做法是,在设备管理器中,更新驱动程序,浏览我的电脑以查找驱动程序。选择正常系统的程序驱动库
\Windows\System32\DriverStore\FileRepository(相同版本最好)或者从母盘解压出的驱动库\Windows\System32\DriverStore\FileRepository。
一般来说,PE都会正常安装驱动。但是Microsoft Hyper-V Virtualization Infrastructure Driver驱动不同,安装完成后,显示异常,如图所示。
虽然驱动异常,但是知道了是什么驱动,总算有一点眉目下手。定位注册表HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Enum\ROOT\VID\0000,如图所示
可以查看到这些信息,
ClassGUID为{4d36e97d-e325-11ce-bfc1-08002be10318},
Driver为{4d36e97d-e325-11ce-bfc1-08002be10318}\0043,
Service为Vid。
DeviceDesc为oem0.inf。
显然,oem0.inf就是刚刚安装的驱动inf文件,在INF文件夹打开oem0.inf,发现oem0.inf其实就是 wvid.inf。在X:\Windows\System32\DriverStore\FileRepository中可以找到刚刚存储到驱动库的驱动文件夹wvid.inf_amd64_7c50642b144b870d。
依据上述信息,定位注册表HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\Class\{4d36e97d-e325-11ce-bfc1-08002be10318}\0043,如图所示, 没有发现异常。
定位注册表HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Services\Vid,如图所示,没有发现异常。
继续排查其他注册表键值,定位HKEY_LOCAL_MACHINE\SYSTEM\DriverDatabase\DeviceIds\{4d36e97d-e325-11ce-bfc1-08002be10318},如图所示,有oem0.inf,正常。
定位注册表HKEY_LOCAL_MACHINE\SYSTEM\DriverDatabase\DriverInfFiles\oem0.inf,如图所示,未见异常。
继续排查,定位HKEY_LOCAL_MACHINE\SYSTEM\DriverDatabase\DriverPackages\wvid.inf_amd64_7c50642b144b870d,如图所示,
与正常系统对比,发现SignerScore及Version和正常系统不一样,SignerScore与签名有关,Version显然和版本有关。将SignerScore值由0x80000000改为0x0d000003,Version由00 ff 09改为ff ff 09,同正常系统一致,为稳妥起见,将oempath值路径由C盘修改为X盘打包WIM重新启动PE,驱动还是异常。如何才能成功集成Microsoft Hyper-V Virtualization Infrastructure Driver驱动,稍后继续分享。
此处改动是否必须存疑,发现其他DriverPackages下有SignerScore值为0x80000000和Version为00 ff 09的。改动后还不行,至少排除是这二个值导致驱动异常。还请大佬解说这二个注册表值的含义,有没有必须改动的必要。
|