Home of Gamehacking - Archiv
Pizza Connection 2 Adressen - Druckversion

+- Home of Gamehacking - Archiv (http://archiv-homeofgamehacking.de)
+-- Forum: Gamehacking (http://archiv-homeofgamehacking.de/forumdisplay.php?fid=3)
+--- Forum: Gamehacking (http://archiv-homeofgamehacking.de/forumdisplay.php?fid=6)
+--- Thema: Pizza Connection 2 Adressen (/showthread.php?tid=1074)



Pizza Connection 2 Adressen - chesar - 02.08.2012

Moin Moin,
versuche seit einiger Zeit die Geld Adresse in dem schönen Klassiker Pizza Connection 2 heraus zu finde.

Leider ohne Erfolg. 2Byte, 4Byte, Floar etc...

Vielleicht kann mir da einer helfen oder ein guten Tipp geben.

Mfg



RE: Pizza Connection 2 Adressen - iNvIcTUs oRCuS - 03.08.2012

Das is simpel...
Der Wert den Du suchst ist ein FLOAT Wert mit doppelter Genauigkeit...


RE: Pizza Connection 2 Adressen - chesar - 03.08.2012

(03.08.2012, 00:58)sILeNt heLLsCrEAm schrieb: Das is simpel...
Der Wert den Du suchst ist ein FLOAT Wert mit doppelter Genauigkeit...

EDIT// Prima, danke ich hab es ^^

Wie meinst du das, mit doppelter Genauigkeit?





RE: Pizza Connection 2 Adressen - chesar - 03.08.2012

Hmm, aber wie kann ich den Pointer schreiben?

Code:
GetProcessId(ProcName)
        pointer = Read_Long(&H5E7B060)
        Write_Long(pointer + &H90 + &H70 + &H108, 999999999)


So geht es leider nicht -.-
Oder noch besser wie könnte ich ein Code Injektion machen, das der Wert auf 999999999 bleibt?

[Bild: 9ntjj3eblnnx.png]

[Bild: d3ah3yjfikw5.png]


RE: Pizza Connection 2 Adressen - fr33k - 03.08.2012

(03.08.2012, 10:43)chesar schrieb:
(03.08.2012, 00:58)sILeNt heLLsCrEAm schrieb: Das is simpel...
Der Wert den Du suchst ist ein FLOAT Wert mit doppelter Genauigkeit...

EDIT// Prima, danke ich hab es ^^

Wie meinst du das, mit doppelter Genauigkeit?

Mit doppelter Genauigkeit denke ichmeint er das du nach DOUBLE suchen musst.
Hab das Game leider nicht um genaueres zu sagen.





RE: Pizza Connection 2 Adressen - chesar - 03.08.2012

Ja, die Adresse habe ich schon.
Nur leider bekomme ich es nicht hin den Pointer zu schreiben oder eine Code Injektion.
Wäre nett wenn ihr mir da weiter helfen könntet.

Mfg



RE: Pizza Connection 2 Adressen - Acubra - 03.08.2012

(03.08.2012, 14:42)chesar schrieb: Ja, die Adresse habe ich schon.
Nur leider bekomme ich es nicht hin den Pointer zu schreiben oder eine Code Injektion.
Wäre nett wenn ihr mir da weiter helfen könntet.

Mfg

Hey,
du kannst nicht einfach auf die BaseAdresse des Pointers die Offsets aufaddieren. Du musst, nachdem du ein Offset zur Adresse addiert hast, die neue Adresse auslesen und auf die dann das nächste Offset addieren u.s.w.


RE: Pizza Connection 2 Adressen - iNvIcTUs oRCuS - 03.08.2012

Ein Float Wert mit doppelter Genauigkeit ist das was z.B. Cheat Engine im allgemeinen als "Double" bezeichnet.

(03.08.2012, 15:18)Acubra schrieb: Hey,
du kannst nicht einfach auf die BaseAdresse des Pointers die Offsets aufaddieren. Du musst, nachdem du ein Offset zur Adresse addiert hast, die neue Adresse auslesen und auf die dann das nächste Offset addieren u.s.w.
So wie das Trainermodul von DNA geschrieben ist, funktioniert das schon richtig so. Das ist nur die Funktion zur erleichterten Schreibweise. Intern wird natürlich erst jedes einzelne Offset bzw. die daraus resultierende Adresse ausgelesen...

Aber...
[code=VB]GetProcessId(ProcName)
pointer = Read_Long(&H5E7B060)
Write_Long(pointer + &H90 + &H70 + &H108, 999999999)[/code]
Ich weiß nicht wie DNA das Trainermodul gecodet hat, aber wenn Du das so schreibst dann dürfte der Wert höchstwahrscheinlich als reiner Integer Wert geschrieben werden was einem Double Wert in keiner Weise entspricht.
Eine Codecave ist aber auch mehr als einfach...


Original Bytes
----------------
[code=ASM]Pizza2.exe+31D60 - DD 82 08 01 00 00 - fld qword ptr [edx+00000108][/code]
Geänderte Bytes
-------------------
[code=ASM]Pizza2.exe+31D60 - E9 9BE6FCFF - jmp Pizza2.exe+400
Pizza2.exe+31D65 - 90 - nop [/code]
Codecave an Pizza2.exe+400
---------------------------------
[code=ASM]Pizza2.exe+400 - 83 FD 00 - cmp ebp,00
Pizza2.exe+403 - 75 14 - jne Pizza2.exe+419
Pizza2.exe+405 - C7 82 08010000 000080FF - mov [edx+00000108],FF800000
Pizza2.exe+40F - C7 82 0C010000 64CDCD41 - mov [edx+0000010C],41CDCD64
Pizza2.exe+419 - DD 82 08010000 - fld qword ptr [edx+00000108]
Pizza2.exe+41F - E9 41190300 - jmp Pizza2.exe+31D65
[/code]


RE: Pizza Connection 2 Adressen - chesar - 03.08.2012

(03.08.2012, 15:18)Acubra schrieb:
(03.08.2012, 14:42)chesar schrieb: Ja, die Adresse habe ich schon.
Nur leider bekomme ich es nicht hin den Pointer zu schreiben oder eine Code Injektion.
Wäre nett wenn ihr mir da weiter helfen könntet.

Mfg

Hey,
du kannst nicht einfach auf die BaseAdresse des Pointers die Offsets aufaddieren. Du musst, nachdem du ein Offset zur Adresse addiert hast, die neue Adresse auslesen und auf die dann das nächste Offset addieren u.s.w.

Wie genau schreibe ich das in VB?

Code:
pointer = Read_Long(&H5E7B060)
        Write_Long(pointer + &H90)


So zeigt er mir ja ein Fehler an...

Ich nehme mal an, das ist auch Schwachsinn?

Zitat:GetProcessId(ProcName)
WriteLine(&H5E7B060 + &H90)
WriteLine(&H5DC9D50 + &H70)
WriteLine(&H6C6C400 + &H108)
Write_Long(&H6C6C508, 666666)




RE: Pizza Connection 2 Adressen - iNvIcTUs oRCuS - 03.08.2012

Is doch alles quatsch...
Der Pointer wird doch richtig ausgelesen, wenn Du denn den richtigen Pointer hast. Aber Du kannst nicht einfach einen Integer Wert schreiben wenn das Spiel nen Float Wert haben will.
Wenn dann müsstest Du den Integer Wert erstmal in einen Float Wert konvertieren und dann in den Speicher schreiben.
Wie da allerdings die Schreibweise in VB aussieht kann dir DNA sicherlich am besten schreiben, oder Du nimmst halt die ne Codecave...

Ehrlich gesagt bin ich jetzt selbst etwas verwirrt...
Ich weiß momentan nicht inwiefern das Trainermodul aktuell ist was die Pointer angeht. Im Trainermodul 2.0 ist zumindest schon die Deklaration etc. enthalten und der Aufruf sieht da aber folgendermaßen aus...
[code=VB]Write_Pointer(999, &H1e7604c, &H224, &H4b0, &H5c, &H0, &H1d8)[/code]