Перехват CreateFile
1)Как сделать без сплайсинга, таблиц импорта и т.п.??? Есть какое системное сообщение типа МАУСБАТТОНДАУН( =) ), которое можно было бы перехватить с помощью обычных хуков??
Или лучше подменить код оригинального креэйтфайла в user32(или kernel32????), сделать все, потом вернуться обратно к нему? Но этоже ппц товарисчи=)
2)Как сделать глобальную ДЛЛку? Чтоб по всем процессам шарила.
Подсказки желательно в с++, всмыле я понимаю что апи, делфи, вся фигня, но времени мало, разбираюсь с 0-ля, вобщем вот так=)
2. А зачем?
Как эти драйвера работают?
2) Мне нужно следить за всей системой. Т.е. я запускаю приложение которое отслеживает вызов CreateFile. И как я понял глобально это делается только через драйвер файловой системы или длл-ку.
Мне нужен как раз 2 вариант. Как сделать чтобы она инспектировала и следила за всеми потоками в системе?
Под всеми подразумеваю примитивные вызовы именно CreateFile, без заморочек. Мне пофиг на приложения котррые создают, открывают файлы другими способами.
И всеже, неуели нет события откр/созд файла чтоб оформить всеэто простыми хуками???
Цитата: fghaq
этот драйвер по видимому мне самому писать
понятное дело
Цитата: fghaq
Как эти драйвера работают?
ну так и работают - принимают запросы, отклоняют запросы, перенаправляют запросы, изменяют запросы.
Цитата: fghaq
глобально это делается только через драйвер файловой системы или длл-ку.
драйвер-фильтр
Цитата: fghaq
Как сделать чтобы она инспектировала и следила за всеми потоками в системе?
как делать это через dll я могу представить, но делать бы так не стал и поэтому ответить не смогу.
Цитата: fghaq
И всеже, неуели нет события откр/созд файла чтоб оформить всеэто простыми хуками???
"простыми" хуками (SWH) - нет
За мышью - обычными хуками. SetWindowsHookEx. За CreateFile - либо написать драйвер фильтр (очень сложно), либо опять же установив хук подключиться ко всем процесса в системе (это проще, чем перехватывать CreateProcess и загружать свою DLL в адресное пространство другого процесса самому), но без таблиц импорта или сплайсинга всё же не обойтись. Но это немного проще, чем драйвер фильтр. Особенно отлаживать проще (в драйвере одна ошибка и BSOD, а в такой программе чего чего, а BSOD не будет. хотя если учесть, что мы много чего перехватим, то всё равно при некорректном освобождении ресурсов система может и рухнуть).