Поиск  Пользователи  Правила 
Закрыть
Логин:
Пароль:
Забыли свой пароль?
Войти
 
Страницы: Пред. 1 2
RSS
RAW-сокеты в Винде. Возможно ли это?
 
Вот что имеем:
Если компилировать на VC.NET - ошибка 10004. Причём твой exe-шник говорит тоже самое.
Если компилировать Борландом - ошибка 10049.

10004 - опеация блокирующая процесс прервана с помощью
WSACancelBlockingCall.

10049 - не верный адрес. В хелпе по Винсоку2 написано что можт возникать при бинде на "address that is not valid for the local machine" или при коннекте на "address or port that is not valid for a remote machine (e.g. port 0)"
Порт соит вполне разумный - 53, IP-шники реально существуют. Но пакет даже в сетку не уходит - снифер ничего не видит.

Я вот что подумал, у нас в локалке DHCP-сервер, может это как-то влияет? Или винда из-за неправильно сформированного пакета не может определить МАК-адрес dest'a?
8-(
 
У меня работает, пакет уходит

C:\My Projects\TEST\rawsock\Debug>rawsock.exe
193.194.195.1

C:\My Projects\TEST\rawsock\Debug>

DHCP никак не влияет, тк он только раздает ипы в локалке. Пакет идет на IP не в локалке, поэтому уходит на дефолт гейт так что ни о каком маке тут речи не идет. Имхо проблема - в отсутвии дефолт гейта в роутах. Как вариант можешь попробовать прописать _кажое_поле_ в IP заголовке.
 
А как реализовать что то подобное, но с UDP? Мне бы подмену src_ip ...
 
конструкторов "сырых пакетов" не так уж и мало. А если надо сконструировать именно программно - библиотека winpcap в этом поможет. Да и сам сайт www.winpcap.org имеет полезную информацию по этому делу :)
"Красота - как специи, которые хорошую еду делают ещё вкуснее, а без еды есть невозможно."
 
В Windows, начиная с XP SP2 (если память мне не изменяет), отправка через "сырые" сокеты возможна только в случае наличия прав администратора и отключеном Windows Firewall. Если требуется более универсальное решение - то, как уже сказанно выше, можно использовать WinPCAP. Ограничение - не работает на интерфейсах 802.11. В этом случае - писать свой NDIS-драйвер :)
 
В WinXP sp2 через сырые сокеты можно: просматривать входящие пакеты (программа-сниффер), отправлять вручную собранные udp пакеты с корректным адресом отправителя. Tcp-пакеты отправить через raw-сокеты нельзя. А ещё вроде видел где-то пример icmp echo (ping) через raw сокеты - вроде рабочий.

По udp: исходник на delphi http://www.delphisources.ru/pages/faq/base/send_raw_api_packages.html
Рассчитан на windows 2000.
 
А почему только с корректным адресом? У меня SP2 и я спокойно отправляю спуффером UPD дейтграмму с изменённым src ip
 
Спокойно отправляете с некорректным адресом? Хм. Честно говоря с трудом вериться..(хотя всё может быть , например винда продвинутая какая-нить или совсем пиратская :)) ). Я вот со своей винды так делать не могу. Можно ли привести исходник (если не тот который я предлагал выше)? Вы проверяете значение, которое возвращает sendto? На всех компах c WinXP sp2 где я ещё в своё время пробовал возвращалось "sendto() failed: 10004" при попытке спуффинга. На Win 2000 всё работает.
 
Цитата
offtopic пишет:
WinPCAP. Ограничение - не работает на интерфейсах 802.11
Для этой цели есть его сотоварищ: AirPcap


Цитата
Soldier of Fortune пишет:
Tcp-пакеты отправить через raw-сокеты нельзя.
Я думаю, через winpcap это всё же возможно!
"Красота - как специи, которые хорошую еду делают ещё вкуснее, а без еды есть невозможно."
 
Цитата
Shanker пишет:
Для этой цели есть его сотоварищ: AirPcap

К великому горю - airpcap - это железка. А не только драйвер.
 
Shanker, а какое отношение winpcap имеет к raw сокетам winsock? 2 разные вещи. winpcap - есть ndis драйвер и интерфейс к нему от сторонних разработчиков.
 
Soldier of Fortune,
Тема называется: "RAW-сокеты в Винде". Пользователь, что создавал тему - спрашивал про winsock. Но arminvanburren этого уточнения не делал. Так что, возможно, ему именно на winsock не требуется

Цитата
offtopic пишет:
К великому горю - airpcap - это железка. А не только драйвер.
Да, это верно. В линухе с этим попроще, как ты знаешь... Может, и под винду такие перекомпилированные дрова есть, хотя я не встречал...
"Красота - как специи, которые хорошую еду делают ещё вкуснее, а без еды есть невозможно."
 
Soldier of Fortune,
Приветик, давно не виделись...
Смотрю ну и заварушка у вас здесь  :)
А как по поводу твоих исследований, помнишь тему. Правда на TDI, но впринципе и на NDIS можно было попытаться...
 
Случайно попалась на глаза статья в Хакере за январь этого года...
Называется "Сырость не радость" или "Реализация сырых сокетов в WINNT"...
Журнал
 
Нет, уровень TDI для этого не подходит... Для фильтрации, перехвата пакетов - самое-то, но не для отправки. Нужно писать через NDIS. Но Ndis protocol driver уже реализован в winpcap, поэтому и не предлагал, да и сложновато это для новичка...
 
Цитата
Soldier of Fortune пишет:
Нет, уровень TDI для этого не подходит... Для фильтрации, перехвата пакетов - самое-то
ну да...
Цитата
Soldier of Fortune пишет:
но не для отправки
точно  :)  :)  :)  скосячил, сорри...
Страницы: Пред. 1 2
Читают тему