Главная страница
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.012 c
3-92908
alxx
2002-11-10 18:24
2002.11.28
Windows NT-authentification в MSSQLServer


1-92949
shane54
2002-11-15 17:56
2002.11.28
Вопрос по ADO


4-93288
Filat
2002-10-11 19:52
2002.11.28
Task Manager? Как его сделать многозадачным?


14-93211
VID
2002-11-08 18:42
2002.11.28
Для воспроизведения...


14-93208
PaRL
2002-11-09 21:13
2002.11.28
Бинарная система - это круто.