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

Вниз

Изменение кода при выполнении программы   Найти похожие ветки 

 
programania ©   (2004-10-05 18:34) [0]

Можно ли изменить код процедуры во время работы программы?
Если менять массив размещенный по адресу этой
процедуры происходит защита доступа хотя в массиве видно
что там тот же код что и в окне CPU у этой процедуры.

Или можно ли запустить выполнение кода из массива?
если переменной типа процедура присвоить адрес этого массива,
в массив записать код другой процедуры того же типа
и вызвать ее: опять защита доступа.


 
Суслик ©   (2004-10-05 18:50) [1]

Я такое не делал, но думаю можно.

Я бы стал рыть в сторону использования функции VirtualProtect и родественных ей.
Я не помню какие ограничения у этой функции. Думаю, что на данный вопрос может замечательно ответить книга Рихтера, windows для профи - глава про управление памятью. Или msdn можно посмотреть.


 
Суслик ©   (2004-10-05 19:01) [2]

Думаю, что можно попробовать взять адрес процедуры, используя VirtualQuery узнать базовый адрес блока, затем через VirtualProtect сменить уровень защиты, изменить код.

Я бы начал с этого...


 
Sha ©   (2004-10-05 19:01) [3]

> programania ©   (05.10.04 18:34)  

VirtualProtect
PAGE_EXECUTE_READWRITE
FlushInstructionCache


 
Digitman ©   (2004-10-06 08:59) [4]


> можно ли запустить выполнение кода из массива?


если массив разместить в стеке, то выполнить маш.инструкции, размещенные в массиве, можно и безо всяких доп.ухищрений, благо страницы стека имеют привелегии доступа PAGE_EXECUTE_READWRITE


 
Sha ©   (2004-10-06 10:18) [5]

Digitman ©   (06.10.04 08:59) [4]

Добавлю, что такой вариант работает иногда медленнее.
И добавляет проблем отладчику :)


 
wicked ©   (2004-10-06 12:51) [6]

> Digitman [4]
так и знал, что кто-то посоветует.... :)
остается сказать - читайте описание 2-го сервис пака для WinXP....


 
Sha ©   (2004-10-06 13:21) [7]

> wicked ©   (06.10.04 12:51) [6]

Неужели MS не даст исполнять код на стеке?
Много программ пострадает :(


 
Anatoly Podgoretsky ©   (2004-10-06 13:25) [8]

Sha ©   (06.10.04 13:21) [7]
Туда им и дорога.



Страницы: 1 вся ветка

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

Наверх




Память: 0.48 MB
Время: 0.055 c
11-1082642241
Max Kozlov
2004-04-22 17:57
2004.11.14
проблема с ActiveKOL, точнее с KOLComObj


14-1098704369
DiamondShark
2004-10-25 15:39
2004.11.14
Я тут как-то книжку обещал...


14-1098430322
NewDelpher
2004-10-22 11:32
2004.11.14
Умение водить автомобиль


14-1098565988
Soft
2004-10-24 01:13
2004.11.14
А зачем покупать книги крутых авторов?


14-1099002605
GanibalLector
2004-10-29 02:30
2004.11.14
Двенадцать заповедей пролетариата