То что использовать RAW сокеты для фильтрации гиблое дело я понял, спасибо, и успел на практике уббедится . Но тогда возникает вопрос: где разместить приложение чтобы эти пакеты ловить? В принципе я догадываюсь, что сразу после сетевых драйверов, но все же есть надежда, что можно хотя бы чуть=чуть повыше. Тут же возникает и вопрос о том кому драйверы сетевухи эти пакеты отдают. В Linuxe вроде понятно — inetd. А в винде? какой службе? Без работы в режиме ядра наверное не обойтись? — очень не хотелось бы, чето я их не люблю отлаживать , BSOD иногда в кошмарах снится. Може кто даст ссылочку на кусочек кода (работающего) или хотяб основную линию работы наметит. thx заранее
Здравствуйте, skinny, Вы писали:
S>То что использовать RAW сокеты для фильтрации гиблое дело я понял, спасибо, и успел на практике уббедится . Но тогда возникает вопрос: где разместить приложение чтобы эти пакеты ловить? В принципе я догадываюсь, что сразу после сетевых драйверов, но все же есть надежда, что можно хотя бы чуть=чуть повыше. Тут же возникает и вопрос о том кому драйверы сетевухи эти пакеты отдают. В Linuxe вроде понятно — inetd. А в винде? какой службе? Без работы в режиме ядра наверное не обойтись? — очень не хотелось бы, чето я их не люблю отлаживать , BSOD иногда в кошмарах снится. Може кто даст ссылочку на кусочек кода (работающего) или хотяб основную линию работы наметит. thx заранее
AFAIK обычно делают перехват вызовов send, recv, connect и т.д. методами, изложенными например у Рихтера.
Здравствуйте, skinny, Вы писали:
S>То что использовать RAW сокеты для фильтрации гиблое дело я понял, спасибо, и успел на практике уббедится . Но тогда возникает вопрос: где разместить приложение чтобы эти пакеты ловить? В принципе я догадываюсь, что сразу после сетевых драйверов, но все же есть надежда, что можно хотя бы чуть=чуть повыше. Тут же возникает и вопрос о том кому драйверы сетевухи эти пакеты отдают. В Linuxe вроде понятно — inetd. А в винде?
Хм..inetd вообще-то не драйвер..
S> какой службе? Без работы в режиме ядра наверное не обойтись? — очень не хотелось бы, чето я их не люблю отлаживать , BSOD иногда в кошмарах снится. Може кто даст ссылочку на кусочек кода (работающего) или хотяб основную линию работы наметит. thx заранее
Почитайте тему: Перехват EMAIL и анализ POP3 протокола на уровне TCP/IP
Здравствуйте, butcher, Вы писали:
B>Здравствуйте, skinny, Вы писали:
S>>То что использовать RAW сокеты для фильтрации гиблое дело я понял, спасибо, и успел на практике уббедится . Но тогда возникает вопрос: где разместить приложение чтобы эти пакеты ловить? В принципе я догадываюсь, что сразу после сетевых драйверов, но все же есть надежда, что можно хотя бы чуть=чуть повыше. Тут же возникает и вопрос о том кому драйверы сетевухи эти пакеты отдают. В Linuxe вроде понятно — inetd. А в винде? B>Хм..inetd вообще-то не драйвер..
S>> какой службе? Без работы в режиме ядра наверное не обойтись? — очень не хотелось бы, чето я их не люблю отлаживать , BSOD иногда в кошмарах снится. Може кто даст ссылочку на кусочек кода (работающего) или хотяб основную линию работы наметит. thx заранее B>Почитайте тему: Перехват EMAIL и анализ POP3 протокола на уровне TCP/IP
Здравствуйте, butcher, Вы писали:
B>Здравствуйте, skinny, Вы писали:
S>>То что использовать RAW сокеты для фильтрации гиблое дело я понял, спасибо, и успел на практике уббедится . Но тогда возникает вопрос: где разместить приложение чтобы эти пакеты ловить? В принципе я догадываюсь, что сразу после сетевых драйверов, но все же есть надежда, что можно хотя бы чуть=чуть повыше. Тут же возникает и вопрос о том кому драйверы сетевухи эти пакеты отдают. В Linuxe вроде понятно — inetd. А в винде? B>Хм..inetd вообще-то не драйвер..
S>> какой службе? Без работы в режиме ядра наверное не обойтись? — очень не хотелось бы, чето я их не люблю отлаживать , BSOD иногда в кошмарах снится. Може кто даст ссылочку на кусочек кода (работающего) или хотяб основную линию работы наметит. thx заранее B>Почитайте тему: Перехват EMAIL и анализ POP3 протокола на уровне TCP/IP
, там много интересных рассуждений, что для чего, где и как..
спасибо за ссылочку, но к сожалению ничего утешающего для себя я там не обнаружил, похоже опять все закончится режимом ядра . Единственная надежда моя это pcap, можнт хоть он поможет?
, там много интересных рассуждений, что для чего, где и как.. S>спасибо за ссылочку, но к сожалению ничего утешающего для себя я там не обнаружил, похоже опять все закончится режимом ядра . Единственная надежда моя это pcap, можнт хоть он поможет?
Ловить пакеты он может, но с фильтрацией не поможет.
Здравствуйте, skinny, Вы писали:
S>thx я ваще-то в курсе что inetd не драйвер. Просто интересно, он ведь от сетевых драйверов пакеты получает?
процитирую комментарий в её исходниках:
/*
* Inetd - Internet super-server
*
* This program invokes all internet services as needed. Connection-oriented
* services are invoked each time a connection is made, by creating a process.
* This process is passed the connection as file descriptor 0 and is expected
* to do a getpeername to find out the source host and port...
*/
принцип его работы такой: он слушает порты для необходимых сервисов, и когда туда кто-то обращается, он запускает программу, отвечающую за работу этого сервиса и передаёт ей дескрипторы ввода/вывода. Для работы с ним программа должна быть написана соответсвующим образом, т.е. не каждая программа может работать через inetd. А сам он работает обычным образом, через сокеты. Но в UNIX'ах сокеты более функциональны, чем в виндах. Например, в BSD netgraph сокеты могут работать в режиме ядра и с их помощью можно делать оочень много..
S>>Единственная надежда моя это pcap, можнт хоть он поможет? B>Ловить пакеты он может, но с фильтрацией не поможет.
Напрасно вы так говорите. Вот цитата:
Libpcap offers rich support for Berkeley Packet Filter (BPF) filter programs.
BPF packet filtering offers a powerful language for specifying packet filters
across libpcap descriptors.
Подробности здесь — http://www.tcpdump.org/pcap3_man.html
Здравствуйте, fefelov, Вы писали:
S>>>Единственная надежда моя это pcap, можнт хоть он поможет? B>>Ловить пакеты он может, но с фильтрацией не поможет. F>Напрасно вы так говорите. Вот цитата: F>Libpcap offers rich support for Berkeley Packet Filter (BPF) filter programs. F>BPF packet filtering offers a powerful language for specifying packet filters F>across libpcap descriptors.
Если бы вы внмательнее прочитали, то поняли бы что BPF не имее никакого отношения к поставленному вопросу. BPF используется для составления "фильтров" по которым происходит захват пакетов. Т.е. другими словами pcap будет захватывать только те пакеты, которые соответсвуют "маске", заданной в BPF программе. Фильтровать траффик для приложений, работающих на верхнем уровне PCAP не сможет.
Нет ничего невозможного..
Re[6]: где ловить пакеты?
От:
Аноним
Дата:
30.11.04 08:48
Оценка:
B>Если бы вы внмательнее прочитали
[o]mea culpa[/o]
Re[7]: где ловить пакеты?
От:
Аноним
Дата:
30.11.04 08:53
Оценка:
Здравствуйте, Аноним, Вы писали:
B>>Если бы вы внмательнее прочитали А>[o]mea culpa![/o]
, там много интересных рассуждений, что для чего, где и как.. S>>спасибо за ссылочку, но к сожалению ничего утешающего для себя я там не обнаружил, похоже опять все закончится режимом ядра . Единственная надежда моя это pcap, можнт хоть он поможет? B>Ловить пакеты он может, но с фильтрацией не поможет.
ловить пакеты — в смысле просто прочитать? или удалить, задержать и т.п. тоже можно? мне в общем то не обязательно их фильтровать при помощи pcap, фильтрацию я и сам напишу (или я вас не так понял?), да, и по поводу вашего ответа по этой же теме — фильтровать траффик для приложений верхнего уровня pcap не сможет — получается если наверху кто-то работает на каком-то порту то по этому порту pcap пакеты уже не перехватит? (или я опять туплю? и вообще, pcap с чем работает? — с кадрами eth, IP пакетами или TCP\UDP фреймами)
Здравствуйте, skinny, Вы писали:
B>>Ловить пакеты он может, но с фильтрацией не поможет. S>ловить пакеты — в смысле просто прочитать?
Именно.
S>или удалить, задержать и т.п. тоже можно?
Нельзя.
S>мне в общем то не обязательно их фильтровать при помощи pcap, фильтрацию я и сам напишу (или я вас не так понял?),
Ваша фильтрация будет гораздо медленнее фильтра BPF.
S>да, и по поводу вашего ответа по этой же теме — фильтровать траффик для приложений верхнего уровня pcap не сможет — получается если наверху кто-то работает на каком-то порту то по этому порту pcap пакеты уже не перехватит? (или я опять туплю? и вообще, pcap с чем работает? — с кадрами eth, IP пакетами или TCP\UDP фреймами)
Видимо опять..
Он работает с Ethernet кадрами.
Здравствуйте, butcher, Вы писали:
B>Здравствуйте, skinny, Вы писали:
B>>>Ловить пакеты он может, но с фильтрацией не поможет. S>>ловить пакеты — в смысле просто прочитать? B>Именно.
S>>или удалить, задержать и т.п. тоже можно? B>Нельзя.
S>>мне в общем то не обязательно их фильтровать при помощи pcap, фильтрацию я и сам напишу (или я вас не так понял?), B>Ваша фильтрация будет гораздо медленнее фильтра BPF.
S>>да, и по поводу вашего ответа по этой же теме — фильтровать траффик для приложений верхнего уровня pcap не сможет — получается если наверху кто-то работает на каком-то порту то по этому порту pcap пакеты уже не перехватит? (или я опять туплю? и вообще, pcap с чем работает? — с кадрами eth, IP пакетами или TCP\UDP фреймами) B>Видимо опять.. B>Он работает с Ethernet кадрами.
aAaaAaA все пропало! ето мене видимо придется теперь send и recv перехватывать?
>драйверы сетевухи эти пакеты отдают. В Linuxe вроде понятно — inetd. А в винде? какой
службе? Без работы в режиме ядра наверное не обойтись? — очень не хотелось бы, чето я их
Да. Под виндами правильное место — NDIS IM драйвер.
Здравствуйте, Maxim S. Shatskih, Вы писали:
MSS>Да. Под виндами правильное место — NDIS IM драйвер.
Раз уж пошла такая пьянка...
Не подскажете, где под Windows место примочке, которая должна уметь ловить Ethernet-кадры и отправлять их дальше, подменяя MAC-адрес назначения?
Или для такой задачи лучше/удобнее/практичнее использовать другую операционную систему?
Здравствуйте, Michael Chelnokov, Вы писали:
MSS>>Да. Под виндами правильное место — NDIS IM драйвер.
MC>Не подскажете, где под Windows место примочке, которая должна уметь ловить Ethernet-кадры и отправлять их дальше, подменяя MAC-адрес назначения? MC>Или для такой задачи лучше/удобнее/практичнее использовать другую операционную систему?
Здравствуйте, butcher, Вы писали:
B>Здравствуйте, Michael Chelnokov, Вы писали:
MSS>>>Да. Под виндами правильное место — NDIS IM драйвер.
MC>>Не подскажете, где под Windows место примочке, которая должна уметь ловить Ethernet-кадры и отправлять их дальше, подменяя MAC-адрес назначения? MC>>Или для такой задачи лучше/удобнее/практичнее использовать другую операционную систему?
B>Там же
Здравствуйте, skinny, Вы писали:
S>Здравствуйте, butcher, Вы писали:
B>>Здравствуйте, Michael Chelnokov, Вы писали:
MSS>>>>Да. Под виндами правильное место — NDIS IM драйвер.
MC>>>Не подскажете, где под Windows место примочке, которая должна уметь ловить Ethernet-кадры и отправлять их дальше, подменяя MAC-адрес назначения? MC>>>Или для такой задачи лучше/удобнее/практичнее использовать другую операционную систему?
B>>Там же
S>а в линухе то где ?