ReadProcessMemory error 299

07/21/2008 13:26 Term!nX#1
Hi,

Kriege hier immer error 299 ("Only part of a ReadProcessMemory or WriteProcessMemory request was completed."). Keine Ahnung wo dran es liegen könnte eigentlich alles richtig. WinXP 32 Prof., kein Vista..

Code:
    //Speil ist hier Guild Wars

    unsigned ebx1 = 0x00002C;
    
    ph = OpenProcess(PROCESS_VM_READ, false, pid);
    if (ph == NULL)    
    {
           cerr << "ph nicht erstellt";
           Sleep(2000);
           exit(1);
    }
    
    int ecx;
    int eax;

    bool success;
    
    success = ReadProcessMemory(ph, (LPCVOID)ebx1, &ecx, sizeof(int), &rw);
    
    if (!success)
    {
                 DWORD error;
                 error = GetLastError();
                 cerr << "nFehler beim lesen. CODE1: " << error;
                 cerr << "n Bytes read: " << rw;
                 Sleep(2000);
    }
Handles sind alle in Ordnung, weil andere MemReads mit dem selben Handle arbeiten und funktionieren. Number of Bytes read ist 0.

Grüße
07/21/2008 14:38 Atheuz#2
Quote:
Originally Posted by Term!nX View Post
Hi,

Kriege hier immer error 299 ("Only part of a ReadProcessMemory or WriteProcessMemory request was completed."). Keine Ahnung wo dran es liegen könnte eigentlich alles richtig. WinXP 32 Prof., kein Vista..

Code:
    //Speil ist hier Guild Wars

    unsigned ebx1 = 0x00002C;
    
    ph = OpenProcess(PROCESS_VM_READ, false, pid);
    if (ph == NULL)    
    {
           cerr << "ph nicht erstellt";
           Sleep(2000);
           exit(1);
    }
    
    int ecx;
    int eax;

    bool success;
    
    success = ReadProcessMemory(ph, (LPCVOID)ebx1, &ecx, sizeof(int), &rw);
    
    if (!success)
    {
                 DWORD error;
                 error = GetLastError();
                 cerr << "nFehler beim lesen. CODE1: " << error;
                 cerr << "n Bytes read: " << rw;
                 Sleep(2000);
    }
Handles sind alle in Ordnung, weil andere MemReads mit dem selben Handle arbeiten und funktionieren. Number of Bytes read ist 0.

Grüße
Willst du einen Pointer auslesen?
07/21/2008 14:52 Term!nX#3
Denk schon, habe halt an 0x00002C und anderen Stellen eine statische Füllung. Von da aus möchte ich mich dann zum gewünschten Wert weiterrechnen, aber die anderen Reads habe ich jetzt nicht mitgepostet, da sie eh funktionieren. Funktionieren soweit man das sagen kann, da sie ja auf den falschen Wert von 0x00002C basieren.