Problem z odczytywaniem danych z pamięci procesu

Odpowiedz Nowy wątek
2011-08-15 18:22
0

Witajcie. Znalazłem taką oto klasę:

class Mem{
    private:
        HANDLE h_mem;
 
    public:
        Mem(HWND h_hwnd);
        int rm(int addr, int* buf);
        int rm(int addr, std::string &buf, int size);
};
Mem::Mem(HWND h_hwnd)
{
    DWORD pid;
 
    GetWindowThreadProcessId(h_hwnd, &pid);
 
    h_mem = OpenProcess(PROCESS_ALL_ACCESS, false, pid);
}
int Mem::rm(int addr, int* buf)
{
    ReadProcessMemory(h_mem, (void*)addr, buf, 4, 0);
}
int Mem::rm(int addr, std::string &buf, int size)
{
    ReadProcessMemory(h_mem, (void*)addr, &buf, size, 0);
}

Jednak mam problem z odczytywaniem wartości nie liczbowej (czyli tekstu) z pamięci procesu. Jak przy pomocy tej klasy, mogę odczytać z procesu wartość tekstową? Z góry dziękuję za pomoc.

edytowany 2x, ostatnio: Alegres, 2011-08-15 18:23
Jesteś pewien, że w pamięci obcego procesu po tym adresem jest std::string? A nie np. winapowe LPCTSTR, które jest TCHAR, które jest z kolei najprawdopodobniej wchar_t? - Rev 2011-08-15 18:26

Pozostało 580 znaków

2011-08-15 18:42
0

Jestem tego pewien.

Pozostało 580 znaków

2011-08-16 19:28
gość
0

Jeżeli kompilujesz w visual studio 2010 to zmień parametr na std::wstring. We wczesniejszych wersjach kompilatorow rzeczywiscie byl uzywany string, natomiast w MSVS 2010 przeszli już w pełni na wstring

Pozostało 580 znaków

2011-08-17 13:41
0

Dziękuję za wszystkie rady. Udało mi się rozwiązać problem :)

Pozostało 580 znaków

Odpowiedz
Liczba odpowiedzi na stronę

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0