![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
?readprocessmemory? [D4, D5, D6, D7, Win95/98]
Donatas © (2003-01-22 20:54:00)нужно прочитать из памяти немного информации,подправить ее - и записать назад...
решил воспользовать сабжем(правильно?)
ReadProcessMemory(
HANDLE hProcess,// handle of the process whose memory is read
LPCVOID lpBaseAddress, // address to start reading
LPVOID lpBuffer, // address of buffer to place read data
DWORD nSize, // number of bytes to read
LPDWORD lpNumberOfBytesRead// address of number of bytes read
);
-----------
дык вот,то,что мне нужно - это длл,хэндл надо искать для экзешника? или для длл?как вообще hprocess узнать? кроме как сделать createprocess???
для примера скажем имеем:
123.exe
234.dll
$01d3dff3 - адрес,откуда читаем(туда-же и пишем потом)
-------------
пробывал скриейтить процесс 123.ехе и потом патчить адрес - не вышло =( хотя софтайсом - на ура =)
что подправить(кроме рук)??
Digitman (2003-01-27 15:19:00) [1]
> Donatas
"Свой" процесс - см. GetCurrentProcess() (возвращает хэндл тек.процесса)
"Чужой" процесс - см. OpenProcess() (попытка получения хэндла произв.процесса)
Хэндл DLL и хэндл процесса - две разные разницы)
Ф-ции Read/WriteProcessMemory() требуют именно хэндл процесса.
Максимилиано (2003-01-27 14:54:00) [2]Псевдо-описатель процесса: GetCurrentProcess()
если писать в свой же процесс, то нужно прежварительно изменить аттрибуты страниц памяти с PAGE_READONLY на PAGE_READWRITE с помощью VirtualProtectEx()
софтайсу вообще все можно, хотя если свою прогу перекинуть с 3-го кольца на 0-вое (как это сделать, мне неизвестно), то ....