Файловый сервак Win 2003 Что перехватить и как смотреть имя зарегистрированного на сервере пользователя, который открыл какой-то файл. Перехватить наверное нужно ZwSetInformationFile()? Тогда как, из каких структур, определить пользователя открывшего файл ?
_sheva740 Как определить момент открытия надо подумать, а перебрать уже открытые файлы на предмет получения данных о пользователе можно при помощи NetFileEnum(,,, DWORD level = 3, ...
если тебе нужен монитор то NetFileEnum подойдет но если нужен аудит или еще хуже протект - то тогда NetFileEnum надо вызывать с бесконечно большой скоростью у меня в продукте аудитится и имя юзера и айпи адрес '
q_q z0mailbox спасибо за наводку, будем разбираться. И не нужен ring0 все, я так понял, в ring3 великолепно проводится
_sheva740 > не нужен ring0 все, я так понял, в ring3 великолепно проводится Не все так пушисто. Как определять момент открытия файла? z0mailbox > вызывать с бесконечно большой скоростью Это как? Создать поток и в нем в цикле звать? Если да, то это не дело. [offtop] Три месяца назад надо было отловить, кто зверька пускает. Завел на сервере каталог, положил туда exe'шник-приманку, написал программуську - FindFirstChangeNotification( FILE_NOTIFY_CHANGE_LAST_WRITE (сработка в момент записи) ) + WaitForSingleObject + NetFileEnum, разделил каталог в сеть на полный доступ. Результат - поганец пойман. [/offtop]
q_q > надо было отловить, кто зверька пускает ... да вот, тоже, перенесли файлы, друг не друга косят, наш админ руками разводит - "разберитесь сами". Хотел попробовать вести логи кто чего когда открывал ...
q_q q_q естественно это был сарказм плавали знаем. Если это им подходит - бога ради, нам не подошло это была попытка малой кровью обойтись, через ReadDirectoryChangesW к счастью быстро все осознали и перешли на драйвер-фильтр