| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > C/C++: Системное программирование и WinAPI > Перехват АПИ функций |
| Автор: Coocky 6.3.2007, 12:58 |
| Привет. Нужно перехватит функции создания и запись в файл.. Вообщем с теорией знаком, но НЕ ФИГА не работает. Есть куча примеров (и даже Рихтер). Все с ошибками и все не работают. Может кто-то подсказать либо пример, либо выложить простенький примерик. Очень надо.. Уже второй день парюсь. Что б не писал. Инет кишма кишит примерами на делфи, а на С++ не рабочие либо не внятные отрывки. Спасибо |
| Автор: Coocky 6.3.2007, 13:35 | ||||
| Вижу желающих много, хорошо. Давайте подумаем вместе Итак, создадим длл, которая будет ставить хуки на прцессы. Код ТУПО передрал с Делфятины, потомы возможны ошибки..
Вот в принципе и все. Осталось заставить заработать DllMain Для этого в своем экзешнике пишем
Вот и все, для начала,но у меня не работает. В коментариях к коду в либе я написал то место, где замираю |
| Автор: Coocky 7.3.2007, 10:34 |
| Хорошо, опять молчим. Ну что ж, я нашел перехват функций с помощью библиотеки detours ,позже выложу библиотеку и исходники, для тех, кто не смог скачать с сайта мелкософтных или кто скачал, но не смог скомпилировать.. Теперь другой вопрос-КАК МНЕ ВНЕДРИТЬ своюю длл в нужный ЧУЖОЙ процесс? Знаю, статей много, но у меня не работает. Ну уж я точно не попадаю на точку останова в DllMain при отладке свое dll. А может и не долен попадать? Реально ли так отлаживать? |
| Автор: piritus 8.3.2007, 11:29 | ||
| одно из решений код написан КК (Крисом Касперски) у него для MessageBox, но думаю, что можно переделать под свои нужды:
|
| Автор: Coocky 12.3.2007, 16:11 | ||||||
Да нет! ИМЕНО на ПРОЦЕЕСЫ. С помощью хуков мы заставим длл внедрится во все ПРОЦЕССЫ!! Я уже разобрался
Примере есть в инете, но там нет выравнивания структуры. Я тоже разобрался. Вообщем разобрался САМ... Вот рабочий код
|
| Автор: dumb 13.3.2007, 19:04 |
| произошла небольшая путаница со смысловой нагрузкой слова "хук"... нет. чтобы убедиться, в DLL_PROCESS_ATTACH сделай вывод куда-либо(OutputDebugString/MessageBox/log-file) pid'ов(GetCurrentProcessId), например. |