· Начало · Отвђтить · Статистика · Поиск · FAQ · Правила · Установки · Язык · Выход · WASM.RU · Noir.Ru ·

 WASM Phorum —› WASM.WIN32 —› Изменение байтов в системных библиотеках

Посл.отвђт Сообщенiе


Дата: Фев 24, 2004 14:47:57

Может кто подскажет как мне изменить пару байтов в адресном пространстве системной библиотеки к примеру USER32.dll . При использовании функции WriteProcessMemory
система отказывае в доступе.Как быть ???
Заранее спасибо.


Дата: Фев 24, 2004 14:51:34 · Поправил: Asterix

Под NT элементарно!
   invoke VirtualProtectEx, hProcess, AddressToWrite, SIZEOF BYTE,\
                            PAGE_EXECUTE_READWRITE, OFFSET OldProtect
   test eax, eax
   jz @F
   invoke WriteProcessMemory, hProcess, AddressToWrite, lpByteToWrite, SIZEOF BYTE, NULL

   invoke VirtualProtectEx, hProcess, AddressToWrite, SIZEOF BYTE,\
                            OldProtect, OFFSET OldProtect


Дата: Фев 24, 2004 17:48:49

Это уже лучше но .....
При WriteProcessMemory, hProcess, AddressToWrite, lpByteToWrite, SIZEOF BYTE, NULL
Появляется ошибка:
ERROR_INVALID_HANDLE (00000006)

Хендел же был получен функцией OpenProcess

Какой ещё хендел ему нужен ??????????


Дата: Фев 24, 2004 17:50:14

Кстати - тестирую на ХР , может это причина ошибки ???


Дата: Фев 24, 2004 18:16:13

Тебе кинуть готовую программу? ;-)


Дата: Фев 24, 2004 18:32:59

Короче, готовой программы, подходящей под твои условия у меня не нашлось, а специально писАть лень ;-)
Ты выложи свой исходник, что ты там накодил, вместе разберёмся, возможно ты не правильно используешь OpenProcess ;-)

p.s. XP тут не причём!


Дата: Фев 24, 2004 18:46:53

Да, ты прав ХР здесь не причем.
Я передавал в WriteProcessMemory не хендл,а адрес по которому он находится :-)
Теперь всё исправил, прога работает !

Как говориться - вопросов больше не имею. :-)

Большое спасибо за совет.
!!!!!!!!!!!!!!!!!!!!!!!!!


Powered by miniBB 1.6 © 2001-2002
Время загрузки страницы (сек.): 0.160