Форум: "WinAPI";
Текущий архив: 2002.11.28;
Скачать: [xml.tar.bz2];
ВнизWriteProcessMemory Найти похожие ветки
← →
Ihor Osov'yak (2002-10-16 16:54) [0]Здравствуте.
Имею проблемы с сабжем.
Сабж исползую для подмены апишных вызовов некого процесса методом патча (то есть переписывание адресов в таблице импорта). Работает нормально для всех модулей процесса, кроме mfc42.dll.
В двух словах о технике патча: внедрение своей длл в адресное постранство чужого процесса методом хука,
затем анализ таблиц импорта (динамически подгружаемые библиотеки меня пока не интересуют),
а далее патч через WriteProcessMemory. Прямое присвоение не проходит, несмотря на то, что находимся в адресном пространстве чужого процесса, наверное нужны определенные права доступа соотв. областям памяти процесса.
Чего всемогучий Аll посоветовать может?
Зы - getLastError после неудачного WriteProcessMemory возвращает 000003E6
← →
Digitman (2002-10-16 17:05) [1]{ Invalid access to memory location. }
ERROR_NOACCESS = 998;
Видимо, ты неверно (с неверными параметрами) вызываешь VirtualProtectEx()... если вообще вызываешь...
← →
Ihor Osov'yak (2002-10-16 17:16) [2]2 Digitman © (16.10.02 17:05)
Спасибо за совет. По неопытности не вызывал:
WriteProcessMemory(GetCurrentProcess,Func,@NewFunc,4,count);
Зы
Посмотрел в Msdn
BOOL VirtualProtectEx(
HANDLE hProcess, // handle to process
LPVOID lpAddress, // region of committed pages
SIZE_T dwSize, // size of region
DWORD flNewProtect, // desired access protection
PDWORD lpflOldProtect // old protection
);
...
lpAddress
[in] Pointer to the base address of the region of pages whose access protection attributes are to be changed.
All pages in the specified region must be within the same reserved region allocated when calling the VirtualAlloc or VirtualAllocEx function using MEM_RESERVE. The pages cannot span adjacent reserved regions that were allocated by separate calls to VirtualAlloc or VirtualAllocEx using MEM_RESERVE.
Не совсем понятно, что суда дать - базовый адресс длл соедет (те ее хендлер?)
← →
Digitman (2002-10-16 17:44) [3]сУда надо дать нач.адрес и размер области памяти в ВАП целевого процесса, которую ты собираешься модифицировать последующим вызовом WriteProcessMemory()
← →
Ihor Osov'yak (2002-10-16 18:06) [4]еще раз спасибо. Сорри за орЯчатки - результат нескольких бессоных ночей налицо ....
Страницы: 1 вся ветка
Форум: "WinAPI";
Текущий архив: 2002.11.28;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.326 c