Speicheradresse Verändern
-
Also habe geschaut welche Adressen auf 90,also no operation gesetzt werden wenn ich das einschalte und habe diese Adressen einfach mal in meinem Programm so gesetzt. Allerdings schmiert mir bei Programmstart jetzt mein eigentliches Game ab... komisch eigentlich weils ja über Tsearch geht.
std::pair<::DWORD, int> data[] = { std::make_pair (0x686614, 999), // Geld std::make_pair (0x44FA8D, 90), // Geld std::make_pair (0x44FA8E, 90), // Geld std::make_pair (0x45A9B8, 90), // Geld std::make_pair (0x45A9B9, 90), // Geld std::make_pair (0x45A9BA, 90), // Geld std::make_pair (0x45A9BB, 90), // Geld std::make_pair (0x45A9BC, 90), // Geld std::make_pair (0x45A9BD, 90), // Geld };
-
Falls die "90" ein NOP sein soll, dann muß sie hexadezimal (0x90) geschrieben werden und WriteProcessMemory () darf da nur ein einziges Byte schreiben (also kein sizeof(sonstwas)).
-
Tatsache! Funktioniert einwandfrei!
Aber warum muss das nur ein Byte also 8 bit groß sein?PS: Merkwürdig auch dass ich bestimmte Wert mit Tsearch einfach nicht finden kann!!! zB mein Leben. Unauffindbar egal welchen Wertebereich ich durchsuche...
-
Ein Byte, weil "NOP" eben ein x86-Assembler-Befehl mit einem Byte ist.
Befehle "auszunoppen" ist aber eher schon etwas fortgeschrittenes cheaten/hacken, da sollte man schon ein wenig davon verstehen was man macht.Was "das Leben" angeht... die werden normalerweise, und wenn das Spiel nicht versucht sich gegen Cheater zu schützen, null-basiert oder eins-basiert abgespeichert. D.h. "2 Leben" kann als 1 oder 2 abgespeichert sein.
Und nicht jeder Wert muss ein DWORD sein. Wenn das Spiel die "Anzahl der Leben" als char speichert (was leicht möglich ist, man wird ja kaum mehr als 255 Leben brauchen), dann viel Spass beim Suchen. Denn du wirst vermutlich etliche Bytes finden die den passenden Wert haben.
-
OK vielen Dank für die Hilfe.
Das heißt wenn ich hundert leben habe dann kann es sein dass sie als 50 gespeichert werden?
-
Such die "Hundert Leben
" mal nicht als Integer (0x00000064), sondern als Float (0x42C80000).
(Genaueres bei wikipedia (o.ä) : Binäre Darstellung von Fließkommazahlen))
-
Jo hab alles schon mal versucht, könnte allerdings wirklich sein dass sie als char gespeichert werden...
aber das mit dem "ausnoppen" geht wirklich einwandfrei. Was sich da noch so alles anstellen lässt...
evtl. durch Wände gehen?
-
gut, also die Leben kann ich wohl nicht beeinflussen...
komisch, denn es gibt im netz trainer die die leben freezen können und funktioniert bei mir auch wunderbar. würde mich interessieren wie die die adressen rausbekommen haben...
-
Dieser Thread wurde von Moderator/in Phoemuex aus dem Forum C++ in das Forum WinAPI verschoben.
Im Zweifelsfall bitte auch folgende Hinweise beachten:
C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?Dieses Posting wurde automatisch erzeugt.
-
derDoc schrieb:
gut, also die Leben kann ich wohl nicht beeinflussen...
komisch, denn es gibt im netz trainer die die leben freezen können und funktioniert bei mir auch wunderbar. würde mich interessieren wie die die adressen rausbekommen haben...Vielleicht gibt es Leute die nicht bloss fertige Tools sondern auch Disassembler bedienen können...
