Здравствуйте arnold, Вы писали:
A>Подскажите какой хук лучше использовать для перехвата отправляемого почтового сообщения на машине клиента. Может лучше использовать другой механизм ?
Эка ты загнул, собсна хук — это не то несколько... Хуки ловят сообщения совсем не почтовые.
Здравствуйте Hollander, Вы писали:
H>Здравствуйте arnold, Вы писали:
A>>Подскажите какой хук лучше использовать для перехвата отправляемого почтового сообщения на машине клиента. Может лучше использовать другой механизм ?
H>Эка ты загнул, собсна хук — это не то несколько... Хуки ловят сообщения совсем не почтовые.
Где бы мне такой хук найти, который за пивом бы бегал
Взойти на гору можно разными путями, но само восхождение остается неизменным.
Здравствуйте arnold, Вы писали:
A>Подскажите какой хук лучше использовать для перехвата отправляемого почтового сообщения на машине клиента. Может лучше использовать другой механизм ?
Если сообщения отправляют с толстого Outlook-a (или Exchange клиента), то для него можно написать расширение (dll), которая реализует набор интерфейсов.См. IExchExt, IExchExtCommands, IExchExtMessageEvents и т.п.
Здравствуйте Hollander, Вы писали:
H>Здравствуйте arnold, Вы писали:
A>>Подскажите какой хук лучше использовать для перехвата отправляемого почтового сообщения на машине клиента. Может лучше использовать другой механизм ?
H>Эка ты загнул, собсна хук — это не то несколько... Хуки ловят сообщения совсем не почтовые.
В общем то это понятно. Но я имел ввиду перехват сообщения типа WM_SENDMAIL.
А уже через него добратся до самой почты. Есть идеи ?
Здравствуйте tas, Вы писали:
tas>Здравствуйте arnold, Вы писали:
A>>Подскажите какой хук лучше использовать для перехвата отправляемого почтового сообщения на машине клиента. Может лучше использовать другой механизм ?
tas>Если сообщения отправляют с толстого Outlook-a (или Exchange клиента), то для него можно написать расширение (dll), которая реализует набор интерфейсов.См. IExchExt, IExchExtCommands, IExchExtMessageEvents и т.п.
Спасибо за совет, но в общем это не совсем подходит поскольку нужно перехватывать всю почту от SMTP к TCP. А некоторые программы не используют MAPI.
A>Спасибо за совет, но в общем это не совсем подходит поскольку нужно перехватывать всю почту от SMTP к TCP. А некоторые программы не используют MAPI.
Пиши сниффер тогда. Если под 2000 — хватит сокетов для этого. Иначе — нужен NDIS драйвер. Потом хватаешь все TCP пакеты, клеишь их и получаешь то, что надо...
Но это долгий процесс, имей ввиду.
Если просто для себя — поставь Ирис сниффер — он все сам сделает.
Информация к размышлению. WS2_32.DLL общается с MSAFD.DLL, а та экспортирует всего 2 функции, которые почти наверняка общаются с кольцом 0 (в W95/98 это VXD).
Здравствуйте Hollander, Вы писали:
H>Здравствуйте arnold, Вы писали:
A>>Спасибо за совет, но в общем это не совсем подходит поскольку нужно перехватывать всю почту от SMTP к TCP. А некоторые программы не используют MAPI.
H>Пиши сниффер тогда. Если под 2000 — хватит сокетов для этого. Иначе — нужен NDIS драйвер. Потом хватаешь все TCP пакеты, клеишь их и получаешь то, что надо... H>Но это долгий процесс, имей ввиду.
H>Если просто для себя — поставь Ирис сниффер — он все сам сделает.
На сколько я тебя правильно понял сниффер схватит только те пакеты, которые уже попали в сеть, а мне нужно перехватить почту до того как она перейдет от SMTP к TCP уровню вниз по стеку! Реально сети может и небыть (модем например). У меня тут родилась идея поставить хук на WS2_32.dll. Ведь по любому даже самая простая отсылалка почты пройдет через эту длл. Как думаешь прокатит ?
Здравствуйте Hollander, Вы писали:
H>Здравствуйте arnold, Вы писали:
A>> В общем то это понятно. Но я имел ввиду перехват сообщения типа WM_SENDMAIL.
H>Ну, это вряд ли. Где ты такое сообщение взял ?
A>>А уже через него добратся до самой почты. Есть идеи ?
H>А если клиент консольный — какое сообщение тогда будет ?
H>Сниффер надо, если есть Сетевой монитор — можно чз него попробовать сниффер реализовать.
H>Под 2000 такой сниффер несложно написать
Ну про сообщение WM_SENDMAIL это я к примеру сказал .
Здравствуйте arnold, Вы писали:
A>Здравствуйте Hollander, Вы писали:
H>>Здравствуйте arnold, Вы писали:
A>>>Спасибо за совет, но в общем это не совсем подходит поскольку нужно перехватывать всю почту от SMTP к TCP. А некоторые программы не используют MAPI.
H>>Пиши сниффер тогда. Если под 2000 — хватит сокетов для этого. Иначе — нужен NDIS драйвер. Потом хватаешь все TCP пакеты, клеишь их и получаешь то, что надо... H>>Но это долгий процесс, имей ввиду.
H>>Если просто для себя — поставь Ирис сниффер — он все сам сделает.
A>На сколько я тебя правильно понял сниффер схватит только те пакеты, которые уже попали в сеть, а мне нужно перехватить почту до того как она перейдет от SMTP к TCP уровню вниз по стеку! Реально сети может и небыть (модем например). У меня тут родилась идея поставить хук на WS2_32.dll. Ведь по любому даже самая простая отсылалка почты пройдет через эту длл. Как думаешь прокатит ?
Прокатит. Многие вирусы так и делали (т.е. пользователь отсылал обычное письмо, а он к нему приписывал свой аттачмент).
Здравствуйте arnold, Вы писали:
A>Здравствуйте Hollander, Вы писали:
H>>Здравствуйте arnold, Вы писали:
A>>>Спасибо за совет, но в общем это не совсем подходит поскольку нужно перехватывать всю почту от SMTP к TCP. А некоторые программы не используют MAPI.
H>>Пиши сниффер тогда. Если под 2000 — хватит сокетов для этого. Иначе — нужен NDIS драйвер. Потом хватаешь все TCP пакеты, клеишь их и получаешь то, что надо... H>>Но это долгий процесс, имей ввиду.
H>>Если просто для себя — поставь Ирис сниффер — он все сам сделает.
Ну и как, интересно, сниффером (или TDI драйвером) почту от остального траффика отличать? По номеру порта — несерьезно, по содержимому — еще смешней.
A>На сколько я тебя правильно понял сниффер схватит только те пакеты, которые уже попали в сеть, а мне нужно перехватить почту до того как она перейдет от SMTP к TCP уровню вниз по стеку! Реально сети может и небыть (модем например). У меня тут родилась идея
Да не существует никакого SMTP уровня Его каждая программа самостоятельно реализует.
A>поставить хук на WS2_32.dll. Ведь по любому даже самая простая отсылалка почты пройдет через эту длл. Как думаешь прокатит ?
С перехватом функций именно из этой dll есть кое-какие хитрости. Детали не помню, в сети на эту тему информации было навалом. А вообще-то, при очень большом желании, можно и мимо него пакеты отправлять.
Одним из 33 полных кавалеров ордена "За заслуги перед Отечеством" является Геннадий Хазанов.
Здравствуйте Sergey, Вы писали:
S>Здравствуйте arnold, Вы писали:
A>>Здравствуйте Hollander, Вы писали:
H>>>Здравствуйте arnold, Вы писали:
A>>>>Спасибо за совет, но в общем это не совсем подходит поскольку нужно перехватывать всю почту от SMTP к TCP. А некоторые программы не используют MAPI. :(
H>>>Пиши сниффер тогда. Если под 2000 — хватит сокетов для этого. Иначе — нужен NDIS драйвер. Потом хватаешь все TCP пакеты, клеишь их и получаешь то, что надо... H>>>Но это долгий процесс, имей ввиду.
H>>>Если просто для себя — поставь Ирис сниффер — он все сам сделает.
S> Ну и как, интересно, сниффером (или TDI драйвером) почту от остального траффика отличать? По номеру порта — несерьезно, по содержимому — еще смешней.
A>>На сколько я тебя правильно понял сниффер схватит только те пакеты, которые уже попали в сеть, а мне нужно перехватить почту до того как она перейдет от SMTP к TCP уровню вниз по стеку! Реально сети может и небыть (модем например). У меня тут родилась идея S> Да не существует никакого SMTP уровня :) Его каждая программа самостоятельно реализует.
A>>поставить хук на WS2_32.dll. Ведь по любому даже самая простая отсылалка почты пройдет через эту длл. Как думаешь прокатит ?
S> С перехватом функций именно из этой dll есть кое-какие хитрости. Детали не помню, в сети на эту тему информации было навалом. А вообще-то, при очень большом желании, можно и мимо него пакеты отправлять.
На счет SMTP уровня я не говорил. Я имел ввиду SMPT и TCP уровень, а не уровни. Я думаю что и новичку понятно что на самом деле имеется ввиду уровень приложений и транспортный уровень. :)
А вот тонкости с ws2_32.dll действительно есть. Там перехват не всегда возможен. Вот именно то эта тема меня и беспокоит. Хотелось бы какую нибуть доку или ссылочку если можно ?
Здравствуйте Vodka, Вы писали:
V>Здравствуйте arnold, Вы писали:
A>>Здравствуйте Hollander, Вы писали:
H>>>Здравствуйте arnold, Вы писали:
A>>>>Спасибо за совет, но в общем это не совсем подходит поскольку нужно перехватывать всю почту от SMTP к TCP. А некоторые программы не используют MAPI. :(
H>>>Пиши сниффер тогда. Если под 2000 — хватит сокетов для этого. Иначе — нужен NDIS драйвер. Потом хватаешь все TCP пакеты, клеишь их и получаешь то, что надо... H>>>Но это долгий процесс, имей ввиду.
H>>>Если просто для себя — поставь Ирис сниффер — он все сам сделает.
A>>На сколько я тебя правильно понял сниффер схватит только те пакеты, которые уже попали в сеть, а мне нужно перехватить почту до того как она перейдет от SMTP к TCP уровню вниз по стеку! Реально сети может и небыть (модем например). У меня тут родилась идея поставить хук на WS2_32.dll. Ведь по любому даже самая простая отсылалка почты пройдет через эту длл. Как думаешь прокатит ?
V>Прокатит. Многие вирусы так и делали (т.е. пользователь отсылал обычное письмо, а он к нему приписывал свой аттачмент).
Спасибо что придал уверенности. Может дока или ссылочка по теме найдется а ?
Здравствуйте, arnold, Вы писали:
A>Подскажите какой хук лучше использовать для перехвата отправляемого почтового сообщения на машине клиента. Может лучше использовать другой механизм ?