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.
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.
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