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

Discussion in 'WASM.WIN32' started by cresta, Apr 30, 2006.

  1. cresta

    cresta Active Member

    Blog Posts:
    0
    Joined:
    Jun 13, 2004
    Messages:
    2,257
    Тут такая ситация: есть прога и есть драйвер. Прога пишет некоторую инфу в файл и отправляет на мыло. Как можно из драйвера отследить отсылку письма, чтобы вписать в него кое-что.

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

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

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

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

    Blog Posts:
    0
    Joined:
    Oct 28, 2003
    Messages:
    2,428
    Location:
    Russia
    cresta

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

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

    cresta Active Member

    Blog Posts:
    0
    Joined:
    Jun 13, 2004
    Messages:
    2,257
    не понял, при чем криптодиск? Там есть что-то с отсылкой мыла? Если там перехват записи в файл - то не надо.
     
  4. EvilsInterrupt

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

    Blog Posts:
    0
    Joined:
    Oct 28, 2003
    Messages:
    2,428
    Location:
    Russia
    cresta

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

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

    Bill_Prisoner New Member

    Blog Posts:
    0
    Joined:
    May 4, 2005
    Messages:
    238
    Это пакет-снифер имхо из режима ядра.
     
  6. Ms Rem

    Ms Rem New Member

    Blog Posts:
    0
    Joined:
    Apr 17, 2005
    Messages:
    1,057
    Location:
    С планеты "Земля"
    тебе нужен tdi фильтр. смотри сорцы tdifw.
     
  7. cresta

    cresta Active Member

    Blog Posts:
    0
    Joined:
    Jun 13, 2004
    Messages:
    2,257
    О, блин, в этих сорцах ТыЦыПы и Пы.

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

    LuckyDevil New Member

    Blog Posts:
    0
    Joined:
    Mar 10, 2005
    Messages:
    278
    Location:
    Uzbekistan
    cresta, а ты не замечал что делает нортон-антивирус?

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

    cresta Active Member

    Blog Posts:
    0
    Joined:
    Jun 13, 2004
    Messages:
    2,257
    В сетях ничего не понимаю, в принципе сам драйвер Tcpip похукал, вроде хук работает, разные Irp мимо летят, обвешаные ioctl'ами, а что они значат, какие ловить и как обрабатывать - не могу найти. На каком-то форуме нашел, что вроде ioctl'ы свои для каждой версии, и кто их знает - инфой вряд ли поделится. Ну и забуксовал на этом :dntknw:



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

    Ms Rem New Member

    Blog Posts:
    0
    Joined:
    Apr 17, 2005
    Messages:
    1,057
    Location:
    С планеты "Земля"
    cresta

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

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



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

    cresta Active Member

    Blog Posts:
    0
    Joined:
    Jun 13, 2004
    Messages:
    2,257
    данке

    я так понял

    #include <tdi.h>

    #include <tdikrnl.h>

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

    Ms Rem New Member

    Blog Posts:
    0
    Joined:
    Apr 17, 2005
    Messages:
    1,057
    Location:
    С планеты "Земля"
    cresta

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

    cresta Active Member

    Blog Posts:
    0
    Joined:
    Jun 13, 2004
    Messages:
    2,257
    Как раз первым делом и посмотрел, есть ли там такие файлы. Поэтому и переспросил на всякий случай, о них ли речь идёт?

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

    cresta Active Member

    Blog Posts:
    0
    Joined:
    Jun 13, 2004
    Messages:
    2,257
    Всё, сделал :)


    Code (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

    Blog Posts:
    0
    Joined:
    Jun 13, 2004
    Messages:
    2,257
    кстати, Ms Rem, как себя ведет этот сокет из mysocket.c при отсутствии соединения? Как винсок, вываливает окно подключения, или молча отказывается от посылки?
     
  16. Ms Rem

    Ms Rem New Member

    Blog Posts:
    0
    Joined:
    Apr 17, 2005
    Messages:
    1,057
    Location:
    С планеты "Земля"
    возвращает ошибку и все.