· Начало · Отвђтить · Статистика · Поиск · FAQ · Правила · Установки · Язык · Выход · WASM.RU · Noir.Ru ·

 WASM Phorum —› WASM.NETWORKS —› Ловим исходящие пакеты? RCV_ALL?

Посл.отвђт Сообщенiе


Дата: Июл 18, 2004 10:09:33

Как на winSock ловить не только все входящие но и исходящие пакеты? WSAIoctl(sock,RCV_ALL,...) ловит только все поступающие пакеты (FD_WRITE не срабатывает)


Дата: Июл 21, 2004 20:14:49

invoke WSAIoctl,
s,
SIO_RCVALL,
addr optval,
4,
0,
0,
addr dwBytesRet,
0,
0
режим Promisk все исходящие и входящие


Дата: Июл 22, 2004 09:31:36

Наконец кто хоть ответил ):-)
Да это режим promisc. mode все верно, все устанавливается без ошибок но исходящие пакеты не ловятся? optval = 1 ?
вот мой исходный код -

sock = WSASocket(AF_INET,SOCK_RAW,IPPROTO_IP,
NULL,0,WSA_FLAG_OVERLAPPED);

bind(sock,(SOCKADDR *)&addr,sizeof(addr));
//bind на свой IP адрес после выхода в инет

DWORD Optval = 1;
WSAIoctl(sock,SIO_RCVALL,&Optval,sizeof(Optval)
,0,0,&bBytesReturned,0,0);

WSAAsyncSelect(sock,hWnd,WM_ASYNC_SELECT,FD_READ);

И в мессаже FD_READ получаем только входящие пакеты?
Если ставить FD_READ|FD_WRITE тоже самое?
Хоть убей лезут тока пакеты со своим собственным dest IP


Дата: Июл 22, 2004 14:30:12

Не должны они ловиться. Если хочешь исходящие, то перехватывай send или юзай winpcap или драйвер пиши. Тема уже сто раз поднималась.


Дата: Июл 22, 2004 16:24:27

Все нормально в промиск работает вот два пакета перехваченые моим снифером (мой ИП 10.5.1.113)
E 0s@ €ñÄ
qÕã Ut Ù p@ ÇA ´E ,æš@ =c¡Õ
q ã?C Ut Ú`ÿÿ™¶ ´
(скопируй в хексе глянь) там 113 сначала в Source потом в Destination
вот кусок кода
invoke WSAIoctl,
s,
SIO_RCVALL,
addr optval,
4,
0,
0,
addr dwBytesRet,
0,
0
.if eax == SOCKET_ERROR
;Error: WSAIoctl
xor eax,eax
ret
.endif

lea edi,wbuf
cld
mov eax,PACKET_BUFFER_SIZE
stosd
lea eax,pcap_buffer
stosd
mov dwBytesRet,0
mov dwFlags,0
;Decode IP header!
;invoke DecodeIpHeader,addr wbuf
invoke CreateFile,addr File,GENERIC_WRITE,FILE_SHARE_READ,NULL,OPEN_ALWAYS,FILE_ATTRIBUTE_NOR MAL,GENERIC_READ
mov hFile,eax
invoke SetFilePointer,eax,0,addr TEMP,FILE_END
do2:
lea esi,TermThread
mov eax,[esi]
test eax,eax
jnz endthread
invoke WSARecv,
s,
addr wbuf,
1,
addr dwBytesRet,
addr dwFlags,
0,
0
.if eax == SOCKET_ERROR
;Error: WSARecv
invoke CloseHandle, hFile
xor eax,eax
ret
.endif
invoke DecodeIpHeader,addr wbuf
test eax,eax
jz do2
lea eax,wbuf
mov esi,[eax+4]
mov ah,[esi+2]
mov al,[esi+3]
and eax,0FFFFh
invoke WriteFile,hFile,addr pcap_buffer,eax,addr wb,NULL
mov eax,RecPack
inc eax
mov RecPack,eax
invoke PostMessage,handle,WM_USER,NULL,NULL
jmp do2
endthread:
mov TermThread,0
invoke CloseHandle, hFile
ret
Если вдруг не заметил то получаю пакет функцией
invoke WSARecv, s,addr wbuf,1, addr dwBytesRet,addr dwFlags,0,0
думаю теперь проблемы нет.


Дата: Июл 22, 2004 16:32:29

Да проверил копирование, текст пакетов исказился вот я набил руками
45 00 00 30 15 73 40 00 80 06 F1 C4 0A 05 01 71
D5 18 13 02 08 E3 09 1D 55 74 20 D9 00 00 00 00
70 02 40 00 C7 41 00 00 02 04 05 B4 01 01 04 02
/второй
45 00 00 2C E6 9A 40 00 3D 06 63 A1 D5 18 13 02
0A 05 01 71 09 1D 08 E3 3F 81 43 00 55 74 20 DA
60 12 FF FF 99 B6 00 00 02 04 05 B4


Дата: Июл 23, 2004 08:44:50

to kamatoz.
это код блокирующих сокетов, делал ли ты это на асинхронных сокетах? Зачем сделали месаж FD_WRITE если на него не идут сообщения вообще, по идее там должны исходящие ловиться? Какое значение optval у тебя?
Есть ли разница чем принимать между WSARecv() и recv(),
я использую recv()?


Дата: Июл 25, 2004 08:08:00

to kamatoz
Я порылся по исходникам других сайтов, их авторы также прилагали логи снифера для примера, там так же как у тебя ловятся и исходящие пакеты, запускаю их исходники у меня опять тоже самое Ж8-О только входящий трафик???????????
Может у меня в настройках INET соединения что не так? У меня winXP в нет выход по сотику.


Дата: Июл 25, 2004 18:40:41

Хоч давай маил пришлю исполнимый. ТАм решишь в чем косяк.
На счет инета, исходящие пакет все равно идут у тебя как входящие. Только, как мне кажется, Сотик конектится через USB а сокеты вроде как для Сетевой, хотя я могу и ошибаться. Асинхронные сокеты я пока не юзал. у меня mov optval,1. На счет recv она работает похоже по другому - в ws2_32 объявлена без ссылки на wsarecv. Попробуй именно Wsarecv.


Дата: Июл 26, 2004 08:48:06

да у сотика встроенный модем, подключается через USB. Запускал я и чужие исходники с синхронными сокетами и с WSArecv() (optval=1 у всех везде) все тоже самое только входящий трафик (в чужих логах вместе с исходниками у них все нормально весь трафик!). Ж8-О
Мож этот режим только работает если есть сетевая карта? у меня ее нет, или значения optval надо ставить другие?
В логе winXP pfirewall.log все наоборот только исходящие пакеты и соединения?, входящие регистрируются только DROP пакеты (отброшенные)!


Дата: Июл 26, 2004 15:38:10

Да наверно, режим промиск присутствует только у сетевой карты. А от компаний разработчиков не пробовал ставить сниферы ( типа Iris)??? У тебя похоже надо на уровне драйверов с пакетами работать - типа picap что то надо...


Дата: Июл 26, 2004 17:25:01

Прав был Hello_world буду wincap и тому подобное пытаться юзать. Готовые снифферы от разработчиков могут и не только трафик перехватывать а и ченибуть у тебя самого стырить :-[], я берусь только за исходники.


Дата: Июл 26, 2004 17:51:22

Он был не прав на счет сетевой))


Дата: Июл 27, 2004 22:42:23

Забыл сказать... у меня модем
kamatoz
Покажи код


Дата: Июл 28, 2004 17:20:25

Лажу исходник и исполнимый но у меня сетевая карта!!!
вобщем он сырой фильтр не сделан руки еще не дошли.
исходник в .bat

1609757791__snifer.rar


Powered by miniBB 1.6 © 2001-2002
Время загрузки страницы (сек.): 0.051