Re: [PS3 ] PS Jailbreak 原理分析
http://www.gamefreax.de/psjailbreak-reverse-engineered.html
Wir haben das PSJailbreak Dongle doch nochmal aus der Versenkung
geholt um es genauer uter die Lupe zu nehmen. Wir erklären Euch hier
in Kürze die wichtigsten Schritte des internen Ablaufs vom
PSJailbreak.
我們對PSJB做了一些研究,現在我們可以大略描述一下PSJB的運作原理。
Wir können bestätigen, dass es sich bei dem PSJailbreak nicht um
einen Clone von Sony's "Jig" Modul handelt. PSJailbrak ist ein
ehrlich selbstentwickelter Exploit. Der Chip ist kein PIC18F444
sondern ein ATMega mit Software USB. Das bedeutet, der Chip ist intern
in der Lage USB zu emulieren. PSJailbreak emuliert hauptsächlich
einen 6Port USB Hub, an den in einem bestimmten Ablauf verschiedene
USB Geräte angeschlossen und wieder abgeklemmt werden. Eines dieser
Geräte trägt die ID von Sony's "Jig" Modul, das bedeutet, dass
bei der Entwicklung des PSJailbreaks das "Jig" Modul eine gewisse
Rolle gespielt hat.
首先,PSJB並非$ONY內部 JIG模組的複製版,PSJB所使用的是一個已知的漏洞。
那顆晶片只是 PIC18F444而已,內部有燒錄特殊程式碼讓PSJB可以模擬一個 6埠
的 USB集線器,然後模擬有些裝置連接到這個假的集線器上,其中一個裝置的ID
就是$ONY的 JIG模組。換言之 JIG在PSJB的開發上扮演了某種角色。
Aber fangen wir vorne an: Beim Einschalten der PS3 wird in der USB
Emulation ein Gerät angeklemmt, welches einen viel zu großen
Configuration Descriptor hat. Dieser Descriptor überschriebt den
Stack mit einem enthaltenen PowerPC Code, welcher ausgeführt wird.
Nun werden verschiedene USB Geräte in der Emulation angeschlossen.
Ein Gerät verfügt über einen 0xAD großen Descriptor, der Teil des
Exploits ist und statische Daten enthält. Wenige Zeit später (wir
bewegen uns hier im Milisekundenbereich) wird das Jig Modul
angeschlossen, und es werden verschlüsselte Daten an das Jig Modul ü
bertragen. Eine (im Milisekundenbereich) Ewigkeit später antwortet
das Jig Modul mit 64Byte statischen Daten, sämtliche USB Devices
werden disconnected, ein neues USB Device wird connected und die PS3
startet im neuen Gewand.
這樣說好了:當 PS3開機的時候, USB模擬器也會隨之啟動,而這個模擬器卻包
含了一個過大的控制描述子(Configuration Descriptor),而這個過大的描述子
剛好可以讓裡面包含的 PowerPC程式指令蓋進主機的特定堆疊中(譯註:非常類
似緩衝區溢位攻擊的原理),然後非法的程式指令就被執行了。
開機時一堆 USB元件又連了上主機,其中一個元件的描述子大小竟然有0xAD這麼
大( 173個字元),這就是漏洞的一部分而且資料是固定的。一段非常短的時間
後(千分之幾秒),假的 JIG模組也連了上去,主機會將一段加密的資料送到假
的 JIG模組,然後又過了千分之幾秒,PSJB的模擬 JIG模組將預先準備好的64位
元組之料回傳,完成後所有的 USB裝置離線,接著又有新的裝置連線,此時 PS3
就能夠執行自製程式了。
******
如果是緩衝區溢位的話,那要看出問題的程式片段是寫在什麼地方。如果是沒辦
法靠更新韌體來反制的話,就只能夠藉由硬體修掉這個問題再用封掉主機連接
PSN功能的方式來壓制。
但如果這個洞也可以被用來將零售版主機韌體更新 debug版韌體的話或是駭客們
改造過的官方相容版本韌體,那$ONY要反制就有一定的難度了。
--
○ ____ _ _ _ _ ____ _ _ ____ _____ ____
。 ★(_ _)( \( )( \/ )( ___)( \( )(_ _)( _ )( _ \
o _)(_ ) ( \ / )__) ) ( )( )(_)( ) / ● ‧
(____)(_)\_) \/ (____)(_)\_) (__) (_____)(_)\_) ★
o
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 59.126.61.141
推
08/27 21:08, , 1F
08/27 21:08, 1F
→
08/27 21:41, , 2F
08/27 21:41, 2F
推
08/27 21:47, , 3F
08/27 21:47, 3F
推
08/27 22:35, , 4F
08/27 22:35, 4F
推
08/27 22:38, , 5F
08/27 22:38, 5F
推
08/27 22:42, , 6F
08/27 22:42, 6F
→
08/27 22:57, , 7F
08/27 22:57, 7F
推
08/27 23:00, , 8F
08/27 23:00, 8F
→
08/27 23:05, , 9F
08/27 23:05, 9F
→
08/27 23:23, , 10F
08/27 23:23, 10F
→
08/27 23:24, , 11F
08/27 23:24, 11F
→
08/28 00:44, , 12F
08/28 00:44, 12F
→
08/28 01:49, , 13F
08/28 01:49, 13F
推
08/28 02:07, , 14F
08/28 02:07, 14F
推
08/28 02:13, , 15F
08/28 02:13, 15F
推
08/28 02:13, , 16F
08/28 02:13, 16F
→
08/28 02:13, , 17F
08/28 02:13, 17F
→
08/28 02:16, , 18F
08/28 02:16, 18F
推
08/28 08:09, , 19F
08/28 08:09, 19F
→
08/28 09:36, , 20F
08/28 09:36, 20F
→
08/28 11:51, , 21F
08/28 11:51, 21F
→
08/28 15:37, , 22F
08/28 15:37, 22F
→
08/28 15:37, , 23F
08/28 15:37, 23F
推
08/28 16:01, , 24F
08/28 16:01, 24F
推
08/28 16:09, , 25F
08/28 16:09, 25F
推
08/28 16:15, , 26F
08/28 16:15, 26F
推
08/28 16:15, , 27F
08/28 16:15, 27F
→
08/28 16:17, , 28F
08/28 16:17, 28F
→
08/28 16:17, , 29F
08/28 16:17, 29F
→
08/28 16:20, , 30F
08/28 16:20, 30F
→
08/28 16:34, , 31F
08/28 16:34, 31F
→
08/28 16:36, , 32F
08/28 16:36, 32F
→
08/28 16:47, , 33F
08/28 16:47, 33F
→
08/28 16:47, , 34F
08/28 16:47, 34F
→
08/28 16:48, , 35F
08/28 16:48, 35F
推
08/28 16:54, , 36F
08/28 16:54, 36F
推
08/28 16:58, , 37F
08/28 16:58, 37F
→
08/28 17:02, , 38F
08/28 17:02, 38F
→
08/28 17:02, , 39F
08/28 17:02, 39F
→
08/28 17:03, , 40F
08/28 17:03, 40F
→
08/28 17:03, , 41F
08/28 17:03, 41F
推
08/28 17:04, , 42F
08/28 17:04, 42F
→
08/28 17:04, , 43F
08/28 17:04, 43F
推
08/28 17:04, , 44F
08/28 17:04, 44F
→
08/28 17:04, , 45F
08/28 17:04, 45F
推
08/28 17:08, , 46F
08/28 17:08, 46F
→
08/28 17:08, , 47F
08/28 17:08, 47F
→
08/28 17:10, , 48F
08/28 17:10, 48F
推
08/28 17:11, , 49F
08/28 17:11, 49F
→
08/28 17:11, , 50F
08/28 17:11, 50F
→
08/28 17:12, , 51F
08/28 17:12, 51F
→
08/28 17:12, , 52F
08/28 17:12, 52F
→
08/28 17:13, , 53F
08/28 17:13, 53F
推
08/29 03:18, , 54F
08/29 03:18, 54F
→
08/29 03:18, , 55F
08/29 03:18, 55F
→
08/29 03:19, , 56F
08/29 03:19, 56F
推
08/29 03:37, , 57F
08/29 03:37, 57F
推
08/29 03:37, , 58F
08/29 03:37, 58F
→
08/29 03:49, , 59F
08/29 03:49, 59F
→
08/29 09:50, , 60F
08/29 09:50, 60F
→
08/29 09:50, , 61F
08/29 09:50, 61F
→
08/30 10:49, , 62F
08/30 10:49, 62F
→
08/30 10:49, , 63F
08/30 10:49, 63F
推
08/30 13:26, , 64F
08/30 13:26, 64F
推
08/30 13:49, , 65F
08/30 13:49, 65F
→
08/30 14:00, , 66F
08/30 14:00, 66F
推
08/30 14:37, , 67F
08/30 14:37, 67F
推
08/30 14:38, , 68F
08/30 14:38, 68F
→
08/30 14:39, , 69F
08/30 14:39, 69F
推
08/30 16:44, , 70F
08/30 16:44, 70F
討論串 (同標題文章)
完整討論串 (本文為第 2 之 2 篇):
47
143
Modchip 近期熱門文章
PTT遊戲區 即時熱門文章
32
117
44
168
61
307