论坛: 编程破解 标题: 关于sniffer 复制本贴地址    
作者: ilovepeace [ilovepeace]    论坛用户   登录
想在win下写个sniffer,但win下好象没有ifreq结构,怎样设置网卡为混杂模式呢?多谢赐教!

地主 发表时间: 08/29 11:45

回复: 286 [unique]   版主   登录
使用SOCK_RAW

B1层 发表时间: 08/29 12:08

回复: ilovepeace [ilovepeace]   论坛用户   登录
应该和套接字无关啊?斑竹能说详细点吗?多谢!

B2层 发表时间: 08/29 18:13

回复: 286 [unique]   版主   登录
Windows下好象没有设置网卡为混杂模式的命令。如果想设可能要到NIS网卡驱动一级。windows 98下可采用vxd,windows 2000下可以WMD技术。
不过可以通过原始套接字接收基于TCP/IP的数据包。

B3层 发表时间: 08/29 21:14

回复: ejdm [ejdm]   论坛用户   登录
// 创建RAW SOCKET
SOCKET nSockRaw = socket(AF_INET , SOCK_RAW , IPPROTO_RAW);
SOCKADDR_IN sa;
sa.sin_family = AF_INET;
sa.sin_port = htons(7000);
sa.sin_addr.s_addr = inet_addr(szSrcAddr);
bind(nSockRaw, (PSOCKADDR)&sa, sizeof(sa));

// 设置接收所有数据报(混杂模式)
DWORD dwBufferLen[10] ;
DWORD dwBufferInLen = 1 ;
DWORD dwBytesReturned = 0 ;
WSAIoctl(nSockRaw, SIO_RCVALL, &dwBufferInLen, sizeof(dwBufferInLen),             
        &dwBufferLen, sizeof(dwBufferLen), &dwBytesReturned, NULL, NULL);

// 接收数据报
char RecvBuf[MAX_PACK_LEN] = {0};
recv(nSockRaw, RecvBuf, sizeof(RecvBuf), 0);

别的地方看到的,不知是不是你所需要的。

B4层 发表时间: 08/31 13:53

回复: ricky [ricky]   版主   登录
有现成的dll函数,好像是pocket.dll,你在网上查查,我不记得了

B5层 发表时间: 09/01 09:11

回复: ilovepeace [ilovepeace]   论坛用户   登录
多谢多谢!

B6层 发表时间: 09/01 09:24

回复: ilovepeace [ilovepeace]   论坛用户   登录
刚才在vc6.0+win2000平台下试了一下,参数SIO_RCVALL没通过:
error C2065: 'SIO_RCVALL' : undeclared identifier
头文件<winsock2.h>已经引入,不得其解,再次求救!

B7层 发表时间: 09/01 11:54

论坛: 编程破解

20CN网络安全小组版权所有
Copyright © 2000-2010 20CN Security Group. All Rights Reserved.
论坛程序编写:NetDemon

粤ICP备05087286号