Exploit Hunting - 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) +---- Thema: Exploit Hunting (/showthread.php?tid=81460) |
Exploit Hunting - SkyleN - 20.05.2014 18:17 Hallou ich hoffe jemand kennt sich aus (das obere ist das Savegame im HexEditor ) 1. Wie man hier sieht hab ich die Kontrolle über den Register $a3,. Um das in ein Exploit zu verwandeln brauche ich noch die Kontrolle von $a1. <---- FALSCH! Kann ich jetzt unabhängig davon das am Anfang der Register $a3 den Crash verursacht, an einer anderen Stelle im Savegame nach einem Ort suchen, wo ich $a1 kontrollieren kann? Oder muss ich versuchen alle nötigen Register mit einem Crash zu kontrollieren? 2. Ich habe sehr oft gelesen das man in dem Spielernamen nach Crash´s suchen soll... Warum eigentlich?... Ich hab einfach irgendwo im Savegame ein paar "AAAAAAAAA" rein gehämmert und geguckt was passiert. Ist es überhaupt möglich Exploits auf diese Weise zu finden? Thx im voraus! MFG... SkyleN RE: Exploit Hunting - dx3m - 20.05.2014 18:32 Darf ich einmal fragen wieso du die Kontrolle über den 2. Argument Register haben willst? Die PSP hier crasht ja nur, da 0x19D24B64 keine gültige Adresse ist, und versucht von eben dieser ungültigen Adresse ein Word zu laden. Wenn du einmal einen Disassembly Code Posten könntest, könnten wir rausfinden wieso das die PSP Crasht. Also einen Exploit wirst du daraus nicht machen können, da du dafür die "Return-Address" Register ($ra) überschreiben müsstest! EDIT: SkyleN : 2. Ich habe sehr oft gelesen das man in dem Spielernamen nach Crash´s suchen soll...
Warum eigentlich?... Ich hab einfach irgendwo im Savegame ein paar "AAAAAAAAA" rein gehämmert und geguckt was passiert. Ist es überhaupt möglich Exploits auf diese Weise zu finden? Thx im voraus!
Der Spielername wird während der Ausführung in einen Buffer im RAM abgelegt. Dieser Buffer hat aber eine bestimmte Größe. Ein String wiederum endet erst bei einem Nullbyte. Läd man einen zu langen String in den Buffer läuft dieser über (Buffer Overflow). Dadurch zerstörst du den Stack und überschreibst die "Return-Address", also das $ra Register. Nach Ende einer bestimmten Funktion wird einfach zu der Return-Address gesprungen. Durch einen Überlangen String erzeugst du eben einen Buffer Overflow und wenn das passiert kannst du eben auf deine eigene Return Adresse springen. Dadurch kannst du unsignierten Code ausführen, aber eben nur Usermode.
RE: Exploit Hunting - SkyleN - 20.05.2014 18:41 hmm schade, hab ich wohl was falsch verstanden und ja ich kann den code posten EDIT: hir ist der code: Spoiler: (anzeigen) 0x0883E1C8: 0x8CA50000 '....' - lw $a1, 0($a1) mein Gehirn sagt "lw" = "load word" und "jr ra" ist kurz nach dem Crash. Mein Gehirn sagt das ist gut Zitat: Der Spielername wird während der Ausführung in einen Buffer im RAM abgelegt. Dieser Buffer hat aber eine bestimmte Größe. Ein String wiederum endet erst bei einem Nullbyte. Läd man einen zu langen String in den Buffer läuft dieser über (Buffer Overflow). Dadurch zerstörst du den Stack und überschreibst die "Return-Address", also das $ra Register. Nach ende einer bestimmten funktion wird einfach zu der Return-Address gesprungen.
RE: Exploit Hunting - dx3m - 20.05.2014 19:11 Du kannst 256 Bytes mit einen A ins Savegame pumpen. Wenn du einen Crash hast und bei dem "Return-Address" Register "0x41414141" steht dann du schon Gewonnen. Sonst hast du keine Chance. Wie gesagt, die PSP crasht eben beim LoadWord weil die Adresse ungültig ist woher er das Word laden will. Ausserdem hat das LoadWord(lw) und JmpReg (jr) keinen zusammenhang. RE: Exploit Hunting - SkyleN - 20.05.2014 19:18 dx3m : Du kannst 256 Bytes mit einen A ins Savegame pumpen.
Wenn du einen Crash hast und bei dem "Return-Address" Register "0x41414141" steht dann du schon Gewonnen. Sonst hast du keine Chance. Wie gesagt, die PSP crasht eben beim LoadWord weil die Adresse ungültig ist woher er das Word laden will. Ausserdem hat das LoadWord(lw) und JmpReg (jr) keinen zusammenhang.
Zitat: wenn man einen Register in einer Crashline kontrolliert, und nach dem Crash zu $ra gesprungen wird, ist der Crash zu 99% exploitable.
RE: Exploit Hunting - fkrone - 20.05.2014 19:23 SkyleN : dx3m : Du kannst 256 Bytes mit einen A ins Savegame pumpen.
Wenn du einen Crash hast und bei dem "Return-Address" Register "0x41414141" steht dann du schon Gewonnen. Sonst hast du keine Chance. Wie gesagt, die PSP crasht eben beim LoadWord weil die Adresse ungültig ist woher er das Word laden will. Ausserdem hat das LoadWord(lw) und JmpReg (jr) keinen zusammenhang.
Zitat: wenn man einen Register in einer Crashline kontrolliert, und nach dem Crash zu $ra gesprungen wird, ist der Crash zu 99% exploitable.
Code: addi $ra, $a3, 0
oder so was danach haben (wusste auf die Schnelle nicht die Syntax vom Pseudobefehl move). Aber da du maximal etwas in $a3 machen kannst und nicht beeinflussen kannst, wohin gesprungen wird, kannst du damit nix anfangen. RE: Exploit Hunting - SkyleN - 20.05.2014 19:30 fkrone : Das alles ist ja schön und gut. Aber ich erkläre dir einfach mal was hier passiert:
Du versuchst von einer ungültigen Adresse etwas in $a1 zu schreiben. Schön und gut. Würde es normal durch laufen, so springst du danach auf die Adresse, die in $ra steht. Damit hier etwas exploitable ist müsstest du schon so etwas wie Code: addi $ra, $a1, 0
oder so was danach haben (wusste auf die Schnelle nicht die Syntax vom Pseudobefehl move). Aber da du maximal etwas in $a1 machen kannst und nicht beeinflussen kannst, wohin gesprungen wird, kannst du damit nix anfangen.
Zitat: Kann ich jetzt unabhängig davon das am Anfang der Register $a3 den Crash verursacht, an einer anderen Stelle im Savegame nach einem Ort suchen, mit dem ich $a1 kontrollieren kann?
RE: Exploit Hunting - dx3m - 20.05.2014 19:46 Vergiss die Argument-Register! Such dir ein Spiel wo man Namen eingeben kann. Und versuch das du einfach ein paar Zeichen anhängst. Auf wololo gibt es ein Tutorial wie du von 0 zum Exploit kommst. Musst aber berücksichtigen das du erstmal das richtige Spiel finden. Kleiner Tipp: Such im PSN Store nach Mini's. Da gibt es einige Spiele die unausreichend in der Sicherheit sind. Brauchst nur das nötige Kleingeld und den richtigen Riecher. Wirst schon was finden. RE: Exploit Hunting - SkyleN - 20.05.2014 20:20 naja ... wie man sieht hab ich noch viel zu wenig Ahnung ... aber ich komme zurück wenn ich das alles drauf hab! hast du es schon geschafft einen Exploit zu finden der auch auf der vita läuft? es solln ja 10% der games exploitbar sein. Kann ich mir irgendwie nicht vorstellen o.O RE: Exploit Hunting - Shana-chan - 20.05.2014 21:42 SkyleN : naja ... wie man sieht hab ich noch viel zu wenig Ahnung ...
aber ich komme zurück wenn ich das alles drauf hab! hast du es schon geschafft einen Exploit zu finden der auch auf der vita läuft? es solln ja 10% der games exploitbar sein. Kann ich mir irgendwie nicht vorstellen o.O
RE: Exploit Hunting - SkyleN - 20.05.2014 22:02 Shana-chan : man kann fast sagen jedes dritte Mini hat ein Explooit
ich durchstöber grade die minis...ich konnte bis jetzt kein Game finden bei den man einen Playernamen eingeben kann ... RE: Exploit Hunting - dx3m - 21.05.2014 22:32 Kannst dich ja gerne Melden wenn du Hilfe brauchst. Und könntest du den Crash Dump posten? Möcht das gerne mal sehen. Viel Glück noch! RE: Exploit Hunting - SkyleN - 22.05.2014 12:39 Wenn du mir sagst was du mit Crash Dumb meinst xD Ich hab jetzt das Buch " Hacking the Art of exploits " Und versteh jetzt schon etwas mehr ;D RE: Exploit Hunting - dx3m - 24.05.2014 03:34 Das ist das Bild das du als aller erstes gepostet hast. Nur halt jetzt mit dem neuen Spiel und überschriebenen $RA Register. RE: Exploit Hunting - SkyleN - 25.05.2014 11:35 Ich hab mit dem Spiel leider kein Crash hin bekommen. Der Spielername verlängert sich nur und überschreibt ein paar andere Texte im Spiel. Muss mir wohl ein neues suchen EDIT: Hir neues Spiel... aber auch kein Erfolg Spoiler: (anzeigen) EDIT: GESCHAFFT! endlich!. wollte grade aufgeben und an schon gefundenen Exploit Games üben. Aber dann hatte ich doch Erfolg! Spoiler: (anzeigen) EDIT: okay habs mit EPC schon kapiert xD |