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

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

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 的多个服务器版本也有一个到期日期,这会导致全新安装体验拒绝任何超过到期日期的串行密钥。