Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

?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-вое (как это сделать, мне неизвестно), то ....


Наверх

Титульная страница Поиск, карта сайта Написать письмо