Windows Vista Build 5000.0.vbl_core.040808-2000
| Windows Vista 的版本 | |
| 操作系统系列 | Windows NT 系列 |
|---|---|
| 内核版本 | Windows NT 6.0 |
| 内部版本号 | 5000 |
| 修订版本号 | 0 |
| 体系结构 | x86 |
| 内部版本实验室 | vbl_core |
| 编译日期 | 2004 年 8 月 8 日 |
| 有效期 | |
| 时间炸弹 | 2005 年 8 月 3 日 (+360 天) |
| 已知 SKU 版本 | |
| Professional | |
| 产品密钥 | |
| TCP8W-T8PQJ-WWRRH-QH76C-99FBW | |
| 关于对话框 | |
Windows Vista Build 5000.040808-2000 是 Windows Vista 的版本。2020 年 1 月 23 日,UX.Unleaked 博客创始人 Grabberslasher 在帖子上列出了此版本,指出此版本将发布到 BetaArchive 的 FTP 服务器,并于 2020 年 1 月 26 日与 Build 4048、此版本的其他编译和 Build 5001 一起在他的 33 个 Longhorn/Vista 版本的第三组中发布。[1]
默认情况下,此版本有一个严重的 bug,即一旦 Windows 切换到图形模式,它就会挂起,最终出现稳定的蓝色或黑色屏幕,因此在正常情况下无法安装此版本。
新增功能和更改
- 添加了 Service Pack 1 的品牌标识,可能是由于无意中将 Windows Server 2003 Service Pack 1 的代码反向集成所致。
Bug 分析
模块名称:win32k.sys
原因:未初始化的变量,导致 win32k 引发 Access Violation 异常(通过读取 null 指针)并在没有任何通知的情况下失败。
当 Windows 加载时,它只显示空白的蓝色或黑色背景,没有任何光标或水印。键盘中断也被卡住/未注册。首先检查显示内核空闲循环运行良好并处理中断。WinDbg 中没有异常或错误检查,因此下一个检查是在 nt!ExRaiseStatus 和 nt!ExRaiseAccessViolation,这显然是 win32k 调用并迁离它所在的函数的内容。根据下方的堆栈,它要么在 win32k!EngFreeModule+0x5c9(前面的指令),要么是被调用的函数调用了它:
f75d6d24 nt!ExRaiseAccessViolation f75d6d48 win32k!EngFreeModule+0x5ce f75d6d50 win32k!EngFreeModule+0x4b5 f75d6da0 nt!KeReleaseInStackQueuedSpinLockFromDpcLevel+0xb14 f75d6da4 ntdll+0x18c3c f75d6da8 0x75a69626
检查代码,它正在调用位于win32k!EngMulDiv+0x29c0 的函数:
win32k!EngFreeModule+0x5b1: bf8a0581 e84a5effff call win32k!EngMultiByteToUnicodeN+0x4310 (bf8963d0) bf8a0586 893530079cbf mov dword ptr [win32k!HT_Get8BPPMaskPalette+0x30bb0 (bf9c0730)],esi bf8a058c 8935cc219cbf mov dword ptr [win32k!HT_Get8BPPMaskPalette+0x3264c (bf9c21cc)],esi bf8a0592 ff1500119abf call dword ptr [win32k!HT_Get8BPPMaskPalette+0x11580 (bf9a1100)] bf8a0598 50 push eax bf8a0599 e8e280f8ff call win32k!EngMulDiv+0x29c0 (bf828680) bf8a059e 8bd8 mov ebx,eax <-- The return address in the stack, second frame (win32k!EngFreeModule+0x5ce) bf8a05a0 3bdf cmp ebx,edi
在此过程中,使用逐行跟踪(最终调用 ExRaiseAccessViolation)在以下部分中找到:
win32k!EngMulDiv+0x2b62:
=== bf828822 3b0d9c219cbf cmp ecx,dword ptr [win32k!HT_Get8BPPMaskPalette+0x3261c (bf9c219c)] ds:0023:bf9c219c=00000000 ===
win32k!EngMulDiv+0x2b68:
bf828828 0f8721fcffff ja win32k!EngMulDiv+0x278f (bf82844f) [br=1]
win32k!EngMulDiv+0x278f:
bf82844f ff1580109abf call dword ptr [win32k!HT_Get8BPPMaskPalette+0x11500 (bf9a1080)] ds:0023:bf9a1080={nt!ExRaiseAccessViolation (809849aa)}
与 Build 5000.040809-2000 的 win32k.sys 相比,win32k!HT_Get8BPPMaskPalette+0x3261c (bf9c219c) 在此版本的 win32k.sys 中的是 7fff0000 而不是 00000000。此时,已查明故障的位置。通过与 Build 5000.040808-2000 的 win32k.sys 进行一些额外的比较,发现此地址被填满了:
-
此版本的
win32k.sys -
Build 5000.040809-2000) 的
win32k.sys
解决方法
- 将
win32k.sys替换为 Build 5000.040809-2000 的副本,将其与此版本win32k.sys进行比较,结果发现这是唯一的更改,它将像修补后一样运行。 - 使用 WinDbg:进入会话后,键入:
ba e1 bf9c73b3 "r eax=7fff0000;e bf9c219c 00 00 ff 7f;gc"
- 现在,它将调整此地址的内容并继续。
Bug
Windows 资源管理器
Windows 资源管理器中的详细信息窗格无法正常工作,而正常工作的窗格和任务无法打开或关闭。在控制面板中,它们在加载后也会很快消失,因此几乎不可能切换到经典视图。这是因为此版本的 NT 内核版本是 6.0。
全新安装体验
在到达 OOBE 的第二页之前,全新安装体验中的动画“问号”助手不会显示,这可能是由于 Microsoft Agent 技术本身的 bug。
Windows Media Player
Windows Media Player 中的可视化效果无法正常工作。
图库
-
启动屏幕
-
OOBE 在首页上缺少问号助手
-
安全关机屏幕
