‎Windows 8 Build 7973.0.fbl_core2_sid_data.110330-1700

来自 WinStory Wiki
跳转到导航 跳转到搜索
7973.0.fbl_core2_sid_data.110330-1700
Windows 8 的版本
操作系统系列Windows NT 系列
NT 版本Windows NT 6.2
内部版本号7973
修订版本号0
体系结构x86, x64
内部版本实验室fbl_core2_sid_data
编译日期2011 年 3 月 30 日
有效期
时间炸弹2011 年 7 月 1 日 (+93 天)
关于对话框

Windows 8 build 7973 (fbl_core2_sid_data) is a Milestone 3 build of Windows 8. The x64 checked/debug compile of this build was uploaded to BetaArchive on 19 September 2015,[1] while the x86 free compile was uploaded on 5 June 2022.

SKU 版本和密钥

Key 密钥
Starter [a] 7Q28W-FT9PC-CMMYT-WHMY2-89M6G
Home Basic YGFVB-QTFXQ-3H233-PTWTJ-YRYRV
Home Premium RHPQ2-RMFJH-74XYM-BH4JX-XM76F
Professional HYF8J-CVRMY-CM74G-RPHKF-PW487
Ultimate D4F6K-QK3RD-TMVMJ-BBMRX-3MBMV

Redpill

The Redlock tool can be used to unlock all of the Redpill levels on this build, including the Start screen. The Metro user interface is visually identical to the fbl_core1_kernel_npc and fbl_dnt3_wireless compiles of this build. However, the MS Help app is not included.

Bugs and quirks

Advanced Vector Extensions CPU bug

This build's x86 compile will not boot on some CPUs with the Advanced Vector Extensions (AVX) instruction set due to a bug where a CPU triple fault occurs immediately after the boot screen is first displayed. A workaround is discussed later in the article.

Aero

Only the top portion of the window frame is blurred when using the Windows Aero and Aero Lite theme, leaving the side borders transparent.

Compiler

These instructions are not required for the x64 compile, and as such the compile can work without following these workarounds.

This is one of the first builds to be compiled using a new compiler. However, the problems surrounding it at that time resulted in the build becoming unbootable on certain hardware, as the boot loader does not properly function on modern x86 CPUs, namely Intel processors with the AVX instruction set and a select number of AMD CPUs. As a result, a CPU triple fault occurs resulting in either a crash on a hypervisor or a reboot on real hardware.

Patching winload.exe to run on Intel processors with AVX

In order to properly enable SSE instructions for machines using Intel processor with AVX, the 9th bit in Control Register 4 (CR4) must be turned on. The following code is executed and is located in winload.exe at offset A552:

mov     eax, cr4        ; 0f20e0
or      eax, 20h        ; 83c820        -- Turn on 5th bit, PAE (Physical Address Extension)
mov     cr4, eax        ; 0f22e0        -- Store it in CR4
mov     eax, cr0        ; 0f20c0
or      eax, 80000000h  ; 0d00000080    -- Enable paging
mov     cr0, eax        ; 0f22c0

By default the following bits are set in CR0: Protected Mode (PE) (0x00000001), Monitor co-processor (MP) (0x00000002) and Extension type (ET) (0x00000010), with no bits in CR4 set initially, so the need to turn on the 9th SSE bit (i.e. OR with 0x600) should be done, but due to limitation in this piece of code, a rewriting needs to be done and the following approach may be used instead:

mov     eax,620h        ; b820060000
mov     cr4,eax         ; 0f22e0
mov     eax,80000013h   ; b813000080
mov     cr0,eax         ; 0f22c0
nop                     ; 90
nop                     ; 90
nop                     ; 90
nop                     ; 90

As a disclaimer, patching winload.exe with these changes will invalidate integrity checks and thus requires Test Mode to be enabled (by setting NoIntegrityChecks in the BCD to on) in order to boot with the patched winload.exe, as well as ownership of the file in both %systemroot%\System32 and %systemroot%\System32\Boot need to be altered in case file replacement was not possible.

Compatibility

VMware Workstation

The Intel SSE bug can be worked around by setting the compatibility level to version 7.x or lower and the following block of code must be added to the VMX (virtual machine configuration) file in order to allow this build to boot on modern Intel CPUs:

cpuid.0.ebx = "0110:1000:0111:0100:0111:0101:0100:0001"
cpuid.0.ecx = "0100:0100:0100:1101:0100:0001:0110:0011"
cpuid.0.edx = "0110:1001:0111:0100:0110:1110:0110:0101"
cpuid.1.eax = "0000:0000:0000:0001:0000:0110:0111:0001"

The above configuration is mostly not required if the host machine has an AMD processor, and as such only requires the compatibility version to be changed.

Gallery

  1. Only available in the x86 compile

引用资料