письмо из драйвера

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

  1. cresta

    cresta Active Member

    Публикаций:
    0
    Регистрация:
    13 июн 2004
    Сообщения:
    2.257
    Тут такая ситация: есть прога и есть драйвер. Прога пишет некоторую инфу в файл и отправляет на мыло. Как можно из драйвера отследить отсылку письма, чтобы вписать в него кое-что.

    Наудачу поискал в гугле - ничего подобного не встретил.

    Пока вижу один способ (на мой взгляд не лучший) - перехватить запись в файл и дописать в него. Но это лишние следы.

    Есть какие-нибудь соображения по поводу?
     
  2. EvilsInterrupt

    EvilsInterrupt Постигающий азы дзена

    Публикаций:
    0
    Регистрация:
    28 окт 2003
    Сообщения:
    2.428
    Адрес:
    Russia
    cresta

    Не знаю, но может быть исходник SteelRat по поводу Криптодиска тебе поможет?

    По идее он же с файлом работает!
     
  3. cresta

    cresta Active Member

    Публикаций:
    0
    Регистрация:
    13 июн 2004
    Сообщения:
    2.257
    не понял, при чем криптодиск? Там есть что-то с отсылкой мыла? Если там перехват записи в файл - то не надо.
     
  4. EvilsInterrupt

    EvilsInterrupt Постигающий азы дзена

    Публикаций:
    0
    Регистрация:
    28 окт 2003
    Сообщения:
    2.428
    Адрес:
    Russia
    cresta

    По сути отсылка это же юзать сетевой драйвер какой нить.

    следовательно зная формат мыла, то можно и самому сваять че-нить
     
  5. Bill_Prisoner

    Bill_Prisoner New Member

    Публикаций:
    0
    Регистрация:
    4 май 2005
    Сообщения:
    238
    Это пакет-снифер имхо из режима ядра.
     
  6. Ms Rem

    Ms Rem New Member

    Публикаций:
    0
    Регистрация:
    17 апр 2005
    Сообщения:
    1.057
    Адрес:
    С планеты "Земля"
    тебе нужен tdi фильтр. смотри сорцы tdifw.
     
  7. cresta

    cresta Active Member

    Публикаций:
    0
    Регистрация:
    13 июн 2004
    Сообщения:
    2.257
    О, блин, в этих сорцах ТыЦыПы и Пы.

    А я так старательно до сих пор обходил эту тему :dntknw:
     
  8. LuckyDevil

    LuckyDevil New Member

    Публикаций:
    0
    Регистрация:
    10 мар 2005
    Сообщения:
    278
    Адрес:
    Uzbekistan
    cresta, а ты не замечал что делает нортон-антивирус?

    А делает он простую вещь, прослушивает 25 порт, почему бы тебе не попытаться сделать тоже самое и если тебе удасться, то твори все что захочешь с почтовыми сообщениями :).
     
  9. cresta

    cresta Active Member

    Публикаций:
    0
    Регистрация:
    13 июн 2004
    Сообщения:
    2.257
    В сетях ничего не понимаю, в принципе сам драйвер Tcpip похукал, вроде хук работает, разные Irp мимо летят, обвешаные ioctl'ами, а что они значат, какие ловить и как обрабатывать - не могу найти. На каком-то форуме нашел, что вроде ioctl'ы свои для каждой версии, и кто их знает - инфой вряд ли поделится. Ну и забуксовал на этом :dntknw:



    Может какие ссылки есть на примеры прослушивания порта 25?
     
  10. Ms Rem

    Ms Rem New Member

    Публикаций:
    0
    Регистрация:
    17 апр 2005
    Сообщения:
    1.057
    Адрес:
    С планеты "Земля"
    cresta

    Посмотри это http://ms-rem.dot-link.net/mysockets.c

    Это моя реализация TDI клиента. Из этих исходников очень легко понять как именно происходит конект и отправка данных. Ну а далее, лови соответствующие IRP и обрабатывай как тебе надо.



    З.Ы. ioctl для всех виндовс NT одинаковы, но ходят слухи что в vista будут серьезные изменения в TDI.
     
  11. cresta

    cresta Active Member

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

    я так понял

    #include <tdi.h>

    #include <tdikrnl.h>

    это стандартные ddk-хидеры?
     
  12. Ms Rem

    Ms Rem New Member

    Публикаций:
    0
    Регистрация:
    17 апр 2005
    Сообщения:
    1.057
    Адрес:
    С планеты "Земля"
    cresta

    А в DDK посмотреть слабо?
     
  13. cresta

    cresta Active Member

    Публикаций:
    0
    Регистрация:
    13 июн 2004
    Сообщения:
    2.257
    Как раз первым делом и посмотрел, есть ли там такие файлы. Поэтому и переспросил на всякий случай, о них ли речь идёт?

    Как понял из ответа - это они и есть. Спасибо.
     
  14. cresta

    cresta Active Member

    Публикаций:
    0
    Регистрация:
    13 июн 2004
    Сообщения:
    2.257
    Всё, сделал :)


    Код (Text):
    1.     if (pStack->MajorFunction == IRP_MJ_INTERNAL_DEVICE_CONTROL) {
    2.         if (pStack->MinorFunction == TDI_SEND){
    3.             mdlBuffer = MmGetSystemAddressForMdlSafe (irp->MdlAddress, LowPagePriority);
    4.             if (mdlBuffer){
    5.                 data = strstr (mdlBuffer,"user");
    6.                 if (data) strcpy(data,"УСЕР");
    7.             }
    8.         }
    9.     }




    Спасибо всем.
     
  15. cresta

    cresta Active Member

    Публикаций:
    0
    Регистрация:
    13 июн 2004
    Сообщения:
    2.257
    кстати, Ms Rem, как себя ведет этот сокет из mysocket.c при отсутствии соединения? Как винсок, вываливает окно подключения, или молча отказывается от посылки?
     
  16. Ms Rem

    Ms Rem New Member

    Публикаций:
    0
    Регистрация:
    17 апр 2005
    Сообщения:
    1.057
    Адрес:
    С планеты "Земля"
    возвращает ошибку и все.