快科技 11 月 23 日消息,一名电脑爱好者最近挖掘出一个存在于苹果 Mac Classic II ROM 代码中长达 34 年的 Bug。
令人惊讶的是,这个原本足以导致系统启动崩溃的漏洞,却从未在真实的硬件上出现,背后则是摩托罗拉 68030 CPU 中一个未被记录的功能,悄无声息地抵消了这一缺陷。
这位名叫 Downtown Doug Brown 的爱好者,同时也是开源项目 MAME 的忠实粉丝,他在使用 MAME 模拟 Mac Classic II 时,发现该系统在启用 32 位寻址模式时会崩溃,但在 24 位模式下则能正常启动,而原始硬件则从未出现此类问题。

这一现象激发了 Brown 的好奇心,在对苹果 ROM 进行逆向和对模拟机器进行大量取证调试后,Brown 最终确认:这个 bug 确实存在于 Mac Classic II 的 ROM 代码中,与模拟软件无关。
问题的核心在于,在 MAME 中运行引导代码时,Mac Classic II 会执行一条指令,跳转到一个位于内存 "A1" 的无效地址,导致下一条指令在错误的位置执行,从而引发崩溃。
当 Brown 在同一时代的 Macintosh 2ci(同样使用摩托罗拉 68030 CPU)上调试这段代码时,发现硬件采取了一种不同的处理方式:它将这个无效地址 " 巧妙地 " 转换成了一个有效地址,轻松跳过了这个缺陷。
Brown 指出,68030 CPU 的官方文档中并没有记载过这种运作特性,如果不是 MAME 模拟器,这个 bug 很可能 " 永远不会被发现 ",因为系统启动看起来一切正常。
Brown 写道:" 这表明了 bug 可以在你认为一切都完美无瑕的地方潜伏。" 他也承认,这个 bug 并不算大问题:" 机器运行良好,没有人注意到。"



登录后才可以发布评论哦
打开小程序可以发布评论哦