2014.08.14 15:00

家用主機秘辛16:把記憶體打開看看

ADVERTISEMENT

這邊講的把記憶體打開看看,當然不是指把主機拆開,然後看看記憶體顆粒的用料如何,而是看看記憶體內部的資料。通常來說,這個動作叫做dump,也就是把記憶體內資料導出的意思,不過遊戲廠商會這樣乖乖地把雙腳張開,讓所有人把資料看光光嗎?

前情提要:

ADVERTISEMENT

ADVERTISEMENT

刪儲

ADVERTISEMENT

ADVERTISEMENT

導出記憶體

當我們想要破解主機時,第一件要做的事,就是導出主機的記憶體資料,通常來說,這個工作需要從硬體端下手,但是在Wii身上,事情好像有點不同。

當玩家打開Wii的電源之後,主機會先進入Wii的主選單,接著如果放入GameCube的遊戲光碟,主機就會進行辨識,自動啟用Broadway處理器,並切換到GameCube模式,接下來有趣的事來了。

原始GameCube硬體只有16MB負擔音效的記憶體(代號為MEM1),以及24MB負擔遊戲程式的記憶體(代號為MEM2)。而Wii也有MEM1和MEM2,不過MEM2的容量卻升級為64MB,在Wii的GameCube模式下,系統只會調用其中24MB的記憶體,剩下的48MB則閒置不用。當Wii啟動Broadway處理器,進入GameCube模式之後,主機並不會清空MEM2內的資料,所以Wii主選單的資料還會放在MEM2之中,

▲GameCube的記憶體容量比較小,只有16MB + 24MB。

▲Wii的記憶體容量提升為16MB + 64MB。

▲當Wii在GameCube模式狀態時,總容量64MB的MEM2只有24MB會被用到。

偷讀未刪除資料

現在問題來了,我們只能存取其中24MB的區域,那我們要如果存取剩下的區域呢?駭客組織Team Tweezers(也稱為fail0verflow)做了一些手腳,就如他們的名字一般,他們在GameCube模式中,使用Tweezers來橋接Wii的記憶體資料。雖然說我們每次還是只能存取24MB的區域,但是現在可以在不同區塊中切換,再加上如先前提到的,Wii主選單的資料在進入GameCube模式之後並不會被刪除,所以我們就可以在GameCube模式中取得完整Wii記憶體中的原始資料。

以上還不是這段故事最勁爆的部分,任天堂犯下的最大錯誤,就是先前無法存取的48MB記憶體區塊中,儲存了所有Wii所使用的金鑰。

簡單地整理一下,整體流程就是讓Wii進入GameCube模式,然後趁記憶體資料還沒被刪除的時候,用GameCube的破解工具讀取記憶體中的資料,然後就可以取得Wii的金鑰。

▲當Wii進入GameCube模式後,會將記憶體切出24MB做為MEM2,其餘48MB閒置。

▲在GameCube模式載入Tweezers,並不影響48MB閒置區塊中的資料。

▲如此一來便可以透過Tweezers分批掛載48MB閒置區塊,並讀取其中資料。

下集預告:

原文刊載於

感謝原文作者Acid_Snake同意轉載

Original article by Acid_Snake. Translate by konamigood.

延伸閱讀:

ADVERTISEMENT