作者cassine (Savannah)
看板Modchip
標題[PS3 ] 3.50版韌體解析進行中
時間Sun Nov 14 23:05:14 2010
http://xorloser.com/?p=297&cpage=3
xorloser已經成功解析了 PS3韌體更新檔案.pup的結構。由於JB所帶來的可能性
,讓他們得以研究.pup檔案與實際Flash ROM 內容的對應,進而推論出韌體的寫
入位址。
運氣好的話,這是自製韌體的第一步,也許能夠透過只更新必要程式而保留JB漏
洞的方式執行3.50 SDK所編譯出的遊戲。
--
○ ____ _ _ _ _ ____ _ _ ____ _____ ____
。 ★(_ _)( \( )( \/ )( ___)( \( )(_ _)( _ )( _ \
o _)(_ ) ( \ / )__) ) ( )( )(_)( ) / ● ‧
(____)(_)\_) \/ (____)(_)\_) (__) (_____)(_)\_) ★
o
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 59.126.61.141
1F:→ narcissusli:這一搞出來,連狗都不用準備了,讚!! 11/15 01:16
2F:→ cassine:還是要啦!不然你要用IC燒錄器對付主機板上的FlashROM 11/15 10:26
3F:→ narcissusli:應該可以把加料過的fw放在光碟上,讓主機更新吧?! 11/15 11:01
4F:→ cassine:不行,因為韌體更新檔都有簽證,沒破解主機的韌體更新程式 11/15 11:26
5F:→ cassine:$QNY沒理由讓玩家這樣搞。 11/15 11:26
6F:→ cassine:不過有Factory Service Mode可能就不一樣,會有機會 11/15 11:27
7F:→ todotaurus:原文討論串下面的回覆很精采,有空的人可以看看。 11/15 14:12
8F:→ bhh0026:要是連簽證都搞出來的話,直接封成更新檔就可以丟進去了w 11/15 14:28
9F:→ cassine:基本上是不大可能,這種public/private key簽證的東西要拿 11/15 15:03
10F:→ cassine:到key可不簡單,我是不大相信$QNY會跟老任一樣,在簽證上 11/15 15:03
11F:→ cassine:犯同樣錯誤 strcmp() 那個實在太寶了XD 11/15 15:04
12F:推 kaoru7568:老任那個 hash吃到0就終止的BUG真的太可愛XD 11/15 17:38
13F:→ UnknownX:老任那個簽證是怎樣?可以詳細一下嗎? 11/15 18:31
14F:推 kaoru7568:假設正確簽證是 1234567890ABCDEF 因為BUG吃到0會停掉 11/15 18:43
15F:→ kaoru7568:所以只要把hash弄成1234567890______ ←後面那堆隨便 11/15 18:44
16F:→ kaoru7568:也就是自製程式是 1234567890123456 一樣可以通過認證 11/15 18:45
17F:→ kaoru7568:只要0前面有對就好了 11/15 18:45
18F:推 f1234518456:XDD 11/15 18:52
19F:推 f1234518456:被函式bug婊了XD 11/15 19:06
20F:→ cassine:不是bug,在C語言裡面字串陣列的結尾本來就是0 11/15 19:41
21F:→ cassine:所以比較的時候讀到0會以為字串終結了,結果原本256-bit的 11/15 19:41
22F:→ cassine:簽證如果在第10個bit遇到0就會削弱成只有10-bit的強度,很 11/15 19:42
23F:→ cassine:容易就可以偽造出前10個bit都相同的假簽證 11/15 19:43
24F:推 f1234518456:原來是這樣 11/15 20:04
25F:推 SGBA:專業推 O_O 11/15 20:28
26F:→ cassine:事實是老任在不該使用strcmp的地方用了,結果形成bug,這 11/15 21:02
27F:→ cassine:個bug應該是有人反組譯程式時發現的,不然正常執行根本不 11/15 21:03
28F:→ cassine:可能察覺,因為hash collision的機率太低,所以老任也簽了 11/15 21:03
30F:→ danny8376:不過NDS上也有這個錯誤嗎? (我想應該沒人研究就是了...) 11/15 23:33