Antwort schreiben  Thema schreiben 
Verfasser Nachricht
_Vuze_
Experte
****


Beiträge: 630
Gruppe: User
Registriert seit: Sep 2008

Status: Offline
Danke erhalten: 375
Beitrag: #1
xPSP  Adresse x im Speicher finden, die Wert nach Adresse y schreibt?

Heyho,

wollte mal fragen, ob wer hier Ahnung hat, wie man eine Adresse x im Speicher der PSP findet, die einen Wert nach Adresse y schreibt. Am PC wüsste ich, wie ich vorzugehen habe, doch im Moment bin ich da ziemlich ratlos, wo ich bei der PSP anfangen soll...

Ich hoffe ihr versteht was ich meine und könnt mir helfen Wink

Lg~

Dieser Beitrag wurde zuletzt bearbeitet: 12.08.2011 13:28 von _Vuze_.

12.08.2011 11:25
Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden Diese Nachricht in einer Antwort zitieren
anmabagima
Ex-Developer
****


Beiträge: 348
Gruppe: User
Registriert seit: Dec 2009

Status: Offline
Danke erhalten: 530
Beitrag: #2
RE: Adresse x im Speicher finden, die Wert nach Adresse y schreibt?

Hi,

also eine Speicheradresse kann ja keine Daten in eine andere Speicheradresse schreiben...das kann nur ein Befehl/Kommando...

Suchst du also die Adresse eines Befehls in einem Disassambly der einen Wert in eine bestimmte Speicheradresse schreibt ? Bin mir nicht ganz sicher was genau du tatsächlich suchst...

12.08.2011 14:01
Alle Beiträge dieses Benutzers finden Diese Nachricht in einer Antwort zitieren
_Vuze_
Experte
****


Beiträge: 630
Gruppe: User
Registriert seit: Sep 2008

Status: Offline
Danke erhalten: 375
Beitrag: #3
xPSP  RE: Adresse x im Speicher finden, die Wert nach Adresse y schreibt?

anmabagima :
Suchst du also die Adresse eines Befehls in einem Disassambly der einen Wert in eine bestimmte Speicheradresse schreibt ? Bin mir nicht ganz sicher was genau du tatsächlich suchst...


Genau das ^^
Sorry für die etwas merkwürdige Ausdrucksweise Big Grin

12.08.2011 14:22
Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden Diese Nachricht in einer Antwort zitieren
anmabagima
Ex-Developer
****


Beiträge: 348
Gruppe: User
Registriert seit: Dec 2009

Status: Offline
Danke erhalten: 530
Beitrag: #4
RE: Adresse x im Speicher finden, die Wert nach Adresse y schreibt?

Hi,

nun...das ist nicht ganz so leicht...da die Adressierung in der PSP nie direkt gemacht wird...du kannst also im Disassembly nicht nach der kompletten adresse suchen die dich interessiert...

in der regel wird das gemacht:
über den befehl lui $a0, 0x80 zum beispiel wird das obere word der adresse befüllt. die adresse wäre dann 0x800000. Der rest der adresse wird dann entweder mit dem befehl ori $a0, $a0, 0x1234 oder mit dem befehl addiu $a0, $a0, 0x1234 gemacht...
danach ist die adresse dann 0x801234...
das wäre dann aber auch schon der einfachste fall...wenn die gesuchte adresse zum beispiel durch eine struktur definition nicht direkt sondern über eine basis adresse angesprochen wird ist das noch etwas "komplizierter"...dann würde die oben genannte methode z.Bsp. die adresse 0x801200 in das register $a0 schreiben und eine Wertzuweisung auf die obige Adresse dann mittels
sw $v1, 34($a0) gemacht...also die adresse in $a0 + 34....

ich hoffe es ist einigermaßen verständlich erklärt und auch ohne Fehler Wink Anmerkungen und Verbesserungen willkommen ...

VG

12.08.2011 17:47
Alle Beiträge dieses Benutzers finden Diese Nachricht in einer Antwort zitieren
Folgende User bedanken sich:
_Vuze_ (Aug-12-2011)
_Vuze_
Experte
****


Beiträge: 630
Gruppe: User
Registriert seit: Sep 2008

Status: Offline
Danke erhalten: 375
Beitrag: #5
RE: Adresse x im Speicher finden, die Wert nach Adresse y schreibt?

Also müsste ich bei Adresse 0x123456 konkret nach 0x12 sowie 0x3456 suchen im Disassembly (im einfachsten Fall, den ich jetzt einfach mal erhoffe Tongue)?

Okay. Jetzt ist die Frage, woher ich eine "durchsuchbare" Disassembly bekomme; habe meinem Memdump in PS2DIS geöffnet und analysieren lassen; eine "Suche Kommando" Funktion habe ich da aber nicht erspäht :>

Kannst du mir da was ans Herz legen?

Lg und danke für deine hilfreichen Antworten =)

12.08.2011 17:59
Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden Diese Nachricht in einer Antwort zitieren
anmabagima
Ex-Developer
****


Beiträge: 348
Gruppe: User
Registriert seit: Dec 2009

Status: Offline
Danke erhalten: 530
Beitrag: #6
RE: Adresse x im Speicher finden, die Wert nach Adresse y schreibt?

Hi,

kommt jetzt drauf an was du durchsuchen willst...wenn es um ein spiel oder homebrew geht dann kannst du die eboot mittels prxtool in entsprechenden code wandeln den du dann durchsuchen kannst...bei spielen musst du die eboot erstnoch decrypten...da gibt's entsprechende tools im iNet...

viel erfolg...

13.08.2011 09:54
Alle Beiträge dieses Benutzers finden Diese Nachricht in einer Antwort zitieren
_Vuze_
Experte
****


Beiträge: 630
Gruppe: User
Registriert seit: Sep 2008

Status: Offline
Danke erhalten: 375
Beitrag: #7
RE: Adresse x im Speicher finden, die Wert nach Adresse y schreibt?

Also, ich habe mich ein wenig weiterinformiert, und es scheint an dem lwc1 hier gehangen zu haben: http://i.imgur.com/AHIZD.jpg
Jetzt habe ich mal versucht, eine MIPS Template darauf anzuwenden, die für meine Zwecke genügen sollte: http://i.imgur.com/rKjZd.png
Doch irgendwie scheint mein Plan nicht aufzugehen, denn jetzt tut sich garnix mehr, auch wenn ich den Code dann umgewandelt im Spiel aktiviere xD (Vorher [ohne Subroutine] wurde der Wert immer auf Standard zurückgesetzt und nicht wie beabsichtigt der Wert x immer hinzugefügt).

Dieser Beitrag wurde zuletzt bearbeitet: 13.08.2011 10:30 von _Vuze_.

13.08.2011 10:28
Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden Diese Nachricht in einer Antwort zitieren
anmabagima
Ex-Developer
****


Beiträge: 348
Gruppe: User
Registriert seit: Dec 2009

Status: Offline
Danke erhalten: 530
Beitrag: #8
RE: Adresse x im Speicher finden, die Wert nach Adresse y schreibt?

Hmmm...was genau hast du eigentlich vor, wenn ich das Fragen darf ?
Da ich kein MIPS experte bin, glaub ich nicht dass ich dir da so viel weiter helfen kann...

Ich hab zwar auch schon ein paar hooks für plugins programmiert aber weher wenig direkt in MIPS...

14.08.2011 12:50
Alle Beiträge dieses Benutzers finden Diese Nachricht in einer Antwort zitieren
_Vuze_
Experte
****


Beiträge: 630
Gruppe: User
Registriert seit: Sep 2008

Status: Offline
Danke erhalten: 375
Beitrag: #9
RE: Adresse x im Speicher finden, die Wert nach Adresse y schreibt?

Der Wert aus Adresse 1 soll in einem Register gespeichert werden und ihm soll nach Betätigung einer bestimmten Taste ein bestimmter Wert hinzugefügt/abgezogen werden. Anschließend soll der veränderte Wert zurück nach Adresse 1 geschrieben werden. (Sind float Werte btw)

15.08.2011 09:11
Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden Diese Nachricht in einer Antwort zitieren
PSP_Lord
Durchstarter
**


Beiträge: 87
Gruppe: User
Registriert seit: Sep 2010

Status: Abwesend
Danke erhalten: 133
Beitrag: #10
RE: Adresse x im Speicher finden, die Wert nach Adresse y schreibt?

Leider habe ich keine Zeit den Code komplett zu analysierten, er sieht soweit aber ok aus.

1.) Überprüfe, ob dein Hook funktioniert. Ich persönlich bevorzuge JAL als meinen MIPS ASM hook Befehl.

2.) Hast du die "negative rule" bei der Controller Adresse beachtet?

3.) Stimmen die Button Werte (0x100, 0x200) mit denen des Spieles überein?

4.) Bist du dir sicher, dass deine Adresse 0x09B486E0 statisch ist?

5) Hast du auch bei der obigen Adresse die "negative rule" beachtet?

Zum Schluss nochmal etwas zu deinem Hook. Er ist ungünstig gewählt, da du über jr $ra wieder zurück zur Adresse des Callers + 0x8 springst. Wenn du jetzt dir die Adresse 0x10C anschaust, wirst du feststellen, das dort ebenfalls wieder zum Caller + 0x8 returned wird, allerdings wird vorher ein Wert in $v0 gespeichert; es wird also ein Wert returned. Dieser Wert wird bei dir nicht returned was zu Komplikationen führen kann.

//0x10C
if ($a0 < 1) {
return 1;
}
return 0;


http://ps4dev.net.tc/ - the new german psp development site. Check it out!
15.08.2011 12:20
Alle Beiträge dieses Benutzers finden Diese Nachricht in einer Antwort zitieren
Folgende User bedanken sich:
_Vuze_ (Aug-15-2011)
_Vuze_
Experte
****


Beiträge: 630
Gruppe: User
Registriert seit: Sep 2008

Status: Offline
Danke erhalten: 375
Beitrag: #11
RE: Adresse x im Speicher finden, die Wert nach Adresse y schreibt?

1) Ok, habe es mit jr ra versucht, wie du richtig bemerkt hast ^^ ich gucke mal mit jal Smile
2) Joppo ^_^
3) Jap =)
4) Ist sie Wink Wenn ich den Wert manuell modifiziere geht es nach jedem Gameneustart / Gebietswechsel usw.
5) Nein :> Dachte das gilt nur für die Controller Address? Habs mal gefixed, aber tut sich immer noch nüscht.

Danke schonmal!

Okay, hab es mit einem jal Hook versucht, der schon in einer anderen (funktionierenden) Sub verwendet wird, die nicht von mir ist. Bis auf die Tatsache, dass mir nun 3/4 des Bildschirmtextes abhanden gekommen sind geht immer noch nix xD

Dieser Beitrag wurde zuletzt bearbeitet: 15.08.2011 14:42 von _Vuze_.

15.08.2011 14:17
Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden Diese Nachricht in einer Antwort zitieren
PSP_Lord
Durchstarter
**


Beiträge: 87
Gruppe: User
Registriert seit: Sep 2010

Status: Abwesend
Danke erhalten: 133
Beitrag: #12
RE: Adresse x im Speicher finden, die Wert nach Adresse y schreibt?

Dies könnte evt. an der verwendeten JAL liegen. Die Kunst bei Subroutines ist, sie so zu schreiben, "als ob sie gar nicht existieren" würden. Dies bedeutet, du musst den originalen JAL-call preserven (erhalten).

Ich wünschte, ich könnte es dir jetzt zeigen, wie das geht, falls du Hilfe brauchst, aber ich bin zur Zeit im Urlaub. Wenn ich am Sonntag wieder zu Hause bin, bin ich gerne bereit, dir zu helfen.

Reine Neugierde: Für welches Spiel schreibst du die Subroutine?


http://ps4dev.net.tc/ - the new german psp development site. Check it out!
15.08.2011 19:45
Alle Beiträge dieses Benutzers finden Diese Nachricht in einer Antwort zitieren
_Vuze_
Experte
****


Beiträge: 630
Gruppe: User
Registriert seit: Sep 2008

Status: Offline
Danke erhalten: 375
Beitrag: #13
RE: Adresse x im Speicher finden, die Wert nach Adresse y schreibt?

Das wäre natürlich echt super, wenn du mir da persönlich weiterhelfen könntest =)
Habe dir mal eine PN mit meinen Kontaktmöglichkeiten zukommen lassen Wink

Noch einen schönen Urlaub Big Grin

15.08.2011 20:12
Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden Diese Nachricht in einer Antwort zitieren
Antwort schreiben  Thema schreiben 

Möglicherweise verwandte Themen...
Thema: Verfasser Antworten: Ansichten: Letzter Beitrag
xPSP In welcher Sprache schreibt man Plugins? German_Noob 7 2.212 27.07.2011 15:15
Letzter Beitrag: secret
xPSP [C] Dynamischer Speicher Chaosduckman 9 2.015 29.09.2010 20:02
Letzter Beitrag: HacKmaN
xPSP Freien Speicher mit Lua auslesen? Fred 10 2.189 30.07.2009 16:04
Letzter Beitrag: Fred

Druckversion anzeigen
Thema einem Freund senden
Thema abonnieren | Thema zu den Favoriten hinzufügen




» zum Seitenanfang