Слежение за файлами.

Тема в разделе "WASM.WIN32", создана пользователем Shark_X, 16 дек 2006.

  1. Shark_X

    Shark_X New Member

    Публикаций:
    0
    Регистрация:
    16 дек 2006
    Сообщения:
    8
    Добрый день.
    Есть проблема. У меня приложение и драйвер. Драйвер следит за операция над файлами, используется перехват NtCreateSection. Читал, что практически при любом чтении и создании файла вызывается, но при открытии файлов в некоторых программах никакой реакции, в частности Adobe Photoshop. Буду благодарен за информацию, которая реально прольёт свет на данную проблему.
     
  2. Cr4sh

    Cr4sh New Member

    Публикаций:
    0
    Регистрация:
    17 апр 2006
    Сообщения:
    668
    а NtCreateFile/NtOpenFile не пробовал хукать?
     
  3. Shark_X

    Shark_X New Member

    Публикаций:
    0
    Регистрация:
    16 дек 2006
    Сообщения:
    8
    Я пробовал
    DWORD * addr=(DWORD *)(1+(DWORD)GetProcAddress(GetModuleHandle("ntdll.dll"),"NtCreateFile"));
    и
    DWORD * addr=(DWORD *)(1+(DWORD)GetProcAddress(GetModuleHandle("ntdll.dll"),"NtOpenFile"));

    почему-то вообще перестаёт следить за файлами.
     
  4. Shark_X

    Shark_X New Member

    Публикаций:
    0
    Регистрация:
    16 дек 2006
    Сообщения:
    8
    Или я не прав, что передав в драйвер адрес другой функции, то всё будет нормально работать?
     
  5. Guest

    Guest Guest

    Публикаций:
    0
    - А это ты для чего делаешь, ты ведь в драйвере перехватываешь?
     
  6. Shark_X

    Shark_X New Member

    Публикаций:
    0
    Регистрация:
    16 дек 2006
    Сообщения:
    8
    я в драйвер передаю адрес функции, а там его перехватываю
     
  7. DeeoniS

    DeeoniS New Member

    Публикаций:
    0
    Регистрация:
    6 авг 2004
    Сообщения:
    132
    Насколько я понимаю драйвером обычно только код ядра перехватывают, а ты пытаешься захукать юзер-мод код.
     
  8. Shark_X

    Shark_X New Member

    Публикаций:
    0
    Регистрация:
    16 дек 2006
    Сообщения:
    8
    почему вдруг? драйвер и занимается перехватом, просто получает, что перехватывать и если поймал закидывает в буфер памяти чего он поймал, а программуля выкидывает месагу что пойман такой-то файл, разрешить его открывать или нет.
     
  9. Nilos

    Nilos New Member

    Публикаций:
    0
    Регистрация:
    23 ноя 2006
    Сообщения:
    14
    Тот, кто отдает драйвру команды (юзермод) - слабое звено (ну ИМХО). Попробуй все сделать из драйвера.
     
  10. Shark_X

    Shark_X New Member

    Публикаций:
    0
    Регистрация:
    16 дек 2006
    Сообщения:
    8
    Если ты знаешь, как организовать программу, которая будет вести перехват открытия файлов и при этом, нужно не просто логи писать, а выполнять действия, например их копировать в другое место. Поделись мыслями, желательно с кодами.
     
  11. Guest

    Guest Guest

    Публикаций:
    0
    - Как перехватить ZwCreateFile/ZwOpenFile в ядре можно найти здесь же http://www.wasm.ru/article.php?article=apihook_3, Скопировать проблем тоже не будет - ZwCreateFile на чтение и еще один ZwCreateFile на запись - копирование.
    P.S. Забей на юзермод.
     
  12. Shark_X

    Shark_X New Member

    Публикаций:
    0
    Регистрация:
    16 дек 2006
    Сообщения:
    8
    Попробую, просто никак не могу понять почему с функцией NtCreateSection получается, а с NtOpenFile нет