→ narcissusli:這一搞出來,連狗都不用準備了,讚!! 11/15 01:16
→ cassine:還是要啦!不然你要用IC燒錄器對付主機板上的FlashROM 11/15 10:26
→ narcissusli:應該可以把加料過的fw放在光碟上,讓主機更新吧?! 11/15 11:01
→ cassine:不行,因為韌體更新檔都有簽證,沒破解主機的韌體更新程式 11/15 11:26
→ cassine:$QNY沒理由讓玩家這樣搞。 11/15 11:26
→ cassine:不過有Factory Service Mode可能就不一樣,會有機會 11/15 11:27
→ todotaurus:原文討論串下面的回覆很精采,有空的人可以看看。 11/15 14:12
→ bhh0026:要是連簽證都搞出來的話,直接封成更新檔就可以丟進去了w 11/15 14:28
→ cassine:基本上是不大可能,這種public/private key簽證的東西要拿 11/15 15:03
→ cassine:到key可不簡單,我是不大相信$QNY會跟老任一樣,在簽證上 11/15 15:03
→ cassine:犯同樣錯誤 strcmp() 那個實在太寶了XD 11/15 15:04
推 kaoru7568:老任那個 hash吃到0就終止的BUG真的太可愛XD 11/15 17:38
→ UnknownX:老任那個簽證是怎樣?可以詳細一下嗎? 11/15 18:31
推 kaoru7568:假設正確簽證是 1234567890ABCDEF 因為BUG吃到0會停掉 11/15 18:43
→ kaoru7568:所以只要把hash弄成1234567890______ ←後面那堆隨便 11/15 18:44
→ kaoru7568:也就是自製程式是 1234567890123456 一樣可以通過認證 11/15 18:45
→ kaoru7568:只要0前面有對就好了 11/15 18:45
推 f1234518456:XDD 11/15 18:52
推 f1234518456:被函式bug婊了XD 11/15 19:06
→ cassine:不是bug,在C語言裡面字串陣列的結尾本來就是0 11/15 19:41
→ cassine:所以比較的時候讀到0會以為字串終結了,結果原本256-bit的 11/15 19:41
→ cassine:簽證如果在第10個bit遇到0就會削弱成只有10-bit的強度,很 11/15 19:42
→ cassine:容易就可以偽造出前10個bit都相同的假簽證 11/15 19:43
推 f1234518456:原來是這樣 11/15 20:04
推 SGBA:專業推 O_O 11/15 20:28
→ cassine:事實是老任在不該使用strcmp的地方用了,結果形成bug,這 11/15 21:02
→ cassine:個bug應該是有人反組譯程式時發現的,不然正常執行根本不 11/15 21:03
→ cassine:可能察覺,因為hash collision的機率太低,所以老任也簽了 11/15 21:03
→ danny8376:不過NDS上也有這個錯誤嗎? (我想應該沒人研究就是了...) 11/15 23:33