Ĺadny brzuch
Nie wiem jak się używa tej funkcji, mam jej opis, ale nie wiem co podać w drugim i trzecim argumencie:
----------------------------------------------------------------------------------------------------- -----------------------------
BOOL ReadProcessMemory( HANDLE hProcess, LPCVOID lpBaseAddress, LPVOID lpBuffer, SIZE_T nSize, SIZE_T* lpNumberOfBytesRead );
Funkcja ReadProcessMemory umożliwia odczyt pamięci innego procesu.
Parametry:
[in] hProcess
Uchwyt procesu, którego pamięć ma być odczytana. Uchwyt musi mieć ustawione prawo PROCESS_VM_READ aby operacja odczytu się powiodła.
[in] lpBaseAddress
Wskaźnik będący adresem bazowym obszaru pamięci, z którego ma nastąpić odczyt. Zanim nastąpi odczyt, system sprawdza czy są ustawione odpowiednie prawa umożliwiające dostęp do pamięci drugiego procesu. Jeśli takich praw nie ma, funkcja nie wykonuje odczytu i zwraca 0.
[out] lpBuffer
Wskaźnik do bufora, do którego zostanie odczytana pamięć.
[in] nSize
Ilość bajtów do odczytania (rozmiar bufora).
[out] lpNumberOfBytesRead
Ilość odczytanych bajtów.
----------------------------------------------------------------------------------------------------- ---------------------------------
Jeśli lpBaseAddress jest adresem pamięci to powinno być chyba int, a nie const void. Jeśli wiecie co podać w tym argumencie,
proszę o pomoc.
Jeśli lpBaseAddress jest adresem pamięci to powinno być chyba int, a nie const void Podajesz wskaźnik na void'a, ale możesz dać &base, przy czym int base; :)
Ale jak dać wskaźnik do voida jak void nic nie zwraca?
Ale jak dać wskaźnik do voida jak void nic nie zwraca? Podajesz w sensie powinieneś podać - tego wymaga funkcja, ja dałem &base czyli wskaźnik na inta i działa ;) Sam void nie, ale przecież wiesz, że to ma być liczba całkowita, nie? :)
Wielkie Dzięki :D. Działa, ale nie do końca :/. Pisze macro do tibi i wszystko działa, znajduje okno tibi, id procesu i otwiera proces, ale kiedy program chce czytać z pamięci procesu, nic sie nie dzieje, jakby program się zawiesił, ale kursor miga.
I nie wiem czego to wina, czy zły adres czy coś źle napisałem.
Użytkownik mientos edytował ten post 12 lipiec 2007, 13:17
A reszta kodu? Masz OpenProcess()?, właściwy proces ??
Sory, wszystko działa :D WIELKI DZIEX ;]. Program się zapętlał i to dlatego.
zanotowane.pl doc.pisz.pl pdf.pisz.pl zsf.htw.pl
----------------------------------------------------------------------------------------------------- -----------------------------
BOOL ReadProcessMemory( HANDLE hProcess, LPCVOID lpBaseAddress, LPVOID lpBuffer, SIZE_T nSize, SIZE_T* lpNumberOfBytesRead );
Funkcja ReadProcessMemory umożliwia odczyt pamięci innego procesu.
Parametry:
[in] hProcess
Uchwyt procesu, którego pamięć ma być odczytana. Uchwyt musi mieć ustawione prawo PROCESS_VM_READ aby operacja odczytu się powiodła.
[in] lpBaseAddress
Wskaźnik będący adresem bazowym obszaru pamięci, z którego ma nastąpić odczyt. Zanim nastąpi odczyt, system sprawdza czy są ustawione odpowiednie prawa umożliwiające dostęp do pamięci drugiego procesu. Jeśli takich praw nie ma, funkcja nie wykonuje odczytu i zwraca 0.
[out] lpBuffer
Wskaźnik do bufora, do którego zostanie odczytana pamięć.
[in] nSize
Ilość bajtów do odczytania (rozmiar bufora).
[out] lpNumberOfBytesRead
Ilość odczytanych bajtów.
----------------------------------------------------------------------------------------------------- ---------------------------------
Jeśli lpBaseAddress jest adresem pamięci to powinno być chyba int, a nie const void. Jeśli wiecie co podać w tym argumencie,
proszę o pomoc.
Jeśli lpBaseAddress jest adresem pamięci to powinno być chyba int, a nie const void Podajesz wskaźnik na void'a, ale możesz dać &base, przy czym int base; :)
Ale jak dać wskaźnik do voida jak void nic nie zwraca?
Ale jak dać wskaźnik do voida jak void nic nie zwraca? Podajesz w sensie powinieneś podać - tego wymaga funkcja, ja dałem &base czyli wskaźnik na inta i działa ;) Sam void nie, ale przecież wiesz, że to ma być liczba całkowita, nie? :)
Wielkie Dzięki :D. Działa, ale nie do końca :/. Pisze macro do tibi i wszystko działa, znajduje okno tibi, id procesu i otwiera proces, ale kiedy program chce czytać z pamięci procesu, nic sie nie dzieje, jakby program się zawiesił, ale kursor miga.
I nie wiem czego to wina, czy zły adres czy coś źle napisałem.
Użytkownik mientos edytował ten post 12 lipiec 2007, 13:17
A reszta kodu? Masz OpenProcess()?, właściwy proces ??
Sory, wszystko działa :D WIELKI DZIEX ;]. Program się zapętlał i to dlatego.