ADVERTISEMENT
在看完Sony如何犯下種種錯誤,讓PlayStation與PlayStation 2慘遭破解後,我們接下來要探討的受害者還是Sony的主機,這款主機與先前產品最大的不同在於它有完整的作業系統,所以破解之後能玩的功能也更加多元。
前情提要:
家用主機秘辛5:數秒內抽換光碟, PS 盜版片也能騙過驗證機制
無安全機制 = 駭客天堂
在多年的研究之後,駭客社群已經摸透了PlayStation Portable(文中簡稱PSP)的底細,但是這畢竟是後話。在PSP的生命前期,社群還是有幸掌握了一些設計上的失誤,因此有機會駭取主機的控制權,就讓我們一起來看看早期的破解手法。基本上在PSP的生命周期中,除了韌體版本5.50到6.20的這段黑暗期之外,大多都是屬於被破解的狀態,在PSP的駭客社群中,有許多優秀的駭客來來去去,大家在這邊共享了美好的青春歲月,這除了要歸功於貢獻卓越的駭客外,也要特別感謝首次跨足可升級式、攜帶型遊戲主機的Sony,以及這間公司不斷犯下的愚蠢錯誤。
讀者們或許已經知道,PSP的韌體並非完全受安全機制保護,存放韌體的內建快閃記憶體空間Flash0,就是個很容易能夠被存取的區塊,而並非所有的Flash0核心模組皆有加密,而且透過MIPS工具鏈(toolchain,指完整程式編譯工具套件)就能自行編寫模組,並複製到Flash0中的未加密檔案中貼上。
沒錯,這就是自製韌體的基礎,就是這麼簡單。
▲PSP硬體性能大幅超越當時掌上型電玩主機,將掌上型電玩遊戲主流畫面從2D拉抬至3D。
▲PSP的破解主要是針對作業系統進行修改,因此也可以獲得許多執行非授權軟體以外的功能。
封不住的系統漏洞
更進一步說,Flash0並不是唯一未經保護的區塊,早期型號的PSP主機上甚至擁有功能完善的除錯埠,只需將開發工具連上線控耳機端子,就可以使用除錯功能。部分的日版遊戲也包含了除錯模式,駭客就可以藉此分析系統核心運作的狀況,也可以瞭解核心模組的名稱。
Sony為了彌補漏洞,馬上發布1.50版韌體更新,阻擋了像是kernel-flagged ELFs等未經簽署的程式,但是它並沒有成功封鎖所有漏洞,駭客還是找到許多方法來執行未簽署程式,像是抽換記憶卡,或是惡名昭張但相當方便的1.50 kxploit。
過去在Wololo.net,我們曾討論過這個雞生蛋、蛋生雞的循環問題。基本上如果要取得核心模式的漏洞(取得完整系統控制權),需要先取得未加密的系統核心模組,但是要取得未加密的系統核心模組,則須先取得完整系統控制權。頭痛啊!
值得慶幸的是,這個問題從來沒有發生在PSP身上,因為我們可以直接存取PSP的核心模組,所以即便Sony發布系統更新來保護核心,我們還是可以直接解讀核心模組,來分析PSP的內部運作狀況。
▲PSP的線控耳機端子介面採序列埠(serial port),可作為除錯埠,不知為何Sony會將這個功能留在市售版主機中。(圖片來源:NIL:'s white page)
▲控耳機端子的腳位定義如下,可以連至RS-232進行除錯。(圖片來源:NIL:'s white page)
▲搭配自行至作的轉接頭,便可將PSP連接至電腦。(圖片來源:NIL:'s white page)
▲透過除錯埠駭客便可一窺PSP主機內部的秘密。(圖片來源:NIL:'s white page)
下集預告:用緩衝區溢位衝破天際
原文刊載於http://wololo.net/2014/01/18/10-days-of-hacking-day-4-the-psp-part-1
感謝原文作者Acid_Snake同意轉載
Original article by Acid_Snake. Translate by konamigood.
延伸閱讀:
【模擬器改造】掌機性能大提升:PlayStation Portable篇
挑戰 Apple TV,Sony 發表 PS Vita TV 提供影音串流服務,還能用電視玩 PS Vita、PSP 遊戲
請注意!留言要自負法律責任,相關案例層出不窮,請慎重發文!