Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
Форум программистов > C/C++: Системное программирование и WinAPI > Слежение за записью на внешие носители |
Автор: Goganchic 6.7.2008, 17:36 |
Всем привет! Как известно в винде имеется достаточно серьзеная вирусная опасность, и не всегда антивирусы могут защитить (например вирус оч. новый и сигнатуры для него еще не вышли). Вот я решил сделать на уровне системы некоторую защиту (ну и попутно разобраться в системном программировании для винды). В первую очередь это касается логирования доступа всех программ к внешним носителям, таким как USB Flash. Я думаю, что это можно как-то сделать на уровне драйверов. Хотелось бы получить следующий результат: каждая операция чтения и записи должна логироваться в какой-нибудь файл, к примеру C:\Windows\usb-access.log. А записываться туда должна следующая информация: какая программа в какой момент и что пыталась сделать: записать такой-то файл на носитель или считать такой-то файл с носителя. Кто-нибудь знает что-нибудь по данной теме? |
Автор: Goganchic 8.7.2008, 10:36 |
W4FhLF, почему желание угаснет? |
Автор: Goganchic 19.8.2008, 11:50 |
Поискал инфу на эту тему, понял что надо использовать IFS Kit. Теперь у меня несколько вопросов, на которые я так и не смог найти ответов:
|
Автор: Goganchic 1.9.2008, 13:35 | ||
Исследую сейчас IFS Kit (входящий в WDK) И у меня есть несколько вопросов: смотрел код sfilter-а, следующий блок:
Как я понимаю, это и есть назначение хуков на перехват обращений к файловой системе, я прав? |
Автор: Goganchic 2.9.2008, 18:49 | ||
Итак, вроде бы это на самом деле так: т.е. это хуки, теперь у меня такой вопрос: как я понимаю, для того, чтобы прибиндить этот список хуков к какому-то девайсу нужно выполнить подобную инструкцию:
т.е. возникает необходимость получить список всех девайсов, и тут и есть вопрос: как это сделать? |
Автор: andrew_121 3.9.2008, 11:33 |
Капец. Какие страсти ![]() ![]() |
Автор: ama_kid 6.9.2008, 21:15 |
Хм... не увидел связи между первой и второй фразами, если честно... Как из первого следует второе? Вообще-то DriverObject - это объект, который ты получаешь в DriverEntry, объект твоего драйвера. А уже для того, чтобы приаттачить свой объект к требуемому драйверу нижнего уровня - имхо нужно использовать функцию типа IoAttachDevice, но только для IFS (к сожалению, не имею IFS'a, поэтому максимум могу дать ссылку на http://msdn.microsoft.com/en-us/library/ms790742.aspx), выбрав девайс по его имени, которое должно быть известно: типа как L"\\Device\\RawDisk" или L"\\Device\\RawCdRom" или еще какой хочешь фильтровать, получив по имени его объект с помощью функции IoGetDeviceObjectPointer... |