[TUT] Exploiting Savegames [TEIL 1] - Druckversion +- KINGx - Das inoffizielle PlayStation Forum & News Portal (http://www.kingx.de/forum) +-- Forum: PS Vita / PSP (/forumdisplay.php?fid=1) +--- Forum: Homebrew (/forumdisplay.php?fid=8) +---- Forum: Development (/forumdisplay.php?fid=34) +----- Forum: Dev-Tutorials (/forumdisplay.php?fid=59) +----- Thema: [TUT] Exploiting Savegames [TEIL 1] (/showthread.php?tid=34054) |
[TUT] Exploiting Savegames [TEIL 1] - DarXPloit_$a1 - 03.02.2011 16:00 -> Exploiting Savegames [TEIL 2] -> Exploiting Savegames [TEIL 3] ############################################################ ################### Der Exploit Hallo Leute, I hab mich trotz der Tatsache, das Exploit´s nun höchst wahrscheinlich nicht mehr gebraucht werden, entschlossen ein Tutorial über das Exploiten von Savegame Bufferoverflow´s zu verfassen. Meine eigenen Erfahrungen sind in dem Tutorial enthalten. Was ihr benötigt: - ein funktionstüchtiges Gehirn - Erfahrung mit Psplink , Savegame deemer Grundkurs in c , Hex-Editoren & Pspsdk (ihr müsst wissen wie man kompiliert) - Zeit und Veständnis [Wer weiss, vielleicht braucht man es ja wieder bei der NGP ] Backgroundwissen: Was ist ein Bufferoverflow ? Grundlegend ist ein Bufferoverflow , wie der Name schon ausdrückt, ein Überflug an Daten im Stack. Ok, das ist der Stack. Wie man dem Bild entnehmen kann dort ein "String" mit bis zu 12 verfügbaren Zeichen ohne Probleme gespeichert werden. Doch was würde passieren wenn wir nun mehr Zeichen im Stack speichern, als uns die Funktion erlaubt ? Baaam, da haben wir den Salat! Es wurden viel mehr Zeichen gespeichert, als durch "char c [12] ; " im Speicher reserviert wurden. Die Folge: -> Die Return Address (Rücksprungaddresse) wurde durch die vielen "A´s" überschrieben. Was ist die Return Address ( $ra ) ? Das ist die Adresse an der ein Programm fortgesetzt wird nachdem ein Unterprogramm (=Funktionsaufruf) abgearbeitet wurde. Da wir nun die Kontrolle über die RA besitzen, können wir dadurch nun entscheiden wohin wir im Userram jumpen. Bei der PSP währe das (0x08800000 - 0x09FFFFFFF) -Genial- Jetzt können wir zu einem beliebigen Ort jumpen wo unser eigener Code ist, sodass er ausgeführt werden kann. ************************************************************ *************** Nun zur PSP: Wie können wir uns das jetzt zu Nutze machen ??? Ganz simpel - Mit Savegames Hacker sind meistens sehr faul, sie suchen immer nach der unaufwendigsten Methode. Das einfachste währe nun einen "Player" Namen zu suchen , und das selbe wie Oben zu machen - Einen überlangen string erzeugen ... Halt !!! Wie kann ich Savegames editieren ??? - Ich schlage for ihr sucht nach einem Tutorial für "savegame deemer" Da die meisten Savegames keinen security checks haben, gelingt dies auch meist Plötzlich, euer Savegame crasht die PSP. Ein kurzer Blick in PSPlink gibt uns diesen Auszug: Rechts unten , im Bild erkennt man das register $ra Was war $ra nochma ? Ach ja die Rücksprungaddresse , unser Winner Register für Code Execution ^^ Ok, wir sehen uns mal das value in $ra an: 0x41414141 - Wie wir schön sehen können, wurde das register völlig mit A´s überschrieben. Das sollte unser Code sein, den wir nun ab dieser Stelle beliebig ändern können! ************************************************************ *************** Einen Ort zum Jumpen finden Wir können nun zu jeder beliebigen Addresse im RAM springen. Nun müsst ihr einen Memory Dump von eurer PSP nach dem Crash machen. Das ganze könnt ihr mit Psplink anstellen. Der Eingabecode lautet: Code: savemem 0x08800000 20000000 euer_mem_dump.bin
Code: prxtool -f -n name_of_your_libdoc.xml EBOOT.BIN
Der folgende Output ist ganz wichtig uns sollte in einer .txt Datei gespeichert werden ! Code: psp-as euer_assembler_file.asm
RE: [TUT]Exploiting Savegame Exploits - HacKmaN - 03.02.2011 16:23 Hey, super Tutorial RE: [TUT]Exploiting Savegame Exploits - greenieZ - 03.02.2011 16:24 cooles tut. wäre es mal ausprobieren. RE: [TUT]Exploiting Savegame Exploits - Neutrosider - 03.02.2011 16:35 schönes Tutorial, da es einfach vertändlich erklärt und mit vielen bildern ist ^^ RE: [TUT]Exploiting Savegame Exploits - Cha0z - 03.02.2011 16:41 SUPER TuT!!! Mach die Bilder etwas kleiner oder setze sie in einem Spoiler Der Rahmen von PSPKing is überlastet Frage: Welches Spiel hast du benutzt? Patapong?? RE: [TUT]Exploiting Savegame Exploits - DarXPloit_$a1 - 03.02.2011 16:52 Dank erst einmal, schön das es euch gefällt. Leider muss ich auch anmerken ,dass ich einiges nicht so ausführlich erklären konnte Mein Ziel ist es leicht und verständlich zu erklären. Wir wollen ja auch schließlich Homebrew auf der NGP Ich werde auf jeden Fall meine hacking threads updaten RE: [TUT]Exploiting Savegame Exploits - PSP_Lord - 03.02.2011 16:54 Gutes Tutorial, eine kleine Verbesserung in Sachen MIPS delay slot hätte ich aber noch Anstelle immer li $a2, Wert jal $sceIoFileManagerFunction() nop zu schreiben, empfehle ich dir: ori $a2, $zero, Wert //li ist nur ein Pseudo Befehl, der vom Compiler als lui $a2, Wert addiu $a2, $a2, Wert verstanden wird. Außerdem kannst du deinen Befehl in den delay slot der JAL packen, das macht die nop überflüssig und spart code (Erklärung: der Befehl in einem delay slot wird immer VOR der Ausführung des Jumps ausgeführt.) Also z.B: ori $a1, $zero, 1 JAL $sceIoOpen() ori $a2, $zero, 31 //nächster Funktionsaufruf, ohne weitere nop Gutes Tutorial Edit2: Sorry, habe mir nochmal den Text durchglesen und gesehen, dass da noch ein Fehler ist. $ra = return address, nun, das ist nicht die return Addresse, sondern lediglich ein MIPS Register ($31), der die return Addresse hält. Du sagst zwar weiteroben, dass $ra ein register ist, aber im weiteren Verlauf bezeichnet du es als "Rücksprungaddresse" was nicht richtig ist. Außerdem ist meiner Meinung nach die Bezeichnung "Rücksprungaddresse" ziemlich "gezwungen". Bleib einfach bei "the register "$ra speichert die return addresse, um zur Addresse von dem jeweiligen -link Befehl in MIPS (z.B JAL) + 0x8 zu springen. Beispiel, unsere JAL ist bei 0x00001234, dann würde $ra nach dem Aufruf 0x08801238c "halten". Edit: Könntest du mir erklären, wie man PSPLink zum Laufen bringt? Ich habe mir die Anleitungen durchgelesen, habe es aber nie richtig hinbekommen. Danke im Vorraus. RE: [TUT]Exploiting Savegame Exploits - DarXPloit_$a1 - 03.02.2011 17:12 Cha0z : SUPER TuT!!! Mach die Bilder etwas kleiner oder setze sie in einem Spoiler Der Rahmen von PSPKing is überlastet
Frage: Welches Spiel hast du benutzt? Patapong??
RE: [TUT]Exploiting Savegame Exploits - DarXPloit_$a1 - 03.02.2011 17:17 PSP_Lord : Gutes Tutorial, eine kleine Verbesserung in Sachen MIPS delay slot hätte ich aber noch
Anstelle immer li $a2, Wert jal $sceIoFileManagerFunction() nop zu schreiben, empfehle ich dir: ori $a2, $zero, Wert //li ist nur ein Pseudo Befehl, der vom Compiler als lui $a2, Wert addiu $a2, $a2, Wert verstanden wird. Außerdem kannst du deinen Befehl in den delay slot der JAL packen, das macht die nop überflüssig und spart code (Erklärung: der Befehl in einem delay slot wird immer VOR der Ausführung des Jumps ausgeführt.) Also z.B: ori $a1, $zero, 1 JAL $sceIoOpen() ori $a2, $zero, 31 //nächster Funktionsaufruf, ohne weitere nop Gutes Tutorial Edit2: Sorry, habe mir nochmal den Text durchglesen und gesehen, dass da noch ein Fehler ist. $ra = return address, nun, das ist nicht die return Addresse, sondern lediglich ein MIPS Register ($31), der die return Addresse hält. Du sagst zwar weiteroben, dass $ra ein registe rist, aber im weiteren Verlauf bezeichnet du es als "Rücksprungaddresse" was nicht richtig ist. Außerdem ist meiner Meinung nach die Bezeichnung "Rücksprungaddresse" ziemlich "gezwungen". Bleib einfach bei "the register "$ra speichert die return addresse, um zur Addresse von dem jeweiligen -link Befehl in MIPS (z.B JAL) + 0x8 zu springen. Beispiel, unsere JAL ist bei 0x00001234, dann würde $ra nach dem Aufruf 0x08801238c "halten". Edit: Könntest du mir erklären, wie man PSPLink zum Laufen bringt? Ich habe mir die Anleitungen durchgelesen, habe es aber nie richtig hinbekommen. Danke im Vorraus.
RE: [TUT]Exploiting Savegame Exploits - PSP_Lord - 03.02.2011 17:18 DarXPloit_$a1 : Welches Betriebssystem haste denn ?
Ahhh, Ich bitte um Entschuldigung, Ich habe Windows 7.
RE: [TUT]Exploiting Savegame BufferOverflows - eMKayWe - 03.02.2011 19:03 mit den stubs kann man auch cheat codes herstellen wie "exit game". man lässt einnen j/jr/jal command einfach zum sceKernelExit command springen und schon verlässt man das game. aber das nur nebensache, gutes tut RE: [TUT]Exploiting Savegame BufferOverflows - fixit98 - 03.02.2011 19:46 Sehr schönes Tut Ich habe mit sowas mit dem Patapon Exploit angefangen,damit gehts echt leicht... RE: [TUT]Exploiting Savegame BufferOverflows - Mishka84 - 03.02.2011 21:15 Sehr gut beschriebenes Tutorial!! :-) Das versteh sogar ich, obwohl ich keine Ahnung vom Programmieren habe!! Wirklich sehr gut in allen einzelheiten beschrieben! Frage: Muss es eigentlich eine h.bin sein oder könnte man rein theoretisch jede andere ausführbare datei wie .bat, .exe, .elf (ist doch bin oder?) starten?? Freue mich schon wenn du dein nächstes Tutorial machst, werde dann mich mal mit beschäftigen Wenn die PSP3 draußen ist kann ich bestimmt schon ein HelloWorld RE: [TUT]Exploiting Savegame BufferOverflows - PSP_Lord - 03.02.2011 21:48 .bat und .exe funktionieren auf der psp nicht, sie ist kein Windows PC, .exe läuft nur auf windows. Eine .elf ist keine .bin Datei, grob gesagt ist eine ELF vergleichbar mir einer .prx. Wenn du z.B. eine .prx Datei kompilierst, erhälst du auch immer eine .elf Dastei. Eine ELF Datei ist praktisch das Objekt file der prx, die unteranderem die RAN Struktur eines Games beinhaltet, unter anderem auch die exportierten Libraries Und nein, du kannst keine .ELFs über die PSP booten. RE: [TUT]Exploiting Savegame BufferOverflows - HacKmaN - 03.02.2011 21:58 PSP_Lord : .bat und .exe funktionieren auf der psp nicht, sie ist kein Windows PC, .exe läuft nur auf windows.
Eine .elf ist keine .bin Datei, grob gesagt ist eine ELF vergleichbar mir einer .prx. Wenn du z.B. eine .prx Datei kompilierst, erhälst du auch immer eine .elf Dastei. Eine ELF Datei ist praktisch das Objekt file der prx, die unteranderem die RAN Struktur eines Games beinhaltet, unter anderem auch die exportierten Libraries Und nein, du kannst keine .ELFs über die PSP booten.
RE: [TUT]Exploiting Savegame BufferOverflows - niggi771 - 03.02.2011 21:59 Cool, Danke für die ganzen Bilder, so versteht man es viel viel besser! RE: [TUT]Exploiting Savegame BufferOverflows - DarXPloit_$a1 - 05.02.2011 16:02 Auf Anfrage wollte ich noch ein Tutorial schreiben, welches zeigt , wie man Binaries für einen Savegame Exploit schreibt - ursprünlich. Dann habe ich jedoch bemerkt , dass es dann kein umfangreiches TUT werden würde. Es fehlt nämlich noch eine Kleinigkeit zwischen dem Exploiten und dem Binary coden. Daher werde ich mir zuerst diese Kleinigkeit vornehmen, und darüber ein TUT schreiben. Es wird bald released Hoffe ihr freut euch mfg , Darxploit RE: [TUT]Exploiting Savegame BufferOverflows - 3m!n - 05.02.2011 16:13 Super TuT Gefällt mir,ich wette,sogar Noobs verstehen das TuT Ich hab ein Game gefunden xD //Kleine Frage Hast du das nciht von Wololo gelernt ? mfg RE: [TUT]Exploiting Savegame BufferOverflows - DarXPloit_$a1 - 05.02.2011 16:17 Unter anderen , M0skit0 ist ein guter Lehrer, Wololo hat mir einiges beigebracht, auch n0081 hilft gut ^^ Naja, wie gesagt: Menschen lernen von Menschen. Würden Menschen anderen Menschen nichst beibringen, dann wären wir immer noch Höhlenmenschen. In meiner Ansicht Darum schreibe ich ja auch TUT´s RE: [TUT]Exploiting Savegame BufferOverflows - 3m!n - 05.02.2011 16:36 Ok,dann ist meine Frage ja geklärt, Kannst du Grobeinschätzen,wann dein TuT fertig ist ? mfg RE: [TUT]Exploiting Savegame BufferOverflows - DarXPloit_$a1 - 05.02.2011 16:47 Vermutlich heute Abend, kann aber auch sein, dass ich es erst irgendwann morgen mache PS: Wenn du einen Exploit hast, kannst du mich auch persönlich anschreiben, dann kann ich dir helfen. Du brauchst nicht auf das TUT warten. RE: [TUT] Exploiting Savegames [TEIL 1] - DarXPloit_$a1 - 06.02.2011 08:40 Ok, hab das nächste TUT fertig Wer hier bis zum Schluss gelesen hat, kann mit Teil 2 weitermachen. http://www.pspking.de/forum/showthread.php?tid=34298 SDK´s spielen eine sehr wichtige Rolle, ohne sie werdet ihr nicht in der Lage sein , etwas für euren Savegame exploit zu coden RE: [TUT] Exploiting Savegames [TEIL 1] - HyBriDo - 06.02.2011 08:49 Super echt gutes TuT RE: [TUT] Exploiting Savegames [TEIL 1] - DarXPloit_$a1 - 26.02.2011 19:23 HyBriDo : Super echt gutes TuT
RE: [TUT] Exploiting Savegames [TEIL 1] - xXDak-LoXx - 01.04.2012 22:39 Wie schaffe ich das, dass die PSP von dem Savegame gecrasht wird? RE: [TUT] Exploiting Savegames [TEIL 1] - Gaara4 - 02.04.2012 07:10 xXDak-LoXx : Wie schaffe ich das, dass die PSP von dem Savegame gecrasht wird?
RE: [TUT] Exploiting Savegames [TEIL 1] - hans2116 - 21.04.2012 10:04 Kann jemand sagen wie man Homebrew SED benutzt wäre nett. |