перехват чтения/записи в файл

Тема в разделе "WASM.WIN32", создана пользователем riban, 18 апр 2005.

  1. riban

    riban New Member

    Публикаций:
    0
    Регистрация:
    20 фев 2005
    Сообщения:
    51
    Адрес:
    Russia
    Требуется перехватить WriteFile|ReadFile и CreateFile, и отправить инф. по Com-порту. С Com-портом всё ясно, а вот как сделать перехват?
     
  2. n0name

    n0name New Member

    Публикаций:
    0
    Регистрация:
    5 июн 2004
    Сообщения:
    4.336
    Адрес:
    Russia
  3. ProgramMan

    ProgramMan New Member

    Публикаций:
    0
    Регистрация:
    13 янв 2004
    Сообщения:
    263
  4. riban

    riban New Member

    Публикаций:
    0
    Регистрация:
    20 фев 2005
    Сообщения:
    51
    Адрес:
    Russia
    Спасибо за линки. А вот допустим мне нужно чтение/запись только некоторых файлов перехватывать, а остальные передавать стандартным функциям винды. Как корректно это сделать? Мне кажется, что используя те же функции ReadFile|WriteFile у себя в драйвере получится никому не нужная рекурсия. Я прав?
     
  5. PavPS

    PavPS New Member

    Публикаций:
    0
    Регистрация:
    24 фев 2004
    Сообщения:
    109
    Адрес:
    Russia
    А что значит перехватывать? Просто вести лог о кол-ве вызовов к определенным файлам или осуществлять иногда запрет доступа???
     
  6. ProgramMan

    ProgramMan New Member

    Публикаций:
    0
    Регистрация:
    13 янв 2004
    Сообщения:
    263
    riban? а что мешает отсеивать по парамтру? При работе драйвера рекурсия НЕ возникает, т.к. перехват выполняется только для функций R-3.
     
  7. CARDINAL

    CARDINAL Member

    Публикаций:
    0
    Регистрация:
    23 янв 2004
    Сообщения:
    551
    Адрес:
    Moscow
    riban

    а что тебе к примеру мешает организовать в драйвере фильтр ? Если хочешь мониторить все файлы, даже те, что юзает ядро и к которым по сети обращаются, то тебе лучше перехватить функции типа IoCreateFile.. но только методом сплайсинга, иначе хрен его знает как.
     
  8. ProgramMan

    ProgramMan New Member

    Публикаций:
    0
    Регистрация:
    13 янв 2004
    Сообщения:
    263
    CARDINAL, что за метод сплайсинга?

    Я перехватывал в R-0 только установкой IntXX в начало функций.
     
  9. CARDINAL

    CARDINAL Member

    Публикаций:
    0
    Регистрация:
    23 янв 2004
    Сообщения:
    551
    Адрес:
    Moscow
    ProgramMan

    это он и есть
     
  10. PavPS

    PavPS New Member

    Публикаций:
    0
    Регистрация:
    24 фев 2004
    Сообщения:
    109
    Адрес:
    Russia
    IoCreateFile покатит, для чтения самый надежный IoPageRead, хотя и поймать не всегда удаётся. Это всё злой кэш-менеджер. Наверняка не отловиш. Когда я делал самым надёжным оказалось CCRead CCWrite - тоже так варворски перехватывать приходится, и префикс и суффикс ставить надо. А если файл спроецирован, то чтение/запись не отловить. Хотя, если Ты читаешь и страница не в памяти, то по PageFault она подгрузиться по IoPageRead...

    что-то я уже ушел...

    Если удасться как нить отловить на 100% или ближе чтение запись писюкни сюда plz
     
  11. Zufyxe

    Zufyxe New Member

    Публикаций:
    0
    Регистрация:
    13 авг 2004
    Сообщения:
    137
    Адрес:
    Russia




    Чтение из файла с диска отлавливается на 100% путем захучивания IofCallDriver/IofCompleteRequest. Я сам делал. То же самое,видимо, можно сказать и про запись.
     
  12. riban

    riban New Member

    Публикаций:
    0
    Регистрация:
    20 фев 2005
    Сообщения:
    51
    Адрес:
    Russia
    PavPS

    Нужно сделать не совсем заперт доступа. Я написал несложную программу под микроконтроллер, обмен с компом идёт по COM-интерфейсу. Мне нужно вместо каких-то байт в файлах на диске подставлять байты из микроконтроллера.
     
  13. CARDINAL

    CARDINAL Member

    Публикаций:
    0
    Регистрация:
    23 янв 2004
    Сообщения:
    551
    Адрес:
    Moscow
    PavPS

    вот как раз эта функция тебе и не нужна, если не собираешься отлавливать мапинг файловый, а судя по вопросу эта задача как раз таки и не ставилась.



    а что касается на сто проц отлова, тебе нужно хучить дравер иоктлы файловой системы, ну , или непосредственно самого функционального девайса, кароче драйвер физического диска, это уж точно сканает, если файл планиркется быть скинутым на диск. в противном случае, отлавливаешь функции, работающие с мапингом, определяешь диапазон памяти, ставишь на эту память атрибут ридонли и обработчик на #GP так и ловишь, забыл Debug Api ??????
     
  14. PavPS

    PavPS New Member

    Публикаций:
    0
    Регистрация:
    24 фев 2004
    Сообщения:
    109
    Адрес:
    Russia
    2 CARDINAL

    Блин, и не подумал про обработку #PF...Идея...!
     
  15. riban

    riban New Member

    Публикаций:
    0
    Регистрация:
    20 фев 2005
    Сообщения:
    51
    Адрес:
    Russia
    #GP и #PF. Можно попдробней? Вотс ит?
     
  16. CARDINAL

    CARDINAL Member

    Публикаций:
    0
    Регистрация:
    23 янв 2004
    Сообщения:
    551
    Адрес:
    Moscow
    riban

    Intel manual references