快科技11月23日消息,一名電腦愛好者最近挖掘出一個存在于蘋果Mac Classic II ROM代碼中長達34年的Bug。
令人驚訝的是,這個原本足以導致系統(tǒng)啟動崩潰的漏洞,卻從未在真實的硬件上出現(xiàn),背后則是摩托羅拉68030 CPU中一個未被記錄的功能,悄無聲息地抵消了這一缺陷。
這位名叫Downtown Doug Brown的愛好者,同時也是開源項目MAME的忠實粉絲,他在使用MAME模擬Mac Classic II時,發(fā)現(xiàn)該系統(tǒng)在啟用32位尋址模式時會崩潰,但在24位模式下則能正常啟動,而原始硬件則從未出現(xiàn)此類問題。

這一現(xiàn)象激發(fā)了Brown的好奇心,在對蘋果ROM進行逆向和對模擬機器進行大量取證調試后,Brown最終確認:這個bug確實存在于Mac Classic II的ROM代碼中,與模擬軟件無關。
問題的核心在于,在MAME中運行引導代碼時,Mac Classic II會執(zhí)行一條指令,跳轉到一個位于內存“A1”的無效地址,導致下一條指令在錯誤的位置執(zhí)行,從而引發(fā)崩潰。
當Brown在同一時代的Macintosh 2ci(同樣使用摩托羅拉68030 CPU)上調試這段代碼時,發(fā)現(xiàn)硬件采取了一種不同的處理方式:它將這個無效地址“巧妙地”轉換成了一個有效地址,輕松跳過了這個缺陷。
Brown指出,68030 CPU的官方文檔中并沒有記載過這種運作特性,如果不是MAME模擬器,這個bug很可能“永遠不會被發(fā)現(xiàn)”,因為系統(tǒng)啟動看起來一切正常。
Brown寫道:“這表明了bug可以在你認為一切都完美無瑕的地方潛伏。”他也承認,這個bug并不算大問題:“機器運行良好,沒有人注意到。”

如需請務必注明出處:快科技
責任編輯:黑白





京公網安備 11011402013531號