Как сделать перехват, модификацию и перенаправление пакетов?
От: -DDMZ-  
Дата: 18.11.07 20:10
Оценка:
Начнем с того что я прогуглил весь день, и прогуглил данный форум но ответов ненашел...

Перехват с помощю хуков неподходит, хотя этот метод и позволяет изменять пакеты. Пытаюсь сделать подобие прозрачного прокси под виндовс.
Разобрал вдоль и поперек вариант снифера использующего SIO_RCVALL и RAWSOCKET, это позволило сделать перехват пакетов. Но я так и непонял каким образом можно с помощю этого метода изменить пакет, т.е. изменить его содержимое или изменить порт с адресом...
Отсюда вопросы:
1. Как убить перехваченый пакет? — т.е. снифер получил пакет, проанализировал, и принял решение что этот пакет недолжен дойти до места назначения...
2. Как модифицироват перехваченый пакет? — т.е. снифер получил пакет, проанализировал, и модифицировал содержимое после чего пакет в модифицированном виде отправляется к месту назначения. Я предпологаю(незнаю и неутверждаю) что это реализуется так: снифер перехватывает пакет, убивает, модифицирует и самостоятельно отправляет дальше. Либо наверное читает его не удаляя со стека как обычный снифер, и потом прям в стеке модифицирует, после чего пакет продолжает свое движение...
3. Как перенаправить перехваченый пакет? — т.е. изменить например адрес назначения пакета. Предпологаю что реализуется как и модификация, но навсякий случай интересуюсь.
4. Каким образом Traffic Compressor может так лихо перехватывать пакеты? — т.е. посути является прозрачным прокси, и пропускает все пакеты через себя...
Re: Как сделать перехват, модификацию и перенаправление паке
От: Аноним  
Дата: 19.11.07 00:11
Оценка:
raw сокетами — никак.
а решение зависит от того какие именно пакеты хочется модифицировать и куда перенаправлять.
Re[2]: Как сделать перехват, модификацию и перенаправление п
От: -DDMZ-  
Дата: 19.11.07 03:56
Оценка:
А>а решение зависит от того какие именно пакеты хочется модифицировать
Пакеты только TCP/IP, ну и если возможно то с UDP (но необязательно) ... А ICMP (ping) — поддаётся модификации/перенаправлению?
A>и куда перенаправлять.
Перенаправление на другой порт, который программа посчитает более правельным. Либо вообще убить пакет если он непонравился...
Re: Как сделать перехват, модификацию и перенаправление паке
От: -DDMZ-  
Дата: 21.11.07 14:03
Оценка:
Ладно моежете неотвчать на вопросы с 2-4...
Скажите пожалуйста только:
DDM>1. Как убить перехваченый пакет? — т.е. снифер получил пакет, проанализировал, и принял решение что этот пакет недолжен дойти до места назначения...
Желательно без использования всяких там сторонних Pcap...
Re[2]: TarasCo, где же вы?! =)
От: Unmanaged Россия ICQ 476611995
Дата: 21.11.07 14:06
Оценка:
DDM>Ладно моежете неотвчать на вопросы с 2-4...
DDM>Скажите пожалуйста только:
DDM>>1. Как убить перехваченый пакет? — т.е. снифер получил пакет, проанализировал, и принял решение что этот пакет недолжен дойти до места назначения...
DDM>Желательно без использования всяких там сторонних Pcap...

Только вы можете по 101'му разу ответить на эти вопросы.
Только у вас хватит на это терпения.

STATUS_INVALID_DEVICE_REQUEST
Re: Как сделать перехват, модификацию и перенаправление паке
От: vortex Украина  
Дата: 22.11.07 08:00
Оценка:
Пишем или берём готовый NDIS IM драйвер
Re: Как сделать перехват, модификацию и перенаправление паке
От: shurik.  
Дата: 27.11.07 15:15
Оценка:
Здравствуйте, -DDMZ-, Вы писали:

DDM>...


я в этом не силён, но вроде исчерпывающего ответа нету, так что добавлю свои пять копеек

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

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

кстати, похоже то
Layered Service Provider

A Layered Service Provider (LSP) is a feature of the Microsoft Windows Winsock 2 Service Provider Interface (SPI). A Layered Service Provider is a DLL that uses Winsock APIs to insert itself into the TCP/IP stack. Once in the stack, a Layered Service Provider can intercept and modify inbound and outbound Internet traffic



ps. реализация самому дело долгое и душное. но видел заглушки (исходники длл тупо перенаправляющей трафик дальше, ну и в ней можно в нужных функциях сделать что нужно
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.