RPM Class Zugriffsverletzung

01/29/2015 22:14 bloodx#1
Hey Hou, ich habe mich die letzten Tage mit D3D im External Bereich beschäftigt da ich das ganz interssant fand.

Soweit klappt auch alles, aber ich habe eine Sache die mich verwundert.

Wenn ich ->

PHP Code:
class CObject
{
public:
    
char _0x0000[464];
    
Vector3 Position//0x01D0 
    
char _0x01DC[372];
    
DWORD64 NextObject//0x0350 
    
char _0x0358[116];
    
char Name[24]; //0x03CC 
    
char _0x03E4[284];
    
DWORD64 Type//0x0500 
    
char _0x0508[3624];
    
Vector3 ItemPosition//0x1330
};
CObjectPlayer;
ReadProcessMemory(rHandle, (void*)(gPointers.pMyPlayer), &cPlayersizeof(CObject), NULL); 
Ich lese ja mit RPM den Inhalt des Pointers in die Class ->

so wenn ich die Class aber verwenden will z.b ich greife auf die Position zu
cPlayer->Position

dann gibts ne Zugriffsverletzung
Code:
0xC0000005: Zugriffsverletzung beim Lesen an Position
Wenn ich kein Pointer Object erstelle klappt es.

Hat es einen bestimmten Grund ?

Habe leider bisher immer intern gearbeitet mit Dll's und nie Extern d.h habe ich so ein Problem noch nie gehabt.
01/30/2015 00:45 Dr. Coxxy#2
wie wärs wenn du C++ ordentlich lernen würdest?
01/30/2015 02:39 bloodx#3
Quote:
Originally Posted by Dr. Coxxy View Post
wie wärs wenn du C++ ordentlich lernen würdest?
:'D, danke für den Tipp :D


Problem hab ich gelöst :handsdown: :)
01/30/2015 08:17 MrSm!th#4
Ist doch logisch, dass der Pointer auf etwas zeigt, das im Adressraum des Zielprozesses liegt, du aber in deinem Adressraum darauf zugreifen willst. Genau aus dem Grund liest du doch dein Objekt erst per RPM aus; du kannst nicht direkt auf den Speicher eines anderen Prozesses zugreifen.

So ein paar Kenntnisse über das Prozess- und Speichermanagement könnten nicht schaden.