![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
WriteProcessMemory [D7, WinXP]
evvcom © (2004-02-06 03:14:00)Здравствуйте уважаемые Мастера.
Мне требуется перехватить API-вызов. Все сделал как в букваре Рихтера, отыскал DWORD, который надо поменять, но WriteProcessMemory возвращает False. GetLastError после этого возвращает $3e6 (Неверная попытка доступа к адресу памяти).
Попробовал писать в локальную переменную функцией WriteProcessMemory - все проходит Ок, т.е. нигде, ничего с адресами не напутал. Естественно правильность адресов также отслеживал через окно отладчика CPU.
Я тут встретил один ответ, в котором что-то предположилось о XP и правах пользователя. Отлаживаю как раз на XP, но с правами админа.
Digitman (2004-02-07 12:04:00) [1]
> evvcom (06.02.04 19:07) [2]
и зря смутило.
если даже вызовом VirtualAlloc[Ex] был аллокирован регион из более чем одной страницы, то ничто не мешает вызовом VirtualProtect[Ex] изменить атрибуты доступа произвольного блока смежных страниц в этом регионе
evvcom (2004-02-06 19:07:00) [2]Да, спасибо, помогло.
Я уже натыкался на эту функцию, но меня смутило:
All pages in the specified region must have been allocated in a single call to the VirtualAlloc or VirtualAllocEx function.
Digitman (2004-02-06 08:38:00) [3]см. VirtualProtectEx()