Сейчас на форуме: vsv1, _MBK_ (+3 невидимых)

 eXeL@B —› Вопросы новичков —› Возможно ли изменить флаг секции в рантайме?
Посл.ответ Сообщение

Ранг: 1.4 (гость)
Активность: 0=0
Статус: Участник

Создано: 29 октября 2007 10:30
· Личное сообщение · #1

Хочется сделать inline патч через внедрение dll.
Но секция CODE закрыта для записи.
О возможности справиться с этим делом через изменение header-а исполнимого файла мне известно.
Но хочется вначале патча в рантайм разрешить запись в секцию, сделать необходимые изменения, затем вернуть флаги в исходное положение и передать управление программе.
Возможно ли?




Ранг: 126.7 (ветеран)
Активность: 0.140
Статус: Участник
#CCh

Создано: 29 октября 2007 11:02
· Личное сообщение · #2

BOOL VirtualProtectEx(

HANDLE hProcess, // handle of process
LPVOID lpAddress, // address of region of committed pages
DWORD dwSize, // size of region
DWORD flNewProtect, // desired access protection (PAGE_READWRITE)
PDWORD lpflOldProtect // address of variable to get old protection
);


-----
invoke OpenFire




Ранг: 1.4 (гость)
Активность: 0=0
Статус: Участник

Создано: 29 октября 2007 11:45
· Личное сообщение · #3

Да, спасибо.
Я пробовал эту функцию. Но указывал в качестве параметров lpAddress начало патча и размер изменяемых байт. Функция возвращала 1, но писать не получалось. А вот когда я указал начало секции кода и ее полный размер. Вот здесь все прокатило.
Верно ли мое заключение, что можно только так или можно и например 5 байтам в середине секции разрешить писаться?




Ранг: 126.7 (ветеран)
Активность: 0.140
Статус: Участник
#CCh

Создано: 29 октября 2007 12:52
· Личное сообщение · #4

можно и 5и байтам, но фактически будет разрешена запись целой странице

-----
invoke OpenFire



 eXeL@B —› Вопросы новичков —› Возможно ли изменить флаг секции в рантайме?
:: Ваш ответ
Жирный  Курсив  Подчеркнутый  Перечеркнутый  {mpf5}  Код  Вставить ссылку 
:s1: :s2: :s3: :s4: :s5: :s6: :s7: :s8: :s9: :s10: :s11: :s12: :s13: :s14: :s15: :s16:


Максимальный размер аттача: 500KB.
Ваш логин: german1505 » Выход » ЛС
   Для печати Для печати