[C++] Pointer auslesen und darauf reagieren?

03/13/2011 12:25 R2-D2#1
Hi Community,

ich wollte mal fragen, wie man in C++ einen Pointer auslesen kann und darauf reagieren kann.

Ich nehme mal als Beispiel das Spiel NosTale.

Dort habe ich den HP - Pointer herausgefunden und möchte nun etwas machen, wenn die HP z.B. unter 50 ist.

Wie stelle ich das an ?


lg
03/13/2011 12:45 xNopex#2
Code:
DWORD dwPointer = 0xABCDEF;
type value = *(type*)(dwPointer);
Siehe auch:
[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...]
03/13/2011 13:00 R2-D2#3
Hi,

okay könnteste mir aber mal erklären, was folgende Zeile macht ?

type value = *(type*)(dwPointer);

lg
03/13/2011 13:06 mydoom#4
Quote:
type value = *(type*)(dwPointer);
Die Variable dwPointer vom Typ DWORD wird in einen "type"-Zeiger umgewandelt und dann wird durch Dereferenzierung auf den Wert des Zeigers zugegriffen (Dafür ist der Stern, der ganz links steht). Das ist allerdings nur Pseudocode.
03/13/2011 13:09 R2-D2#5
ahh also muss ich type in int oder so umwandeln ?
03/13/2011 14:05 MrSm!th#6
probier mal, die sprache zu lernen, sollte helfen
03/13/2011 14:10 R2-D2#7
sorry ich hab noch nicht viel mit pointern zu tun gehabt.

kann mir das mal bitte jmd. erklären?
03/13/2011 14:32 xNopex#8
Quote:
Originally Posted by xNopex View Post
Siehe auch:
[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...]
:rtfm:
03/13/2011 15:13 R2-D2#9
ja kann mr das grad net ma einer eklären wie ich es genau bei meinem problem einsetze und für was das type steht?
03/13/2011 15:51 xNopex#10
Herausfinden, wie die HP gespeichert wird (als Ganzzahlwert, kommazahl, etc.). Dann den Datentyp festlegen. Das ist btw. mit "type" gemeint. Danach ganz einfach mit den Zeigern arbeiten. Wie das geht erfährst du in den Links, die ich dir in den beiden Posts weiter oben geschickt habe.

#Vote4Close
03/13/2011 15:51 GLemon#11
Ich gehe davon aus das es sich nicht um eine DLL handelt.

ReadProcessMemory(OpenProc,(LPVOID)Adresse,&value, sizeof(value),0);
ReadProcessMemory(OpenProc,(LPVOID)(value+Offset), &value,sizeof(value),0);

OpenProc = Musst den Prozess öffnen siehe dazu OpenProcess Befehl,
schau einfach unter der msdn vorbei.