перехват обращений к файлам

Hello comp,
как решить такую задачу: имеется определенный путь и определенное
имя файла, при обращении к этому имени основных файловых функций
нужно подсовывать этим функциям другой файл.
Более общий случай - как перехватить обращение к функции API.
Желательно исходники!
Здравствуйте !
Это трудно.
Поищи в инете "перехват API".
Коротко :
есть 2 способа :
1. Править каталоги импорта/экспорта PE-модуля.
2. модификация точки входа в функцию (перехватываемую).
способ 2 правильней, т.к. функцию можно вызвать через
указатель (метод 1 не сработает). но в этом случае много гемора.
Придется определять длину 1-й инструкции тела функции. А это-уже
каркас дизассемблера.
Еще трудность с внедрением своего кода в адресное просранство
других процессов. Хуки тут не всегда работают => бесполезны.
Выход - WriteProcessMemory + RPC или перехватывать точку входа
в программу. Второе - предпочтительнее, ведь надо перехватить все
вызовы интересующей функции ? Тут главная трабла - потребуется
либо самому запускать этот процесс (этот легко - через CreateProcess),
но не сразу, а подправиви образ в памяти, либо отлавливать
запуск процесса в системе (как в этом случае его изменить - не
знаю; отловить - написав драйвер (в Win2000 есть PsSetLoadImageNotifyRoutine
и PsSetCreateProcessNotifyRoutine - функции для установки обработки соотв.
событий Kernel-Mode драйвером).
Как видите - геморрно это :-(
--
С уважением, Вахтуров Виктор.
Информационный сайт для программистов http://SoftMaker.com.ru
Номер выпуска : 2115
Возраст листа : 153 (дней)
Количество подписчиков : 390
Адрес в архиве : http://subscribe.ru/archive/comp.soft.prog.prog/msg/85993
Получить правила : mailto:comp.soft.prog.prog-rules@subscribe.ru
Формат "дайджест" : mailto:comp.soft.prog.prog-digest@subscribe.ru
Формат "каждое письмо" : mailto:comp.soft.prog.prog-normal@subscribe.ru
Формат "читать с веба" : mailto:comp.soft.prog.prog-webonly@subscribe.ru
-*Информационный канал Subscribe.Ru
Написать в лист: mailto:comp.soft.prog.prog-list@subscribe.ru
Отписаться: mailto:comp.soft.prog.prog--unsub@subscribe.ru
http://subscribe.ru/ mailto:ask@subscribe.ru