Показать сообщение отдельно
Старый 20.01.2009, 09:08   #3   
Пессимист
 
Аватар для dn2k4
 
Сообщений: 618
Регистрация: 22.07.2004

dn2k4 вне форума Не в сети
Цитата:
Сообщение от Part!zan Посмотреть сообщение
В нете масса примеров, написанных без подобных извратов.
+1
Этот кусок кода не надо править - его надо выкинуть. Здесь в начала кода перехватываемой функции создается конструкция:
Код:
push <новый адрес обработчика>
ret
выполнение которой приводит к передаче управления на твою функцию.

Такой подход был хорош под DOS и под Win16. В современных системах с вытесняющей многозадачностью в момент между установкой первого и второго байта "патча" функция может понадобится другому процессу, который в лучшем случае благополучно рухнет, а в худшем - вынесет тебе половину системы.

Единственно вменяемое решение - править таблицу импорта модуля. Ищи, например, книгу: Джеффри РИХТЕР. "Создание эффективных WIN32-приложений" (по моему оно так называется, под рукой сейчас нет).
  Ответить с цитированием