时间炸弹

来自 WinStory Wiki
跳转到导航 跳转到搜索

时间炸弹(或定时炸弹)是一种软件机制,在达到设定的时间段后使计算机程序无法使用。它常见于预发布软件中,用于阻止用户保留过时的测试版本。

Windows

Windows 9x

Windows 95 Build 216 中触发时间炸弹后出错

时间炸弹通过 IO.SYS 激活。触发时间炸弹后,Windows 将在启动时显示一条消息,指出预评估期已过期,然后立即关闭。除非使用正确的 BIOS 日期重新安装操作系统,否则操作系统将无法启动,因为 IO.SYS 会自行修补以进入无限循环。与 Windows NT 中的时间炸弹不同,Windows 9x 无法通过 winver 找到到期日期。Windows 95 Build 216 是首个包含时间炸弹的已知版本。

Windows 98 开始,安装程序还会检查日期,如果日期设置不正确,安装程序将拒绝安装。

Windows NT

Windows 显示 END_OF_NT_EVALUATION_PERIOD 错误检查

一旦触发时间炸弹,END_OF_NT_EVALUATION_PERIOD 错误检查将用于在一段时间后重新启动系统。第一个具有现代时间炸弹的版本是 Windows 2000 Build 1627.1,尽管 Windows NT 3.5 的日语朝鲜语预发布版本包含一个警告消息框,要求用户在特定日期之后安装 Windows 的零售副本,这与该时代的其他版本不同。

Windows 8 及更高版本的某些版本包含时间炸弹的较温和变体,如果安装内部版本时设置的日期早于假定的到期日期(例如,Windows 8 Build 8250 设置为在 2013 年 1 月 15 日 (UTC) 到期,并且用户的时钟甚至在安装之前就早于此日期)。相反,它会停用 Windows 并阻止访问电脑设置中的个性化选项。这些版本的某些副本甚至会阻止解锁 Redpill 锁定的功能,以及禁用在控制面板中更改桌面墙纸的功能,除非使用第三方工具。除此之外,水印上方的“Microsoft 机密”警告的位置将比平时略高,表明时间炸弹已被触发。这是因为其许可策略未正确安装。

原始版本创意者更新的大多数 Windows 10 内部版本都是外部测试签名的(文件签名检查会考虑证书到期时间)。当时间炸弹激活时,引导加载程序将因签名失效而无法正常工作。Build 14965 后,外部测试版签名的文件在证书过期后仍然有效。但是,当时钟早于到期日期时,某些需要管理权限的程序可能会被阻止。必须使用注册表禁用用户帐户控制才能运行这些程序,这可以通过应用以下注册表项来实现:

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System]
"EnableLUA"=dword:00000000

但是,某些版本的 Windows 包含无法正常工作或损坏的时间炸弹,并且可以在当前日期安装。他们大多来自 Microsoft 生态系统工程访问计划(Ecosystem Engineering Access Program,EEAP)的一部分。其他一些内部版本包含测试签名证书,可以在当前日期安装。

macOS

Mac OS X Public Beta 是唯一已知具有时间炸弹的 macOS 版本。虽然时间炸弹阻止了用户登录到桌面,但它不会影响 Darwin 内核的各个方面或与用户界面无关的任何其他组件。

Mac OS X 到 Snow Leopard 的多个服务器版本也有一个到期日期,这会导致全新安装体验拒绝任何超过到期日期的串行密钥。