DMA in C++ umgehen

03/25/2009 13:11 Pat Garrett#31
Jap, die Punkte. Welchen Pointer kriegst du denn heraus?
Hast bei Cheatengine auch eingegeben bei Adress of Pointer "sol.exe+0007170" und nicht nur die Adresse? Und kein 0x vor der Adresse!
03/25/2009 13:13 Adroxxx#32
gar keinen. hab nicht danach gesucht. :P abre wenn ich des so eintrage kommt da nix verwertbares raus.
03/25/2009 13:17 Pat Garrett#33
Sehr seltsam... Welches OS hast du denn? Könnte vll. daran liegen. Hab es aber wie gesagt an 2 verschiedenen Rechnern ausprobiert, ein XP Home und ein 2000 Prof, bei beiden kam der gleiche Pointer heraus.
03/25/2009 13:17 Adroxxx#34
XP pro
03/25/2009 13:19 Pat Garrett#35
Probier doch bitte mal kurz aus, welchen Pointer du herauskriegst. Das würde mir sicher extrem weiterhelfen.
03/25/2009 13:26 Adroxxx#36
Das ist aber das normale solitär, nicht spider solitär oder?
03/25/2009 13:32 Pat Garrett#37
Jo, das normale Solitär.
03/25/2009 13:39 Adroxxx#38
Quote:
Originally Posted by Pat Garrett View Post
Jap, die Punkte. Welchen Pointer kriegst du denn heraus?
Hast bei Cheatengine auch eingegeben bei Adress of Pointer "sol.exe+0007170" und nicht nur die Adresse? Und kein 0x vor der Adresse!
nc zu dir.
nein habe ich nicht, weiß du es ja auch nicht gesagt hast. Wie ließt du denn bitte in C++ jetzt die erste Adresse aus? Weil genau das wird dein Fehler sein das sol.exe+7170
03/25/2009 13:44 Pat Garrett#39
Naja ganz normal halt. :S

Code:
unsigned adress1 = 0x007170
...
ReadProcessMemory(ProcessHandle,(LPVOID)adress1,&adress2,sizeof(unsigned int),NULL);
Geht das so etwa nicht? Ich dachte jetzt nicht, dass mich das sol.exe jucken soll, da es doch eigentlich klar ist, dass ich die Adressen aus sol.exe auslese, oder?
03/25/2009 13:53 Adroxxx#40
wenn ich 7170 eingebe, meckerst du mich an, ich soll sol.exe+7170 eingeben, aber wieso machst du dass nicht selbst?

Du solltest dir vielleicht nochmal ein paar CE Tutorials antun :) du musst den basepointer finden.
das sol.exe+adresse heißt nicht das du dir die adresse aus der sol.exe holst.

Hier der basepointer + offset:

0x01007170
+30

Damit sollte es auch klappen ;)
03/25/2009 13:56 Pat Garrett#41
Hab dich doch nicht angemeckert, wollte nur helfen die richtige Eingabe zu machen. :P

Naja hab mir bis jetzt nur das CE Tutorial von hier angeschaut, da stand nichts von Basepointern. :O
Ich guck nochmal ein bischen rum und meld mich wenn's geht. Danke vorerst.

EDIT: Jaaaaaaap, es klappt. Bin nun auch selber nun drauf gekommen wie man sich den Base Pointer holt. Danke für die Hilfe nochmal!
03/25/2009 14:41 Adroxxx#42
PHP Code:
unsigned long address1 0x01007170;
    
unsigned long offset 0x30;
    
unsigned long address2 ;
    
int value ;

    
DWORD numBytesRead;
    
DWORD procID;
    
GetWindowThreadProcessId(hWnd,&procID);

    
HANDLE hProc OpenProcess(PROCESS_ALL_ACCESSFALSEprocID);

    
ReadProcessMemory(hProc, (LPCVOID)address1, &address2sizeof(long), &numBytesRead);
    
address2 address2+offset ;
    
ReadProcessMemory(hProc, (LPCVOID)address2, &valuesizeof(int), &numBytesRead);

    
    
    
CloseHandle(hProc); 
So sollte es klappen.

Write geht halt auch so.

pewpew hack im anhang xD