Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2002.11.28;
Скачать: CL | DM;

Вниз

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 вся ветка

Текущий архив: 2002.11.28;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.015 c
1-93057
Vint
2002-11-15 14:44
2002.11.28
фоновый рисунок на форме


1-92957
Suprime
2002-11-18 13:07
2002.11.28
Как из всех строк в ListBox e удалить начальные три символа?


1-93025
Maxx2000
2002-11-19 11:24
2002.11.28
Invalid floating point Operation


7-93262
Майк
2002-09-26 14:29
2002.11.28
Очиска/сброс очереди печати.


1-93086
Ag2002
2002-11-16 10:54
2002.11.28
Пароль