Dienstag, 29. November 2011

Ebene und SELFs[Tag 4]

Heute habe ich mir einen Progskeet und einen Clip für den Nor Speicher meiner Ps3 bestellt.
Update: Der Nor-Clip wird nicht offiziell supportet und es soll deshalb schon zu Bränden gekommen sein.

Wir wissen jetzt schon eine ganze Menge: Welche Teile befinden sich in der Ps3, wie arbeiten diese Teile zusammen(in der Theorie), was passiert nach dem Bootvorgang und wo passiert es. Das ist eine gute Basis um weiter zu machen.



Erinnert ihr euch noch an den Baum aus dem letzten Post?





Ich habe aufgehört, nachdem metldr sämtliche loader wie rvkldr,isoldr usw. geladen hat.

Das Erste(von rechts nach links) was geladen/entschlüsselt wird ist die rvklist(revocation list). Die revocation list enthält Vermerke über Software, welche durch die Ps3 nicht ausgeführt werden darf. Nicht wirklich interessant, da wir nicht wissen was in dieser steht. Da fail0verflow dort aber einen Exploit gefunden hat werden wir uns zumindest diesen evtl. später noch anschauen.

Das Nächste auf der Liste ist isoldr(isolation loader). Der isoldr entschlüsselt ein paar Modules/SELFs. Die erste SELF(sv_iso_spu_module.self) ist ein Modul, das vom sog. Storage Manager zur Authentifizierung des Blueray Laufwerks benutzt wird. Das Modul sendet dann Daten an den Storage Manager zurück. Die anderen SELFs sind mir unbekannt und es war mir nicht möglich, über diese genauere Informationen zu finden. Falls jemand doch nähere Informationen hat würde ich mich über einen Kommentar sehr freuen.

Appldr(application loader) kommt als Nächstes. Appldr lädt die vsh.self, welche bestimmte andere SELFs entschlüsselt, die wir auf der Anwendungsebene benutzen. Es gibt leider nicht allzu viele Informationen über die vsh.self. Vielleicht finden wir ja vielleicht später mehr heraus.

Lv2(Level 2): Eine interessante Ebene für alle von uns. Gameos/Otheros laufen auf Lv2. Lv2 macht mehr oder weniger alles für den Benutzer. Die Kommunikation mit dem PPU, den SPUs, der Grafikkarte(RSX) usw. Das ist auch der Punkt, an dem wir später starten werden. Die Emulatoren werde ich nicht weiter erklären, da die Namen selbsterklärend sind.

Last but not least Lv1(Level 1): Das ist die Ebene wo unser hypervisor "lebt" ;) Dadurch, dass unser hypervisor auf dieser Ebene ist werden alle syscalls, die ich in einem vorherigen Post kurz angesprochen hatte, über diese Ebene realisiert. Da wir eine 3.55 CFW benutzen werden, können wir ohne Restriktionen mit dieser Ebene kommunizieren(soweit ich weiß). Eine letzte Sache über lv1: Wenn lv1 geladen wird, wird vom Syscon ein sog. Hashcheck durchgeführt, d.h. es wird getestet, ob eine der SELFs, die geladen werden(lv1, lv2_kernel usw.), modifiziert wurden. Glücklicherweise gibt es aber CFWs, welche diese Checks nicht beinhalten.


Das letzte für heute: Was sind SELFs?
SELF steht für Signes Executable and Linkable Format. Dies sind verschlüsselte ELF Dateien welche die Daten beinhalten. Der Rest der SELF ist ein Header mit bestimmten Zeilen für die Verschlüsselung. Ich habe darüber nachgedacht heute über SELFs und die Verschlüsselung zu reden, da wir aber noch nichts auf der Anwendungsebene machen, wäre dies wenig hilfreich.

Zusammenfassen kann man also sagen, dass unsere Ebenen folgende sind:
Lv1(kommt nach bootldr und initialisiert vieles) -> Lv1(hyperviso) -> Lv2(Kernel für unser OS 
-> Gameos(was wir benutzen)

- Was als nächstes kommen wird: Linux und CFW installieren.

1 Kommentar: