Xbox 360 RGH hack részletesen



Bár az xbox 360 konzol 2005 novemberében került piacra először, az RGH hack csak kb. 2011 késő nyara óta létezik. De persze sok minden más is megelőzte a kialakulását, nem egy ember vagy egy csapat munkája csak. Amennyire én tudom, először 2006-ban volt egy komolyabb exploit, a King Kong c. játékkal bizonyos kernel verziókat meg lehetett borítani, és egy alap linux rendszert powerpc-re fordítva elindítani. Ezt a hibát elég gyorsan befoltozták egy kernel frissítéssel, de az alapja (JTAG hack) mindennek ez.

A gép maga digitális aláírásokat ellenőriz minden futtatható állományban, ez egy publikus-privát kulcsos titkosítás, ahol a privát kulcs természetesen a microsoft-nál van, és hacsak nincs egy működő quantum számítógépünk jópár qubit-el, akkor a törés elég nehéz lenne ahhoz, hogy mi magunk is tudjuk hamisítani az aláírást. Egy hypervisor is fut a háttérben, ami többek közt őrködik a memória hozzáféréseken is, hogy tetszőleges programkák ne írogathassák át a memória területét, így ezzel veszélyeztetve a rendszer zártságát és védettségét. Ezeket a védelmeket kellett leépíteni, de mivel szoftveres exploit-ot a king kong plusz megfelelő kernel foltozása után senki nem keresett vagy talált, ezért maradt a durvább, hardveres exploit generálás.

Az RGH azon az elven működik, hogy ha már nincs semmiféle sebezhetőség a gép bootolási folyamatában, akkor hardveresen próbálunk egyet előidézni. Ennek az elve az, hogy a boot folyamat egy nagyon specifikus részén lelassítjuk a gép processzorát, küldünk egy rövid reset impulzust, és a cpu egyik regisztere, amit egy összehasonlító műveletben használ törlődik. Fontos hogy csak egy regiszter törlődjön és ne pl. a stack is a visszaugrási címekkel, mert akkor borul az egész és a gép nem indul. Fontos, hogy ha a regiszter törlődött, akkor a chain of trust - bizalmi lánc, többlépcsős bootolási folyamat, mindig a lánc köv. tagját az előtte levő ellenőrzi az előre letárolt sha1 hash-el - kompromittálva lett, és gyakorlatilag azt csinálunk amit akarunk, pl. patchelt bootloader fázisokat pakolunk be, amik elfelejtik a megfelelő titkosítási kulcsokat ellenőrizni xex fileok indításakor (ezek a futtatható állományok) stb.

A bootolási lépcsőfokokról a free60 oldalán olvashatsz bővebben, hogy melyik lépcső pontosan mit csinál, inicializálja a memóriát, futtat egy memcheck-et, betölti a következő fázist, inicializálja a sata portokat, GPU-t, stb. CB(_A-B) -> CG -ig mennek a fázisok. 

Maga az RGH hack műkődése régebbi RGH1-es (PLL-es lassítás, CPU órajel 1/128-ad része a gyárinak, igy nagy stabilitása van, pl. falcon rgh1) és RGH2-es (slim trinity, corona) gépeken bővebben az eurasia oldalán van leírva, három komolyabb úriember, GliGli, Tiros és Blackaddr tollából.