Muss ja auch nicht immer edi sein wenn du dann nach eax suchst also 09229a20, und 1 Adresse findest die diesen Wert hat, einfach mal hinzufügen und dann als pointer mit dem offset 10. Wenn du dann den wert nachdem du gesucht hast als value siehst, weißt du das du den richtigen pointer hast.
Dann musst du aber nochmal einen Breakpoint setzten, also find out what... dann siehst du ob noch ein offset hinzugefügt wird.
Gibt ja auch Multipointer also pointer zu pointer Ist mitunter recht lustig die zu finden, weil man über mehrere offsets gehen muss ^^.
Gibt ja auch Multipointer also pointer zu pointer Ist mitunter recht lustig die zu finden, weil man über mehrere offsets gehen muss ^^.
Unter Vista ist es dieses Tut nicht für Anfänger zu empfehlen...
Weil genau das Problem mit mehreren Offsets am Anfang ziemlich verwirrt... Man weiß überhaupt ned mehr, welcher Offset zu was gehört. xD
€: Könntest du vielleicht mal ein Tut machen, wo das erklärt wird, wie man über mehrere Offpoints das Value verändert? Und am besten auch noch in AutoIT. xD
Ich hab schon gegoogelt aber da find ich nix. =/
#RequireAdmin ; Wird evtl. bei Vista benötigt
#include <Pointer.au3> ; siehe Anhang (enthält __MemoryGetBaseAddress)
$PID = ProcessExists("Prozess.exe") ; Prozessname, der z.B im Taskmanager angezeigt wird.
$MemOpen = _MemoryOpen($PID) ; Memory wird geöffnet
Global $Offset[3] ; Array des Offsets vom Pointer
$Offset[0] = 0 ; Ist nicht von bedeutung, einfach bei 0 lassen.
$Offset[1] = Dec("5F8") ; Static Addr Oset.
$Offset[2] = Dec("188")
$StaticOffset = Dec("00229E84") ; Das statische Offset (Prozess.exe+???????)
$BaseAddr = _MemoryGetBaseAddress($MemOpen, 1) ; Um die BaseAddresse herauszufinden (Funktion im Anhang
$Addr = "0x" & Hex($baseADDR + $StaticOffset) ; Finale Addresse die für MemoryPointerRead/Write verwendet wird
$Value = _MemoryPointerRead($Addr, $MemOpen, $Offset) ; Liest den Wert aus
MsgBox(0,"Test",$Value[0]) ; $Value[0] gibt den Wert zurück.
Quelle: *************
ich persönlich habe dieses tutorial auch als einstieg genommen.
habe das dann auch mit autoIT umgesetzt und das kam dann dabei raus.
habs eben auch geuploaded.
testet es aber mal auf viren. kp ob mein rechner zZ welche hat. neben dem fertigen hack ist auch eine .au3 dabei. da könnt ihr dann nachschauen. der hack funktioniert nur für WinXp nutzer.
Unter Vista ist es dieses Tut nicht für Anfänger zu empfehlen...
Weil genau das Problem mit mehreren Offsets am Anfang ziemlich verwirrt... Man weiß überhaupt ned mehr, welcher Offset zu was gehört. xD
€: Könntest du vielleicht mal ein Tut machen, wo das erklärt wird, wie man über mehrere Offpoints das Value verändert? Und am besten auch noch in AutoIT. xD
Ich hab schon gegoogelt aber da find ich nix. =/
Wieso sollte es für Vista user nicht zu empfehlen sein? Musst CE nur mit Admin rechten ausführen. Und wieso dich die Offsets verwirren weiß ich nicht. Kannst dir doch ganz einfach aufschreiben.
z.B. ist deine Adresse 0x123456. Aber das ist ein Pointer. Du machst also einen Breakpoint in CE und siehst im Debuggerfenster, wie im Tutorial beschrieben z.B.
PHP Code:
mov eax, [edx + 12]
Dann schreibste dir den Offset 12 auf. Schaust welchen wert edx hat ( meist eine adresse ) und suchst dannach in Hex. Sagen wir edx hat den Wert 0x234567 als inhalt.
Dann suchste im Hex modus nach 23456. Und sagen wir mal du findest eine Adresse = 0x345678 .
Dann weißt du 0x345678 + 12 = dein Pointer.
Falls 345678 nicht die basis ist, machst du nochmal einen breakpoint.
Dann steht da z.B. mov ebx, [eax + 33]
Dann machste einfach alles nochmal. Gucken welchen Wert eax hat, dannach suchen im Hex Modus usw.
Wenn du dann deine Adresse gefunden hast, ist der Pointer 0x456789 + 33 + 12
In C++ müsstest du dann erstmal die Basis adersse auslesen also 0x456789 . Weil der Inhalt dieser Adresse, zusammen mit dem offset die nächste adresse ergibt.
Normalerweise ist der Inhalt von einer Adresse ein Wert. z.B. dein Leben. Bei den Pointern ist es aber eine Adresse.
Also liest du 0x456789 aus und schreibst es in die variable base.
iAdresse = base + offset.
Damit sagst du , die neue Adresse ist der inhalt der basisadresse + den offset und schreibst diese adresse in iAdresse.
Dann liest du iAdresse aus und schreibst es in eine neue variable, rechnest den zweiten offset hinzu usw.
Ein Tutorial dazu mach ich nicht, weil das eigentlich wenn du Pointer wirklich verstanden hast, ersichtlich sein sollte.
Und AutoIt Tutorials mache ich sowieso nicht, weil ich diese negative AutoIt möchtegern Programmierer entwicklung nicht unterstütze.
Du zeigt gerad deine überragende Intelligenz.
Ist doch egal ob es Solitär ist. Es geht hier um die Grundlagen von 1. CheatEngine 2. Pointern und 3. Hacks in C++ Programmieren.
Wo ist der Unterschied ob du jetzt in Solitär nach den Punkten suchst und einen Hack machst oder ob du in GTA oder Metin nach deinem Leben suchst und einen Hack programmierst?
Von den Grundlagen her ist das alles gleich. Solitär habe ich genommen, weil es jeder auf dem PC hat und ganz einfach selbst etwas mit CheatEngine rumspielen kann.
Also überleg doch bitte was du schreibst, wenn du das nächste mal einen Post machst..
Erklär das bitte näher. So versteh ich leider nicht was du meinst.
Wie gesagt das mov eax,[edi+30] ist ein beispiel. Es kann auch mov ebx, [eax+1337] da stehen.
Normalerweise sucht der weiter nach 15, obwohl der Wert dann schon 16 ist.
Aber wenn du weißt das sich der wert immer weiter erhöht, kannst du ja nach increasing value suchen.