[C++/WINAPI] Podmapowanie pamieci z innego procesu do mojego

0

Cześć,
Mam takie pytanie, na które nie mogłem nigdzie znaleźć odpowiedzi, bardzo dużo szukałem, dlatego będe wdzięczny jeżeli mi ktoś pomoże.

Mając wskaźnik można przypisać do niego adres innej zmiennej tak:

Sposob nr. 1

int zmienna;
int* wskaznik;
wskaznik = &zmienna;

lub tak:

Sposob nr. 2

int zmienna; // przykładowo adres tej zmiennej to 0x1234
int* wskaznik;
wskaznik = (LPINT)0x1234

Chce użyć sposobu drugiego, aby zdefiniować wskaźnik do zmiennej z innego procesu znając jej adres.
Jednak nie udaje się.

Wiem o funkcji ReadProcessMemory jednak chciałbym abym mógł odczytywać wartość zmiennej innego procesu bez wywoływania za każdym razem owej funkcji.

Dlatego wskaźnik byłby najlepszym rozwiązaniem. Czy to w ogóle jest mozliwe?

Prosze o pomoc i z gory dziękuje.

Pozdrawiam.

0

wprost nie da sie. poczytaj o tematach:

  • separacja procesow
  • Wirtualna Przestrzen Adresowa
    to zrozumiesz co tak na prawde dobi ReadProcessMemory..

jedyna droga jaka jestes w stanie wykonac cos takiego, to przekonac system aby podmapowal do przestrzeni twojego procesu jakas strone pamieci z innego procesu. w mniejwiecej taki sposob dziala mechamizm SharedMemory --- ale tutaj on Ci raczej nie pomoze akurat. jesli Ci sie to uda, bedziesz mial dostepny 'u siebie' caly wycinek pamieci innego procesu, dostepny 'na zywo'. nie znam API od tego, system na pewno takie cos potrafi, ale mozliwe ze API po prostu nieistnieje :)

0

Generalnie takie gadzety leza w ntdll ja bym popatrzyl na NtMapViewOfSection.

0

mozliwe ze API po prostu nieistnieje :)

Istniec to istnieje, tyle ze jest "tajne" (czyli nieudokumentowane)

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