[C++] Odczytanie wartości zmiennej po adresie

Witam.

Mam pytanie, jak odczytać wartość zmiennej znając jej adres.

Przykład zmienna ma adres 002FF00 i chcę odczytać jej wartość.

Dodam że jest to zmienna innego programu.

Z góry dzięki.

http://msdn.microsoft.com/en-us/library … 85%29.aspx

Musisz znać typ zmiennej, jaki chcesz odczytać. Przykład dla integer:

int *adr;

adr = 0x002FF00;

int value = *x;

Pablo_Wawa , czytanie ze zrozumieniem się kłania: - “Dodam że jest to zmienna innego programu.”

@[alex]

A mógłbyś mi to trochę jaśniej wytłumaczyć ?

Bo u mnie z angielskim za dobrze nie jest.

Mógłbyś jakiś przykład podać ?

int *adr=&FAFA3; /przypisanie zmiennej wskażnikowej adresu FAFA3

int wartość=&adr; /odczyt wartości;

Uppersand,ta “&” jest właśnie do odczytu zmiennej z pod adresu.

Poczytaj o wskażnikach w C,zmienne to nic innego jak adresy w pamięci

Tu masz co nieco po polsku

http://www.antylameriada.net/pwskazniki/

W pamięci komputera dane przechowywane są jako tablice ze zbiorami wartości,zmienne są umieszczane pod wydzielonymi adresami.

Johny , przeczytaj uważnie pytanie i przejrzyj podane odpowiedzi zanim coś napiszesz.

kamill1122 , jeżeli nie potrafisz zrozumieć z samej definicji jak tego używać to znaczy że nie od tego zaczynasz naukę.

#include 

#include 


int main()

{

	DWORD pid;

	std::cout << "Podaj PID: ";

	std::cin >> pid;

	HANDLE hProcess = OpenProcess(PROCESS_VM_READ, FALSE, pid);

	if(!hProcess)

	{

		std::cerr << "Nie udalo sie otworzyc procesu. Blad " << GetLastError() << std::endl;

		return 1;

	}

	int x;

	SIZE_T sx;

	if(!ReadProcessMemory(hProcess, (void*)0x0002FF00, (void*)&x, sizeof x, &sx))

		std::cerr << "Nie udalo sie odczytac pamieci procesu. Blad " << GetLastError() << std::endl;

	else if(sx < sizeof x)

		std::cerr << "Nie udalo sie odczytac calosci danych." << std::endl;

	else

		std::cout << "Odczytana wartosc: " << x << std::endl;

	CloseHandle(hProcess);

	return 0;

}

No może faktycznie trochę muszę jeszcze się douczyć.

I tutaj moja prośba:

Polećcie jakąś dobrą książkę o WinApi.

Rolek , próbowałem Twój kod, ale nie chce mi procesu otworzyć. Wywala błąd 27.

EDIT:

Rolek , dzięki kod działa, ale sprawdzałem na windows 8, a tam nie działa, na windows 7 jest ok.

Dzięki

Najlepsza książka po WinAPI to msdn