Как определить имя пользователя открывшего файл?

Тема в разделе "WASM.BEGINNERS", создана пользователем _sheva740, 18 ноя 2008.

  1. _sheva740

    _sheva740 New Member

    Публикаций:
    0
    Регистрация:
    31 авг 2005
    Сообщения:
    1.539
    Адрес:
    Poland
    Файловый сервак Win 2003
    Что перехватить и как смотреть имя зарегистрированного на сервере пользователя, который открыл какой-то файл.
    Перехватить наверное нужно ZwSetInformationFile()?
    Тогда как, из каких структур, определить пользователя открывшего файл ?
     
  2. q_q

    q_q New Member

    Публикаций:
    0
    Регистрация:
    5 окт 2003
    Сообщения:
    1.706
    _sheva740
    Как определить момент открытия надо подумать, а перебрать уже открытые файлы на предмет получения данных о пользователе можно при помощи NetFileEnum(,,, DWORD level = 3, ...
     
  3. z0mailbox

    z0mailbox z0

    Публикаций:
    0
    Регистрация:
    3 фев 2005
    Сообщения:
    635
    Адрес:
    Russia СПБ
    если тебе нужен монитор то NetFileEnum подойдет
    но если нужен аудит или еще хуже протект - то тогда NetFileEnum надо вызывать с бесконечно большой скоростью :)

    у меня в продукте аудитится и имя юзера и айпи адрес ';)
     
  4. _sheva740

    _sheva740 New Member

    Публикаций:
    0
    Регистрация:
    31 авг 2005
    Сообщения:
    1.539
    Адрес:
    Poland
    q_q
    z0mailbox
    спасибо за наводку, будем разбираться. И не нужен ring0 все, я так понял, в ring3 великолепно проводится :)
     
  5. q_q

    q_q New Member

    Публикаций:
    0
    Регистрация:
    5 окт 2003
    Сообщения:
    1.706
    _sheva740
    > не нужен ring0 все, я так понял, в ring3 великолепно проводится
    Не все так пушисто. Как определять момент открытия файла?

    z0mailbox
    > вызывать с бесконечно большой скоростью
    Это как? Создать поток и в нем в цикле звать? Если да, то это не дело.

    [offtop]
    Три месяца назад надо было отловить, кто зверька пускает. Завел на сервере каталог, положил туда exe'шник-приманку, написал программуську - FindFirstChangeNotification( FILE_NOTIFY_CHANGE_LAST_WRITE (сработка в момент записи) ) + WaitForSingleObject + NetFileEnum, разделил каталог в сеть на полный доступ. Результат - поганец пойман.
    [/offtop]
     
  6. _sheva740

    _sheva740 New Member

    Публикаций:
    0
    Регистрация:
    31 авг 2005
    Сообщения:
    1.539
    Адрес:
    Poland
    q_q
    > надо было отловить, кто зверька пускает ...
    да вот, тоже, перенесли файлы, друг не друга косят, наш админ руками разводит - "разберитесь сами". Хотел попробовать вести логи кто чего когда открывал ...
     
  7. z0mailbox

    z0mailbox z0

    Публикаций:
    0
    Регистрация:
    3 фев 2005
    Сообщения:
    635
    Адрес:
    Russia СПБ
    _sheva740
    не угадал. работа с файлами на ремоутной машыне идет в srv.sys - ring0 only!
     
  8. z0mailbox

    z0mailbox z0

    Публикаций:
    0
    Регистрация:
    3 фев 2005
    Сообщения:
    635
    Адрес:
    Russia СПБ
    q_q
    q_q
    естественно это был сарказм
    плавали знаем. Если это им подходит - бога ради, нам не подошло
    это была попытка малой кровью обойтись, через ReadDirectoryChangesW
    к счастью быстро все осознали и перешли на драйвер-фильтр