Windows 95 Build 224

来自 WinStory Wiki
跳转到导航 跳转到搜索
4.00.224
Windows 95 的版本
发布名称Beta 2
操作系统系列Windows 9x
内核版本4.00
内部版本号224
体系结构x86
编译日期1994 年 11 月 3 日
有效期
时间炸弹1995 年 3 月 31 日 (+148 天)
产品密钥
Beta Site ID186349
密码(Password)94730fb34
关于对话框

Windows 95 Build 224 是 Windows 95 的官方 Beta 2 版本。它有 free 版本和 check/debug 版本。但是,由于缺少 USER32.DLL,此版本的 check/debug 版本不可用且拒绝启动。

尽管发送给测试人员的 CD 上打印了日期,内容文件的时间戳也设置为 1994 年 10 月 28 日,但 PRECOPY2.CAB 中的 layout.inf 文件表明此版本实际上是在 1994 年 11 月 3 日编译的,因此 Microsoft 可能出于未知原因决定故意更改媒体文件的时间戳。

NFO 文件

以下 NFO 文件作为 PWA 版本的一部分包含在内。[1]

NFO 内容

                                             ▄▓▄
              ▄█▄                          ▄▀▒▓▌
             ▐██▄▀▀▄              ▄      ▄▀ ░▒▓
             ██████▄▀▄          ▄▀▓▌   ▄▀   ░▓▌ ▄▄
            ▐███████▌▐▌       ▄▀ ▒▓    ▐▌  ░▒▓ ▐▌▐██▄▄        .
           ▄█████████▌█     ▄▀  ░▓▌     █ ░▒▓▌ █ █████▀▀▄▄   ■
            ▀▀█████████▌  ▄▀   ░▒▓      ▐▌░▒▓  ▐▌▐██▀  ▄  ▀▄▀
               ▀████████   █  ░▒▓▌      █░▒▓▌   ▀▄██▌   ▀▄
          ▌     ▐██████▌   ▐▌░▒▓▀  ▄▀  ▐░▒▓▀    ▄ ▀█▀     █▄
          ▐▌ ▐   ██████    █░▒▒▀ ▄▀ ▀ ▄▀▄▀     ▐▓░▄   ▄▄  ▐▀▄
────────── ▓▄▀▌ ▐█████▌───▐░▒▒ ▄▀   ▄█▀▀ ───── ▓▒░▐▌ ▀   ─ █▓█ ───-───-─· ·
           ▐▓ ▀▄█████▀    █▄▀     ▄▀    ▀▄    ▐▓▒  █      ▐▌▒▓▌
            ▄▓▓████▀     ▐▀      ■            ▓▒░  ▐▌    ▄▀ ░▒▓
          ▄▓▓██▀▀ ▄▄    ▄▀      .            ▐▓▒░   ▀▄    ▀▄ ░▓▌
         ▐▓▓▀ ▄▓    ▀▀▄▄▄                    ▓▒░     ▄▀     ▀▄▒▓
         ▓▒▌  ▐▓▒        ▀▀▀▄               ▐▓▒░░  ▄▀         ▀
         ▐▓▄   █▓▒       ░▄▀                ▀▓▓▒▒░▀
          ▀▓▀  ▐▓▒░    ░▄▀                    ▀▓▀     ..R.Noble 
                █▓▒░░░▄▀
                █▓▒▒▒▀     ... Pirates With Attitudes
               ▐▓▓▒▀
              ▄▓▓▀           Proudly Presents ...
═══════════════▀═════════════════════════════════════════════════════════════
│ ⌐ Windows 95 Official Beta 2 Build 224                at 11-09-94 16:00 ¬ │
│───────────────────────────────────────────────────────────────────────────│─
│ Supplier .....: Dark Lord            │ Type .....: Win. Comp              │
│ Cracker ......: N/A                  │ Video ....:                        │
│ Packager .....: Les Manley           │ Audio ....:                        │
│ Protection ...: S/N                  │ Rating ...: [■■■■■■■■■-]           │
═══════════════════════════════════════════════════════════════════════════════

   There is a protection on this one to like every other version's on W95
   NTA's user id is working on this one to.. 
   BETA ID: 162330 Location:01a74a138
   

   Special Note: We're all thinking of you Blackhawk! Hope you get
                 well real soon....

                 In the mean time, Snakes Place will be acting World HQ

                           -/ This is PWA -\


┐──────────────────┐────────────────────────────────────────-- -   -  ·· ·  ·
│ President .......│ Orion
└──────────────────┐────────-───- -- ·· ··  ·
│ Council .........│ Blackhawk, Dark Lord, Les Manley, Satman, Snake
└──────────────────┐─────────────────--- -   -  · · ··   ·
│ Senior Members ..│ Gordon Gekko, Rambone, Raw Liquid, Vigilante
└──────────────────┐─────────────────--- -   -  · · ··   ·
│ Members .........│ Charlie, Chowdery, DreamWEaver, Gumby, Ixcalthar,
│                  │ Kracken, Marlenus, Mr. Eagle, Roland of Gilead, Skybum
│                  │ Snidely Whiplash
└──────────────────┐─────────────────--- -   -  · · ··   ·
│ Affiliate .......│ Ares, Defcon-4, Drew, Mad Wizard, Magic Design,
│   Programmers ...│ Soul Rebel, Straight Jacket
════════════════════════════════════════════════════─════─═───-──-─--  ·· ·  ·

⌠ ────────────────────────────────────────────────────────────────────────────
│ Bulletin Board Name······│ Status······Nodes │ AC· │ SysOp ·············· │
───────────────────────────│───────────────────│─────│────────────────────────
│ Assassins' Guild ······· │ World HQ ····[11] │ XXX │ Blackhawk / R.Liquid │
│ Snake's Place ·········· │ U.S. HQ ······[4] │ XXX │ Snake ·············· │
│ Second Front ··········· │ European HQ ··[4] │ +XX │ Les Manley ········· │
───────────────────────────│───────────────────│─────│────────────────────────
│ Boner's Domain ········· │ Member Board ·[4] │ XXX │ Rambone ············ │
│ GetaWay ················ │ Member Board ·[5] │ +XX │ Macro Nit ·········· │
│ Falcon's Eye ··········· │ Member Board ·[5] │ XXX │ Ixcalthar ·········· │
│ Origin Unknown ········· │ Member Board ·[2] │ XXX │ Satman ············· │
│ Rising Sun·············· │ Member Board ·[1] │ XXX │ Orion  ············· │
│ Velvet Underground ····· │ Member Board ·[2] │ XXX │ Vigilante ·········· │
───────────────────────────│───────────────────│─────│────────────────────────
│ Belly of the Beast······ │ Affiliate ····[1] │ 603 │ Sulfuric Acid ······ │
│ Warez Shack ············ │ Affiliate ····[2] │ 404 │ Reich ·············· │
│ Access Denied ·········· │ Affiliate ····[3] │ 619 │ Criminal ··········· │
═══════════════════════════════════════════════════════════════════════════════

            If you are going to do it ... Do it with an ATTITUDE!


   Please note that PWA is NOT accepting pay sites of any nature.... We're 
   in this for fun and entertainment, not to try to make ourselves rich. :)


────────────────────────────────┤ Final Note ├─────────────────────────────────
 ║ Support the software companies! If you enjoy using a program or using a   ║
 ║ Util, consider buying it! Someone's got to make it worth the programmer's ║
 ║ effort to keep up the high standards... They made it, so they DESERVE it! ║
───────────────────────────────────────────────────────────────────────────────

Bug

Checked/debug 版本

在讨论问题的原因之前,让我们首先获得有关 free 和 check/debug 版本的 USER.EXE 的更多信息,因为蓝屏死机错误发生在 USER.EXE 的内存范围。

值得一提的是,所有其他调试文件都运行正常,系统可以在 check/debug 版本的 USER.EXE 被替换为 free/零售文件的情况下启动。但是我们不会得到任何提到版本是(调试)的声明,也不会在屏幕右下角看到桌面水印,上面写着“Debug Windows 4.00.224(调试 Windows 4.00.224)”,因为这些字符串位于 USER.EXE 本身。

因此,通过使用 check/debug 版本的 USER.EXE 将终端连接到 WDEB386 来测量系统在启动过程中发生的大量活动,并跟踪它可能出错的位置,我们最终确定了 USER32.DLL 中的以下代码:

013F:BFF64320  MOV     EAX,DWORD PTR [BFF6614E]
013F:BFF64325  MOV     AX,WORD PTR [EAX+0000024E]
013F:BFF6432C  SUB     AX,0EAA
013F:BFF64330  CMP     AX,0001
013F:BFF64334  SBB     EAX,EAX
013F:BFF64336  NEG     EAX
013F:BFF64338  RETD

查看 kernel-debugger 中的代码,它从中获取信息的区域(即存储在 DS:BFF6614E + 0x24E 中的地址)被认为是来自文本:“Status = .Terminate = ”,然后从中减去 0xEAA 并取反,看起来它是问题所在的地方,因为在它返回之前,AX 是 00000000。当我们手动将其设置为 1(r ax=1)并继续启动版本时,它显示了 GUI。

但我们仍然遇到了 Trap14(0x0E)。这次的原因是由于地址无效:

Trap 14 (0EH) - Page Fault 0004, Not Present, Read Access, User Mode
AX=91EFA600  BX=0066FA96  CX=815E173C  DX=00040990  SI=00540494  DI=0066FBA0
IP=BFF6467E  SP=0066F7B8  BP=0066FA18  CR2=91EFA646  CR3=003EE  IOPL=0  F=-- --
CS=013F  SS=0147  DS=0147  ES=0147  FS=1CBF  GS=1B57 -- NV UP EI NG NZ NA PE NC
013F:BFF6467E  MOVZX   EAX,WORD PTR [EAX+46]                DS:91EFA646=INVALID

回顾此行之前的代码,我们看到了这一点:

013F:BFF6468D  MOV     EAX,DWORD PTR [BFF6614E]

所以,现在我们知道这个地址(BFF6614E)与这个问题有重要关系,如果不是这样的话。

这个地址后来被识别为 USER32.DLL 的共享表地址,它的指针是 USER.EXE 中的代码段 21,所以现在我们需要对两个 USER.EXE 做一个比较。

感谢 Watcom Binary 文件转储器(wdump.exe)提供有关 USER.EXE 的详细报告。我们获得了有关此特定细分段的以下信息:

  • free 版本的 USER.EXE 中的段 21h 从文件中的偏移量 0x67440 开始,大小为 0x452,分配为 0xEAA
  • check/debug 版本的 USER.EXE 中的段 21h 从文件中的偏移量 0x7E080 开始,大小为 0x992,分配为 0x13EA

在 HxD 的帮助下,我们从文件中复制/粘贴段并进行比较,我们发现在 free 版本的 USER.EXE 中段本身的数据保留区域的开头从 0xAD 开始,而在 check/debug 中,它从 0x37B 开始。所以现在我们有了以下两条线索:

  • free 和 check/debug 版本的 USER.EXE 分配之间的差异为 0x13EA - 0xEAA = 0x540
  • 两个 USER.EXE 之间的数据位置之间的差异为 0x37B - 0xAD = 0x2CE

现在,通过查看代码,我们可以想象以下内容:如果 free 版本的 USER.EXE0xAD0x452 之间的所有指针都应指向段中备用区域中的某个位置,并且 0x4520xEAA 之间的指针应指向操作系统在段数据之外的额外分配,那么在 Check/debug 版本中,USER.EXE 应该有其相应的位置。

现在我们切换到 IDA。我们将 USER32.DLL 加载到其中,并搜索所有 BFF6614E 其中的代码,我们得到了大约 20 个结果。我们现在要做的是:

  • 我们查找具有此布局的任何代码:
MOV reg, DWORD PTR [BFF6614E]
ADD reg, offset

MOV reg1, DWORD PTR [BFF6614E]
MOV reg2, (D)WORD PTR [reg1+offset]
  • 现在我们看一下“偏移量”值。如果它介于 0xAD0x452 之间,我们需要添加 0x2CE。如果它介于 0x4520xEAA 之间,我们应该向它添加 0x540,如果它超出了 0xEAA(例如,0x10000 是我们的结果之一),那么这应该保持不变,因为它现在指向另一个部分,这可能是正确的。
  • 通过使用 HxD 手动编辑可以满足我们需求的大多数结果,此版本可以启动并正常工作,而不会出现任何问题。

图库

其他

引用资料