|
You last visited: Today at 08:06
Advertisement
[GW.exe]Pointer/Value_Problem
Discussion on [GW.exe]Pointer/Value_Problem within the General Coding forum part of the Coders Den category.
06/04/2008, 18:55
|
#1
|
elite*gold: 0
Join Date: Nov 2007
Posts: 439
Received Thanks: 75
|
[GW.exe]Pointer/Value_Problem
Hallo,
ich habe ein großes Problem. Und zwar geht es um Adressen aus der GW.exe .
Ich möchte Feste Speicheradressen aus Guild Wars rauslesen können. Die meisten adressen die ich finde, verändern sich nach jedem Neustart von GW oder beim verlassen eines Gebietes. Andere, die teils fest sind, ändern sich nach jedem update von GW.
Nun die eigentliche frage. Wie ist es möglich bei diese adressen, die sich andauernd ändern, den richtigen Pointer zu finden, auf den diese adressen alle zeigen?!?
Ich habe schon diverse tuts gelesen und alles mögliche ausprobiert. Aber ich komm einfach nicht weiter. Vielleicht kennt sich einer von euch ja hier mit diesem thema gut aus und kann mir weiterhelfen.
MfG
wadimwadim
|
|
|
06/04/2008, 18:58
|
#2
|
elite*gold: 0
Join Date: Jan 2007
Posts: 1,753
Received Thanks: 443
|
achja das problem betrifft uns beide ^^
was wir bisher versucht haben,
via breakpoint haben wir diese infos bekommen,
mov[esi+0x10],edi
also haben wir esi bei einer unserer adressen ausgerechnet -.- und wollten dann einfach den pointer finden der esi definiert, daher haben wir nach dem ausgerechneten wert gesucht,
soweit so gut, 8000 oder 0 treffer -.-
|
|
|
06/05/2008, 10:09
|
#3
|
elite*gold: 20
Join Date: Sep 2006
Posts: 1,100
Received Thanks: 184
|
Hi schaut mal ob der Wert des esi registers sich ändert wärend der laufzeit, wenn ja dann wird dieses Code stück benutzt um verschiedene Werte zu schreiben.
Ihr könnt auch einfach mal nach Adressen von euren Werten suchen, also wenn ihr zb HP an 0x18F808 habt dann sucht ihr im Speicher nach einer Stelle die den Wert der Adresse speichert, wenn ihr was findet habt ihr schonmal einen Pointer auf eure Adresse, dann müsst ihr nur schauen ob dieser Statisch ist.
Ausserdem kann man davon ausgehen das bestimmte Werte immer den gleichen relativen Abstand von einander haben, vorallem Werte die mit dem Char zu tun haben werden normalerweise gemeinsam alloct.
Von Guild Wars weiss ich jetzt nichts spezielles, aber vermutlich sind die Objecte in einer Linked List organisiert, dh jedes Object hat einen Pointer auf das nächste Object und je nach Art der Liste auch eines auf das vorhergehende, solche Linked Lists werden verwendet um Objecte im Speicher Dynamisch zu verwalten und möglichst Platzsparend unter zu bringen und vorallem damit man nicht auf jedes Object einen Pointer braucht.
|
|
|
06/05/2008, 14:39
|
#4
|
elite*gold: 0
Join Date: Nov 2007
Posts: 439
Received Thanks: 75
|
Danke für deine schnelle Antwort.
Quote:
|
Ihr könnt auch einfach mal nach Adressen von euren Werten suchen, also wenn ihr zb HP an 0x18F808 habt dann sucht ihr im Speicher nach einer Stelle die den Wert der Adresse speichert, wenn ihr was findet habt ihr schonmal einen Pointer auf eure Adresse, dann müsst ihr nur schauen ob dieser Statisch ist.
|
Da finden wir nichts!
|
|
|
06/05/2008, 23:52
|
#5
|
elite*gold: 15
Join Date: Nov 2005
Posts: 13,021
Received Thanks: 5,324
|
Hab vor langer Zeit auch mal gesucht. Sind sehr wertvolle Informationen, wenn man mal einen richtigen Bot programmieren will.
Da ich jetzt wieder Zeit hab, werd ich mich mal die Tage da dran setzen. Mal schauen
|
|
|
06/06/2008, 17:06
|
#6
|
elite*gold: 20
Join Date: Sep 2006
Posts: 1,100
Received Thanks: 184
|
Das mit den HP war nur ein Beispiel, ziemlich sicher Zeigt da kein Zeiger hin, wahrscheinlicher ist es das es einen Zeiger auf den Anfang des Spieler Objektes gibt, oder auf dessen GUID (das ist eine Einzigartige Identifikationsnummer(64bit int)).
Und wenn man dann nach einem Zeiger sucht, muss man natürlich auch nach dem richtigen Daten Typ suchen, eine Speicher Adresse wird als unsinged integer gespeichert, wenn eurer Memory Editor Tool eine Hexstring suche unterstüzt, dann solltet ihr diese nutzen, das ist einfacher als die Hex Adresse in Decimal zu convertieren und dann nach diesem Wert zu suchen.
|
|
|
06/06/2008, 17:08
|
#7
|
elite*gold: 0
Join Date: Nov 2007
Posts: 439
Received Thanks: 75
|
geht nicht... habe schon alles mögliche probiert
|
|
|
06/06/2008, 18:19
|
#8
|
elite*gold: 0
Join Date: Jan 2007
Posts: 1,753
Received Thanks: 443
|
das war jetzt nicht auf des hex bezogen 
T-search/Cheat-engine/ollydbg haben alle hex search
das haupt problem ist halt das sich die adressen bei jedem mapwechsel ändern -.- und wir leider nicht den pointer finden der uns sagt wo die adresse sich nun nach dem laden befindet
|
|
|
06/09/2008, 18:13
|
#9
|
elite*gold: 0
Join Date: Nov 2007
Posts: 439
Received Thanks: 75
|
Helft uns bitte
|
|
|
06/09/2008, 18:43
|
#10
|
elite*gold: 46
Join Date: Mar 2006
Posts: 2,589
Received Thanks: 1,198
|
Wenn der Pointer stimmt sollte es auch bei Map wechsel klappen.
Zu Pointern , die einfachste Methode ist natürlich es mit CheatEngine zu machen (Undetected Cheat Engine), dazu sucht ihr die Addresse und guckt wohin die Addresse schreibt ( what writes this address to ) , dort werdet ihr ein ASM snippet (merkt euch diesen , am besten aufschreiben) sehen und in Rot your Address is probaly (HEXADDRESS) , die sucht ihr dann als Hex im kompletten speicher.
Wenn ihr das habt , müsst ihr alle gefunden Addressen mit dem Offset Multiplizieren, das Offset ergibt sich aus dem ASM Snippet ... das was in den klammern steht hab gerade kein beispiel zur hand.
Ihr könntet auch mit OllyDBG dran , nur ist das schwerer, vllt das RAW Offset der Addresse finden und mit IDA Pro suchen, kann auch klappen.
|
|
|
06/09/2008, 20:06
|
#11
|
elite*gold: 15
Join Date: Nov 2005
Posts: 13,021
Received Thanks: 5,324
|
Mit welcher Adresse habt ihr den konkret Probleme?
Die Adresse für's Inventar ist zB fest.
Gw.exe+61375C
00A1375C
Und 1 für's offene Inventar und 0 für's geschlossene.
|
|
|
06/09/2008, 20:32
|
#12
|
elite*gold: 0
Join Date: Oct 2005
Posts: 2,487
Received Thanks: 215
|
Wie hast du die Adresse fürs Inventar herausgefunden?
|
|
|
06/09/2008, 21:28
|
#13
|
elite*gold: 0
Join Date: Nov 2007
Posts: 439
Received Thanks: 75
|
Adroxxx
Die Adresse rauszufinden ist ja kein problem, wir hatten schon mehrer gefunden. (Inventar hatte ich auch schon). Ist aber nicht wirklich das Inventar deine Adresse, sonder für [L](Quests) und [I].
Du sagst ja, dass diese Adresse fest ist. Ok, schön und gut... Haben mehrere feste Adressen, die sich nach einem Neustart von GW.exe nicht ändern. Nur nach einem Update von Guild Wars (z.B. BalanceUpdate) verändern sich die Werte wieder.
Unser Problem besteht darin, dass sie sich nach einem solchen Update ändern und wir sie noch einmal suchen müssen.
Unser anderes Problem ist, dass das z.B. Leben auf keine eindeutige Adresse weist. (Haben schon alles mögliche ausprobiert. Entwickler von G15 GW Applets gefragt, usw. ...)
Das was Syntex gesagt hat, haben wir mehrere Male probiert. Es gibt keine eindeutige Adresse!. Ich denke, dass sie immer aus irgendeiner anderen Adresse berechnet wird. (KA welche)
Quote:
|
Wie hast du die Adresse fürs Inventar herausgefunden?
|
Geht relativ einfach mit CE, einfach mal nach 4bytes typen suchen also (offen=1, zu =0) Paar mal suchen und da sind dann nicht mehr viele Adressen.
|
|
|
06/09/2008, 22:26
|
#14
|
elite*gold: 15
Join Date: Nov 2005
Posts: 13,021
Received Thanks: 5,324
|
Gut, also mit bei dem Problem mit den Updates kannst du nichts machen. Das ist einfach so.
Deswegen funktionieren viele Bots & Hacks ( mein jetzt nicht die AutoIt sachen) nach einem Spieleupdate nicht mehr.
Wobei die einfache Suche nach den Adressen ist dann nur nebensache. Wenn man so einen fertigen Bot hat muss man nur die Adressen ändern.
Aber das Problem mit dem Leben kann ich jetzt nachvoll ziehen. Habe zwar die Adresse die wohl kein Pointer ist, aber die sich immer nach Gebietwechsel & restart des Games ändert.
Ich werd mal bissl mehr disassemblen und mal schauen was dabei rauskommt.
btw: Ein Pointer kann auch auf einen anderen Pointer zeigen. Pointer to Pointer. Dann musst du aus den einzelnen Pointern die Adresse berechnen. Ich glaub das ist die vorletze Übung beim CheatEngine Tutorial.
|
|
|
06/10/2008, 18:13
|
#15
|
elite*gold: 15
Join Date: Nov 2005
Posts: 13,021
Received Thanks: 5,324
|
So hab mich mal ne längere Zeit drangesetzt und komm trotzdem nicht weiter :P
Also bei den HP als Beispiel finde ich 2 Adressen, die eine beinhaltet die Max-HP, wird wohl zur Berechnung vom Sterbemalus etc gebraucht und einmal die Aktuellen HP.
Hab mal im Olly einen BP drauf gesetzt, was aber nicht sehr viel geholfen hat. Ich habe dann zwar eine Adresse ausrechnen können nur nicht mehr testen, weil sich die Adresse der HP im laufenden Spiel geändert hat.
In CE waren die Adressen die das Leben beinhaltet hatten plötzlich leer.
Also die Adressen sind nicht über Pointer gemacht. Es findet eine berechnung statt. Ich werd später nochmal etwas probieren. Kann sein das die Adresse inerhalb einer DLL region ausgerechnet wird, dann bräuchte man die DLL Base Adress und könnte damit das offset ausrechnen, was man zur bestimmung der adresse braucht.
Aber ist keine leichte arbeit... die Programmierer von GW haben es uns nicht leicht gemacht ^^,
|
|
|
 |
|
Similar Threads
|
[TUT] Video How to hack with CE und Pointer+Pointer mit SKill-Lvl und Kingdom-Hack
10/25/2010 - 4Story Hacks, Bots, Cheats & Exploits - 135 Replies
Also ich habe auch mal ein How to do Video gemacht. Wie man mit Cheat Engine und einem Pointer hackt da es viele Leute immer noch nicht wissen. Den 3. Teil kann man sich ja bestimmt denken, wenn nicht der 3. Teil kommt am Dienstag denke ich mal weil ich heute in Urlaub fahre. Solange müsstet ihr euch dann noch gedulden. Unten steht der Link für Cheat Engine, der Link von Superx321 Skill Liste für den Skill-Hack und der Bypass von St0rmBl4de.
Also:
How to do Video 1. Teil:
YouTube - How to...
|
Pointer
06/05/2010 - AutoIt - 2 Replies
Hi ich wollte mal fragen wie ich in Autoit z.B. die Adresse aus CE schreibe.
.exe+adresse
so bin ich zu keinem ergebnis gekommen
$PID = WinGetProcess($process)
$adresse = $PID + $adresse1
|
Frage: Wie findet man zB UG Pointer?Speed pointer?
03/30/2010 - Kal Online - 2 Replies
kann mir einer sagen wie man UG/Speed pointer finden kann usw^^´ß#
|
pointer bei CE
07/02/2008 - Metin2 - 1 Replies
wenn einer weiß wie ich mit Cheat Engine den Pointer einer Addy bekomme
außer über scan pointer(kackt metin ab)
denn kann ich euch nen schicken hack machen
pls jemand der weis wie man pointer von einem value sucht
|
All times are GMT +1. The time now is 08:06.
|
|