Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "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
3-92919
Andy78
2002-11-11 15:14
2002.11.28
Ячейки DBGrid


14-93209
Anar
2002-11-08 19:18
2002.11.28
Работа с архивами


14-93259
Asteroid
2002-11-10 20:32
2002.11.28
Все на тестирование!


14-93260
Deniss
2002-11-08 13:42
2002.11.28
Кто знает Аргус ... отзовитесь


14-93258
Дремучий
2002-11-11 14:07
2002.11.28
Кто заводил себе домен? Хвастайтесь!





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский