[TUT] Exploiting Savegames [TEIL 2] - 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 2] (/showthread.php?tid=34298) |
[TUT] Exploiting Savegames [TEIL 2] - DarXPloit_$a1 - 05.02.2011 23:04 -> Exploiting Savegames [TEIL 3] -> Exploiting Savegames [TEIL 1] ############################################################ ################### Hallo Leute, Ich begrüße euch herzlichst zu dem 2. Teil über das Thema "Savegame Exploits" Dank des Tutorials "Exploiting Savegames" wissen wir nun, wie wir Savegames exploiten können... ... jedoch müssen wir zuvor noch ein SDK anfertigen, bevor wir zum Coden beginnen können. Wie ihr im Verlauf sehen werdet , spielt das SDK eine unheimlich wichtige Rolle, aber dazu mehr im Folgenden (Es empfiehlt sich auf jeden Fall zuerst das andere TUT von mir zu lesen, da Einiges aufeinander aufbaut !) Ein SDK für eueren Exploit erstellen Aber was ist ein SDK ? Nun, das SDK ist die Süd-Deutsche Krankenversicherung , natürlich nicht, Spass bei Seite ^^ Das SDK ist ein "Software Development Kit" , welches später euch und anderen Codern hilft , Software , also Binaries für eueren Savegame Exploit zu schreiben. ************************************************************ ******************************************** Unsere durch PRXTool erhaltene Liste an Funktionen So, ich habe nicht ohne Grund geschrieben , das Einiges nun aufeinander aufbaut. Wir benötigen jetzt unsere .txt Datei wieder , welche wir zuvor mit PRXTool erstellt haben. Die Datei sollte unsere "Funktionen" beinhalten, mit ihren dazugehörigen "Stubs". SDK.S Wenn wir in einem Programm eine Funktion benutzen, z.B "sceIoOpen" um eine Datei zu öffnen , dann braucht der Compiler auch eine Addresse , wo er diese Funktion finden kann. Anders gesagt: "Der Stub ist ein Funktion Caller" Das SDK.S , das übrigens ein Assembler File ist , dient hier so zusagen als Inhaltsverzeichnis an Functionen für den Compiler. Das heißt im Gegenzug aber auch, dass ihr nur Funktionen benützen könnt , die das Spiel importiert ! Code: .macro AddNID funcname, nid
Code: cd /cygdrive/c/ wo auch immer euer Ordner ist /
Code: #include <pspdisplay.h>
Code: OUTPUT_FORMAT("elf32-littlemips")
Code: lui $a1 , 0x0881 /* load upper immediate / lade 0x08810000 */
Code: PSPSDK=$(shell psp-config --pspsdk-path)
RE: [TUT 2] Savegame Exploits & SDK´s - HacKmaN - 05.02.2011 23:08 Wie beim letzten Tutorial: Sehr schön RE: [TUT 2] Savegame Exploits & SDK´s - KingBecks95 - 06.02.2011 00:16 wär nur noch toll ein vid mit ergebnis zu sehen RE: [TUT] Exploiting Savegames [TEIL 2] - Cha0z - 06.02.2011 09:17 Super TUT! RE: [TUT] Exploiting Savegames [TEIL 2] - DarXPloit_$a1 - 06.02.2011 09:39 TUT 3 kommt bald. In TUT 3 werden wir genauer auf die main.c eingehen, wo sich unser eigentlicher Code befinden wird. Wir werden ein Hello World für Savegame Exploits coden. Bis dahin , mfg Darxploit RE: [TUT] Exploiting Savegames [TEIL 2] - Sparky - 06.02.2011 10:09 Kleiner Fehler, es muss "functions.txt" beim umbenennen heißen, ansonsten Super Tut RE: [TUT] Exploiting Savegames [TEIL 2] - DarXPloit_$a1 - 06.02.2011 10:16 Sparky : Kleiner Fehler, es muss "functions.txt" beim umbenennen heißen, ansonsten Super Tut
RE: [TUT] Exploiting Savegames [TEIL 2] - fixit98 - 06.02.2011 15:47 Sehr gut Bzw: Hier ist für die die nicht immer Internet haben und trotzdem dran arbeiten wolln der Download der beiden TuT´s als PDF : http://www.multiupload.com/C044PIEZEH RE: [TUT] Exploiting Savegames [TEIL 2] - Cor7eZ - 06.02.2011 16:30 Ich bin dafür, dass diese Tutorials gepinnt werden! RE: [TUT] Exploiting Savegames [TEIL 2] - DarXPloit_$a1 - 06.02.2011 17:45 fixit98 : Sehr gut
Bzw: Hier ist für die die nicht immer Internet haben und trotzdem dran arbeiten wolln der Download der beiden TuT´s als PDF : http://www.multiupload.com/C044PIEZEH
RE: [TUT] Exploiting Savegames [TEIL 2] - fixit98 - 06.02.2011 18:28 DarXPloit_$a1 : fixit98 : Sehr gut
Bzw: Hier ist für die die nicht immer Internet haben und trotzdem dran arbeiten wolln der Download der beiden TuT´s als PDF : http://www.multiupload.com/C044PIEZEH
RE: [TUT] Exploiting Savegames [TEIL 2] - PSP_Lord - 06.02.2011 18:52 Nochmals die selbe Anregung von mir mit dem Delay Slot statt: Code: lui $a1 , 0x0881 /* load upper immediate / lade 0x08810000 */ lui $a2, 1 /* lese 10 000 bytes von der Datei */ jal sceIoRead /* Call sceIoRead */ bitte: lui $a1 , 0x0881 /* load upper immediate / lade 0x08810000 */ jal sceIoRead /* Call sceIoRead */ lui $a2, 1 /* lese 10 000 bytes von der Datei */ Achja, in dem Pic hast du "li" verwendet, load immediate. Wie schon gesagt, load immediate ist nicht "lui" sondern, "lui" + "addiu". Wenn du schreibst: li $t0, 2, dann ist $t0 = 0x00000002 das erreichst du nur mit ori $t0, $zero, 2 Also: li ist nicht lui Ansonsten gutes Tut. RE: [TUT] Exploiting Savegames [TEIL 2] - DarXPloit_$a1 - 06.02.2011 19:09 PSP_Lord : Nochmals die selnbe Anregung von mir mit dem Delay Slot
statt: Code: lui $a1 , 0x0881 /* load upper immediate / lade 0x08810000 */ lui $a2, 1 /* lese 10 000 bytes von der Datei */ jal sceIoRead /* Call sceIoRead */ bitte: lui $a1 , 0x0881 /* load upper immediate / lade 0x08810000 */ jal sceIoRead /* Call sceIoRead */ lui $a2, 1 /* lese 10 000 bytes von der Datei */ Achja, in dem Pic hast du "li" verwendet, load immediate. Wie schon gesagt, load immediate ist nicht "lui" sondern, "lui" + "addiu". Wenn du schreibst: li $t0, 2, dan ist $t0 = 0x00000002 das erreichst du nur mit ori $t0, $zero, 2 ALso: li ist nicht lui Ansonsten gutes Tut.
RE: [TUT] Exploiting Savegames [TEIL 2] - Dr. Soup - 06.02.2011 19:25 DarXPloit_$a1 : Ich bin zwar nicht besonders gut in Assembler Language, aber man muss doch zuerst die parameter setzen und dann die function callen.
Bisher hab ich niemanden gesehen, der wo es anders als hier gemacht hat.
Man sollte nie den Delay Slot frei lassen. Die beste Methode wäre es so zu machen wie PSP_Lord gesagt hat. In MIPS wird der Befehl, der direkt nach einem J-Type Befehl kommt zuerst ausgeführt.
RE: [TUT] Exploiting Savegames [TEIL 2] - PSP_Lord - 06.02.2011 19:37 Ich weis, welche Parameter sceIoOpen braucht, und ich bin mir auch bewusst, dass lui $a1, 1 0x00010000 bedeutet. ABER: in deinem pic steht li $a1, 1, und das ist a1 = 0x00000001. Nur in deinem Code verwendest du load upper immediate (was richtig ist!). Ich wollte nur klarstellen, dass li nicht lui ist und auch nicht den Effekt hat. So zum jal: JAL ist ein JUMP and Link Befehl, dieser Befehl hat, wie alle branch und jump Befehle in MIPS, einen Delay Slot. Dieser Delay Slot wird VOR dem jump der JAL ausgeführt. Das heißt, man schreibt folgendes: lui $a1 , 0x0881 //a1 = 0x08810000 jal sceIoRead //jump to sceIoRead, VORHER aber.... lui $a2, 1 //...a2 = 0x00010000 wenn du es so schreibst, wie du es willst: lui $a1 , 0x0881 //a1 = 0x08810000 lui $a2, 1 //...a2 = 0x00010000 jal sceIoRead //jump to sceIoRead //dann musst du noch eine NOP hinter die JAL machen nop wie du siehts, ist das eine code Zeile zu viel, ist also nicht optimaler code, da eine zusätzliche, unnötige Operation ausgeführt wird. Bei komplexerem code mit vielen branch und jump Befehlen, ist es doch ein Unterschied, ob man den delay Slot verwendet oder nicht. Ich habe durchaus Erfahrungen mit MIPS und ich programmiere auch für die PSP, blicke also in dieser Materie relativ gut durch, ohne jetzt behaupten zu wollen, ich könnte eine CFW schreiben. RE: [TUT] Exploiting Savegames [TEIL 2] - DarXPloit_$a1 - 06.02.2011 22:34 Geklärt: Da mein Code nicht falsch ist und wir in savegames viel Platz zum injektzieren haben, bleibt alles gleich. Dank geht an PSP_Lord für den Tipp |