Pointer sind fürs Gamehacking natürlich sehr wichtig. Dabei wäre als Erklärung aber eher ein Beispiel geeignet, wie man in LC die Adresse zu einem bestimmten Wert sucht und dazu dann den Pointer findet, und wie man sich diesen Pointer vorstellen kann.
Dein Tutorial basiert halt eher auf der Syntax von C++ und den meisten, die einfach nur mit Cheat Engine ein paar Pointer finden wollen und nicht direkt einen eigenen Trainer programmieren, wird das wohl nicht sehr helfen
Ich hätte da eher eine Art Pseudo-ASM genommen, wie es auch in CE neben den Offsets angezeigt wird.
Also [] bezeichnet immer den Wert, der in der Adresse zwischen den Klammern steht, z.B.
[[[[_pNetwork] + 0x1C] + 0x10] + 0x4] + 0xDE4] = RunSpeed
Außerdem fehlt eine Erklärung, wozu die Pointer und Offsets überhaupt verwendet werden. Einen Speicherwert verändern kann man auch, ohne erst den Pointer dazu zu finden, aber die Adresse ändert sich halt bei jedem Spielstart, wohingegen die Pointer mindestens bis zum nächsten Patch konstant bleiben.
Ein kurzer Hinweis zum hexadezimalen Zahlenystem wäre auch noch sinnvoll, da sicher nicht jedem klar ist, dass das im Prinzip nur Zahlen sind, mit denen man auch rechnen kann, obwohl Buchstaben darin vorkommen.
Dass jeder, der Hallo World programmieren kann, sowieso weiß, was Pointer sind, ist auch definitiv falsch. In den meisten verbreiteten modernen Sprachen ist das manuelle Behandeln von Pointern entweder gar nicht möglich (z.B. Java) oder zumindest nicht vorgesehen (z.B. in C#, wo es nur ausnahmsweise angewendet wird als sog. unsafe code) und nicht jeder Programmierer verwendet Sprachen wie C++, wobei diese natürlich auch ihre Daseinsberechtigung haben.
Vom Programmieren abgesehen, ist das Verständnis von Pointern für die meisten Leute, die CE benutzen wohl das Nr.1 Hindernis, zumindest was die Grundlagen anbelangt, bevor man irgendwas mit Code Injection, Structures usw. anfängt, die aber ohne Pointer sowieso nicht möglich wären.
|