Pinball on 64-Bit Alpha AXP Windows NT
6 hours ago
- 由于在64位版本中报告了一个碰撞检测错误,Windows Vista移除了《弹球》(3D Pinball for Windows – Space Cadet)程序。
- NCommander于2021年对此次移除提出质疑,发现在XP和预发布版Vista上64位版本可以正常运行,推测问题可能源于与Vista用户界面设计的不兼容。
- Raymond Chen后来澄清该漏洞特指64位Alpha AXP版本,该版本确实存在严重的碰撞检测错误。
- 作者在修复了64位构建2210版启动问题后,在Alpha NT模拟器(QEMU/ES40)上对弹球程序进行了调试。
- 发现两个错误:WNDCLASSA结构体对齐问题导致RegisterClassA函数崩溃,以及mciseq.dll中因ZAPNOT指令误用导致的指针截断问题。
- 修复这些错误后,弹球程序在64位Alpha NT系统上完美运行,未再遇到原始碰撞检测漏洞。
- 作者推测碰撞检测错误可能是在构建2210版之后引入的,或者仅在发行版中显现。