Pointer Address

04/19/2014 11:08 asd132#1
Hey,
ich bin mir nicht genau sicher ob ich hier im richtigen Abteil bin, aber ich fang einfach mal an ;)

Ich hab mittels Pointer Scan in CheatEngine, meinen Pointer herausgefunden.
Jetzt möchte ich die Adresse in meine VB.Net Applikation übernehmen nur ich komme gerade auf die Adresse nicht klar. Die sieht so aus:
"Game.exe"+00C8D518 (dann kommen noch die ganzen Offsets;lasse ich mal aus)
Wie muss ich jetzt die Adresse berechnen?

MfG Tim
04/19/2014 13:42 ​Tension#2
Gab es doch schon 1000x.

Games.exe ist die ImageBase des Prozesses, ein einfacher Weg ist bei CheatEngine deine Adresse ( Game.exe+00C8D518 ) Manuell hinzuzufügen und diese dann einfach nehmen, afaik ist die ImageBase fast immer 0x00400000.
04/19/2014 19:14 Mostey#3
Quote:
Originally Posted by ​Tension View Post
afaik ist die ImageBase fast immer 0x00400000.
Und falls nicht: [Only registered and activated users can see links. Click Here To Register...] oder [Only registered and activated users can see links. Click Here To Register...] wenn extern.
04/19/2014 19:30 asd132#4
Danke.
Die ImageBase scheint aber nicht wie erhofft 0x00400000 und sogar dynamisch zu sein.
Eben war sie 140ADD518, beim nächsten Start 14024D518.

//Edit: Dein Post wurde mir noch nicht angezeigt Mostey. Dankeschön erstmal :)
MfG Tim :)
04/19/2014 20:11 ​Tension#5
Die ImageBase ist nicht dynamisch, du kannst diese auch mit PEiD, PE Explorer o.ä nachgucken.
04/19/2014 21:02 asd132#6
Ich blick nicht mehr durch. PEid & PE Explorer funktionieren nicht, da sie nur 32bit PEs unterstützen. Also hab ich mir den Process Explorer runtergeladen mit dem ich dann die Load-Address 0x18F8D0000 rausbekomme.
Wenn ich diese jetzt für "Game.exe" ersetze, bekomme ich aber in cheat engine
nicht mehr den selben Pointer raus bzw. auch kein Value, da "Game.exe"+blabla nicht das selbe ergibt wie 0x18D8D0000+blabla. Ich hoffe ihr könnt mir folgen.

MfG
04/19/2014 21:20 ​Tension#7
Was kam denn raus als Adresse bei "Game.exe"+00C8D518 wenn du es bei CheatEngine eingibst?

Für x64 kannst du Stud_PE verwenden ( [Only registered and activated users can see links. Click Here To Register...] ).

Probier das mal aus ( Geht bei x64 auch ):
04/19/2014 21:36 asd132#8
Für "Game.exe"+00C8D518 kam als Adresse: 140A9D518 raus.
Wenn ich diese Adresse für "Game.exe"+00C8D518 nun im Pointer-Fenster
einsetze, funktioniert das auch. Starte ich das Game neu, lade den selben CheatTable wie eben hinein(also alles unverändert; ja ich hab den prozess neu geladen), so wird mir angezeigt das keine Adresse zugeordnet ist also P->0000000. Wenn ich jetzt den Vorgang wiederhole bekomme ich nicht wie erhofft
140A9D518 raus, sondern wieder was anderes. Deshalb sage ich die "ImageBase" scheint wohl doch nicht statisch zu sein, sondern dynamisch.

Ich müsste in meinem "Trainer" oder "Hack" also jedes mal die imagebase neu auslesen und die Adresse mit Hex neu berechnen.

MfG Tim
04/19/2014 22:03 ​Tension#9
Nein dein Pointer ist einfach falsch.
04/19/2014 22:14 asd132#10
Dann müsste ich für "Game.exe" aber doch trotzdem immer die selbe Adresse rausbekommen. Ich schau nochmal nach
04/19/2014 23:18 Mostey#11
Quote:
Originally Posted by asd132 View Post
Dann müsste ich für "Game.exe" aber doch trotzdem immer die selbe Adresse rausbekommen. Ich schau nochmal nach
Nicht unbedingt.

Der Pointer den du hier hast, scheint dynamisch zu sein. Er ändert sich dementsprechend jedes mal, wenn du das Spiel neustartest. Selbst wenn du die richtige Image Base hättest, würdest du wahrscheinlich trotzdem nicht auf deine Wunschaddresse kommen.

Wiegesagt, am einfachsten hast du es sowieso wenn du eine Funktion nimmst, die dir die Base ausliest sofern sie nicht statisch ist. Kann man in deinem Fall nicht konkret beurteilen, da du uns dafür zu wenige Informationen gegeben hast.
04/20/2014 00:18 asd132#12
Quote:
Originally Posted by Mostey View Post
Nicht unbedingt.

Der Pointer den du hier hast, scheint dynamisch zu sein. Er ändert sich dementsprechend jedes mal, wenn du das Spiel neustartest. Selbst wenn du die richtige Image Base hättest, würdest du wahrscheinlich trotzdem nicht auf deine Wunschaddresse kommen.

Wiegesagt, am einfachsten hast du es sowieso wenn du eine Funktion nimmst, die dir die Base ausliest sofern sie nicht statisch ist. Kann man in deinem Fall nicht konkret beurteilen, da du uns dafür zu wenige Informationen gegeben hast.
Hmm. Mir ist jetzt gerade aufgefallen, dass wirklich bei jedem 2.Spielstart eine bestimmte Base-Address vorkommt. Heißt: Ich starte das Spiel, will die Werte auslesen->klappt nicht. Ich starte Spiel neu->Base-Address stimmt->Werte werden erfolgreich ausgelesen.

Ich würde das ja sehr gern in C++ realisieren, aber da bin ich ein totaler Anfänger.

Was benötigt ihr denn für Informationen?

MfG Tim :)
04/20/2014 13:05 Mostey#13
Quote:
Originally Posted by asd132 View Post
Was benötigt ihr denn für Informationen?
  • Was möchtest du erreichen?
  • Wie sehen die Pointer aus? Offsets? Statisch? Dynamisch?
  • Um welches Game handelt es sich?
  • 64 Bit oder 32 Bit?

Sollte es wirklich an der Image Base liegen, hast du doch nichts zu verlieren wenn du in C++ meine vorher genannten Funktionen aus der WinAPI nutzt. Da siehst du sofort, ob die konstant bleibt oder sich ändert.

[Only registered and activated users can see links. Click Here To Register...] findest du übrigens auch noch genügend Ressourcen. Unter anderem auch Tutorials und Erklärungen.
04/20/2014 16:08 asd132#14
Sorry für Doppelpost.
Problem habe ich eben gelöst bekommen.
Die BaseAdresse die mir gefehlt hat kann man ganz leicht bestimmen wie ich herausgefunden habe.
Code:
Dim p As Process = Process.GetProcessByName("Game.exe")(0)
Dim bAddr = p.MainModule.BaseAddress
Dim kAddr = &HC8D518
Dim baseaddr = bAddress + kAddress
'Dann kommen noch die ganzen Offsets die hinzuaddiert werde
'usw..
Zu den Fragen:
Ich möchte die Health beliebig verändern.
"7DaysToDie.exe"+00C8D518
Offsets:
ofs1 = &H120
ofs2 = &H240
ofs3 = &H30
ofs4 = &H218
ofs5 = &H13C
Es handelt sich um 7DaysToDie -> 64bit Version.

Danke für eure Denkanstöße. Thema kann geclosed werden :)

MfG Tim