Цитата:
Сообщение от Part!zan
В нете масса примеров, написанных без подобных извратов.
|
+1
Этот кусок кода не надо править - его надо выкинуть. Здесь в начала кода перехватываемой функции создается конструкция:
Код:
push <новый адрес обработчика>
ret
выполнение которой приводит к передаче управления на твою функцию.
Такой подход был хорош под DOS и под Win16. В современных системах с вытесняющей многозадачностью в момент между установкой первого и второго байта "патча" функция может понадобится другому процессу, который в лучшем случае благополучно рухнет, а в худшем - вынесет тебе половину системы.
Единственно вменяемое решение - править таблицу импорта модуля. Ищи, например, книгу: Джеффри РИХТЕР. "Создание эффективных WIN32-приложений" (по моему оно так называется, под рукой сейчас нет).