快科技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并不算大问题:"机器运行良好,没有人注意到。"
![]()





京公网安备 11011402013531号