![]() |
[$0048c2e8] umrechnen
Hi,
ich programmiere grad an einem Spiel. Ich hab das zu Mirage228 gemacht, damit er es mal testet. In dem Spiel sind auch ein paar Cheats eingebaut. Wenn man cheatet kann man sich nicht mehr in den Highscore eintragen, aber wie Mirage halt so ist, hat er die Exe gepachted und schwupp, trotz cheaten konnte er sich in den HighScore eintragen, was mir natürlich nicht so passte. Im weiteren gespräch meinte er, das es ein paar böse Bubis geben könnte die auch die Exe so patchen, das man pro Auto einiges an mehr an Punkten bekommt. Jetzt wollte ich mal gucken, ob man das wirklich so einfach geht. Also -> Breakpoint gesetzt -> gestartet und das CPU-Fenster aufgerufen und mal geguckt wo man das verändern kann. Jetzt bin ich auf $0048c2e8 gestoßen. Umgerechnet sollte das eigentlich 100 sein. Bloß ist mein Frage nun, wie rechne ich diesen Wert um? *MFG* Manu :hi: |
Re: [$0048c2e8] umrechnen
Zitat:
|
Re: [$0048c2e8] umrechnen
hmm und wie finde ich das nun?
|
Re: [$0048c2e8] umrechnen
der windowstaschenrechner kann sowas. wissenschaftliche ansicht, hex-zahlen. beachten, dass manchmal bei integern (eigentlich immer) die bytereihgenfolge falschrum ist. allerdings hat die zahl da SO nicht wirklich viel mit 100 zu tun. vermutlich in der tat echt nen zeiger oder sowas.
|
Re: [$0048c2e8] umrechnen
Nur zum Verständnis: Was macht diese Zahl überhaupt? Also wie kommst du gerade auf diese Zahl?
|
Re: [$0048c2e8] umrechnen
Moin Spider,
angenommen, Du hast intern die Punkte in einer Variablen iPoints gespeichert, dann wäre $0048c2e8 die Adresse dieser Variablen
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var iPoints : integer; pPoints : PInteger; begin iPoints := 100; pPoints := @iPoints; // pPoints wäre jetzt, z.B. $0048c2e8 ShowMessage(IntToStr(pPoints^)); // dereferenzieren (^) der Adresse end; |
Re: [$0048c2e8] umrechnen
Zitat:
du kennst doch diese Games wo man Autos oder solchen Sachen ausweichen muss. Und pro ausgewichenem Auto 100 Punkte ;) @Chris Achso, das heißt, ich könnte die Zahl an sich gar nicht ändern? |
Re: [$0048c2e8] umrechnen
Achso...Doch, du Kannst die Zahl ändern. Indem du die Speicherstelle änderst.
Welche Speichergröße hast du denn für den Punktestand gewählt? Der Code wäre dann(32 bit assembler):
Code:
(Wenn ich mich nicht Irre)
mov byte ptr [0x0048c2e8], Deinwert
Aber ich vermute Mirage hat was ganz anderes gemacht :-| Gruß |
Re: [$0048c2e8] umrechnen
Hi,
Mirage hat eine Jump-Adresse umgangen um sich trotz cheaten in die HighScore Liste einzutragen. Aber um das geht hier nicht. Ich möchte wissen, ob man die Punkte die man pro Auto bekommt, verändern kann. Wenn ja -> sch***endreck. |
Re: [$0048c2e8] umrechnen
Sicher kann man das. Du wirst die Punkteanzahl ja irgendwo hardgecodet haben. Wenn du den Typ allerdings geschickt wählst ( Byte ) kann man sie auf maximal 255 setzen. Ich vermute bis jetzt ist es noch ein Integer, da ist weit mehr möglich.
Schick mir mal die Executable, ich probiers einfach mal. Gruß |
Alle Zeitangaben in WEZ +1. Es ist jetzt 23:13 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz