![]() |
|
Модераторы: Snowy, Poseidon, MetalFan |
![]()
|
|
| xVirus |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 18 Регистрация: 24.10.2006 Репутация: нет Всего: нет |
Всем привет.Не могли бы мне помочь?
Проблема следующего плана.Есть игрушка,в которую хотим порубится с народом из локалки.Этому мешает то,что игра видит локальные сервера в пределах одной подсети,а этих самых подсетей у нас штук 5-6,и в каждой немного геймеров есть.У меня возникла идея написать программку,которая перехватывала бы широковещательные запросы игры,и перенаправляла их к конкретно заданному в данный момент серверу,в другую подсеть. Собственно проблема: перехват запросов я сумел реализовать через RAW-сокеты,простым сниффингом трафика.Но не могу сделать отправку данных.Тоесть программа получает пакет,меняет в нем адрес назначения,и пытается отправить в сеть функцией send.Но функция в любом случае возвращает -1.Помогите как говорится кто чем может.Пожалуйста Исходник программы:
|
|||
|
||||
| drkot |
|
|||
![]() Ищущий ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1042 Регистрация: 5.5.2006 Репутация: 0 Всего: 8 |
А почему контрольная сумма в ноль устанавливается.
-------------------- Ошибка не становится истиной по причине широкого распространения, как и Истина не становится Ошибкой из-за того, что никто её не видит. |
|||
|
||||
| xVirus |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 18 Регистрация: 24.10.2006 Репутация: нет Всего: нет |
Она устанавливается в ноль,потому что при этом ОС сама за нас должна подсчитать ее(во всяком случае так утверждает парочка статей)
Если это не так,буду признателен за обьяснение,как ее высчитывать. |
|||
|
||||
| drkot |
|
|||
![]() Ищущий ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1042 Регистрация: 5.5.2006 Репутация: 0 Всего: 8 |
В том ракурсе что пакет без контрольной суммы вобже не отправится
Добавлено @ 13:53
на форуме была ветка по расчету CRC в сетевых пакетах. попробую найти. Насколько я понимаю RAW передает то что в него затолкали. типа прямой записи в устройство и ответственность за формирование пакета лежит полностью на программисте. -------------------- Ошибка не становится истиной по причине широкого распространения, как и Истина не становится Ошибкой из-за того, что никто её не видит. |
|||
|
||||
| drkot |
|
|||
![]() Ищущий ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1042 Регистрация: 5.5.2006 Репутация: 0 Всего: 8 |
Кстати пришла идея
Пакетики недоходят в соседние сегменты по причине маленького значения TTL (1) для широковещательных пакетов так что можно в настройках винды поправить. -------------------- Ошибка не становится истиной по причине широкого распространения, как и Истина не становится Ошибкой из-за того, что никто её не видит. |
|||
|
||||
| drkot |
|
|||
![]() Ищущий ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1042 Регистрация: 5.5.2006 Репутация: 0 Всего: 8 |
-------------------- Ошибка не становится истиной по причине широкого распространения, как и Истина не становится Ошибкой из-за того, что никто её не видит. |
|||
|
||||
| xVirus |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 18 Регистрация: 24.10.2006 Репутация: нет Всего: нет |
У нас TTL нормальный.Все дело в том,что наш провайдер отсекает на роутере широковещательные пакеты,не пропуская их в соседние сегменты,для снижения общей нагрузки на сеть.За ссылку спасибо,попробую разобраться. |
|||
|
||||
| drkot |
|
|||
![]() Ищущий ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1042 Регистрация: 5.5.2006 Репутация: 0 Всего: 8 |
Я поюзал твой исходник и выяснил, что отлавливаются далко не все пакеты приходящие на сетевуху. Восновном игнорируются широковещательные, но не всегда. Соединения инициированный локально ловит четко.
Чем вызвано игнорирование некоторых пакетов? (я закономерности не нашел). Добавлено @ 15:14 А вот процедура для расчета контрольной суммы взял здесь
-------------------- Ошибка не становится истиной по причине широкого распространения, как и Истина не становится Ошибкой из-за того, что никто её не видит. |
|||
|
||||
| xVirus |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 18 Регистрация: 24.10.2006 Репутация: нет Всего: нет |
Чем вызвано игнорирование незнаю,но для моих задач вполне подходит,т.к. мне нужно отлавливать именно исходящие udp пакеты.
Возможно т.к. используются RAW-сокеты,то не отлавливаются пакеты как говорится non-IP протоколов. За функцию спасибо,как проверю,отпишусь о результатах. |
|||
|
||||
| FF90h |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 72 Регистрация: 1.7.2006 Где: Планета Земля Репутация: нет Всего: 1 |
Можно с винпкапом провернуть, для удобства можно использовать компоненты Magneta.. с отсылкой пакетов и crc могу помочь.
|
|||
|
||||
![]()
|
| Правила форума "Delphi: Сети" | |
|
|
Запрещено: 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делится вскрытыми компонентами
Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Snowy, Poseidon, MetalFan. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Delphi: Сети | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |