fbpx
was successfully added to your cart.

Capcom的CPS2加密之旅 – 第1部

還記得童年精彩的大型電玩嗎?其實上面有各種保護機制,甚至超過20年後,駭客對於其保護底層才完善理解與逆向成功。

Capcom的Play System 2,簡稱CPS2,是1993年推出的街機硬體平台。該系統具有與其前身CPS1類似但改進的規格,並用了新的安全架構,
使Capcom 大型電玩首次無法被盜版。


本文參考自http://arcadehacker.blogspot.com/2017/03/a-journey-into-capcoms-cps2-silicon.html

CPS2 保護原理是,將密鑰隱藏在用戶訪問之外的SRAM,因為是SRAM所以需要電源,一旦電池耗盡,就會丟失密鑰,會使遊戲終身無法啟動。
那時代要將主機板送回到Capcom原廠去,才可以恢復這塊電路版.

CPS2採用塑料外殼,保留了CPS1特有的2層pcb組裝方式,包括稱為A板的基板和稱為B板的遊戲板。一些後來的遊戲增加了額外的板,具有擴展內存跟跨主機通信功能。這個新一代系統的兩個最重要的區別是:1)A板不再具有系統主CPU,現在已移至頂部B板,2)定制芯片的數量大幅增長,如下面的圖片。

CPS2塑料外殼外的基板

CPS2 B頂板從其塑料外殼上拆下

後來CPS2的成本降低版本將pcb 縮小到只有一個封裝在金屬黑色外殼中的pcb。大多數ROM也被單個閃存模塊所取代,這是1996年Capcom的CPS3系統首次引入的技術。

 


加密符合保護

CPS-2 Shock駭客團隊於1999年左右開始嘗試逆向CPS2,並在2001年的商業生命週期後進行了早期模擬開發。
但Capcom在2003年12月上發布了最後一個紀念遊戲:Hyper Street Fighter II:週年紀念版,從技術上講,在市場還在時候卻有了模擬器。

在Capcom的安全實現中發現的一個錯誤允許動態未加密的內存轉儲,這一發現使CPS-2 Shock團隊能夠檢索明確的程序代碼轉儲,
導致生成非加密的遊戲rom集可解密 , “phoenixing”街機社區術語,可實現”鳳凰從生”將遊戲機板改為運行未加密的遊戲代碼恢復運作。
(OSSLab曰:CPS-2 Shock並沒有描述很清楚當年是怎樣破解加密ROM,只知道後來有發xor table給用戶自己去解。)

由於這些努力,可將無數的CPS2死板被轉換為運行未加密的遊戲版本,免於丟在垃圾箱中荒廢。

但是Capcom的加密架構之謎還是維持了很多年,直到2007年,Charles McDonald,Andreas Naive和Nicola Salmoria(Mame創始人)
組成的團隊設法通過自定義硬件和數學分析來破解算法。
他們的工作表明,CPS2使用了兩個帶有64位密鑰的四輪feistel密碼,此時模擬原始加密ROM就可行了。
原始碼請參考

https://github.com/mamedev/mame/blob/4263a71e64377db11392c458b580c5ae83556bc7/src/mame/machine/cps2crypt.cpp

CPS2 使用的IC的非常廣泛,包括多達11個定制QFP芯片,所有這些芯片都加蓋了Capcom Logo。多年來製造商,許多這些芯片的確切性質和目的也是一個謎,
特別是頂部B板,因為A板風格只是CPS1電路版的延續。

Capcom QFP 160引腳定制芯片日期為1993年第47週

CPS2 是加密版本68000 cpu。關於在B板上發現的IC另一個有趣的事實是,它們都在電路板處於靜止狀態時都有接收電池電量,
這顯然是隱藏保護裝置實施方法。

 自B板修訂版5(93646B-5)這個小JST NH 6針型連接器 以來一直存在於CPS2系統中,成為了一個令人好奇的興趣和研究項目。

它的目的不為人知,但對於任何勇敢的人來說都是一個麻煩:他會幹掉你電池 讓你昂貴的CPS2 版變成廢版。

CPS2 CN9連接器

這個連接器帶來了許多問題,沒有答案,一個明顯的結果是:搞亂CN9會使你的電路板完全耗盡電池。

為什麼Capcom會包含這樣的功能?它與系統加密有什麼關係?它真的有用嗎?
在下一系列文章中,我們將探討Capcom的CPS2安全實現的內部工作原理。