| 网管联盟 | 网管论坛 | 网管u家 | 网管博客 | 网管软件 | 网管求职 | 小游戏 | 网管搜索 | 网管原创 | 网管聚合 | 网管读摘 | 网管焦点 | 世界素材 | 会员投稿 | 会员中心 |
![]() |
| Windows Linux Cisco 网络技术 数据库 黑客攻防 DotNet Java PHP 认证 新闻资讯 服务器 存储资讯 网络设备 网管学堂 技术专题 焦点 网吧频道 |
中国网管联盟bitsCN.com
图一、sniffer程序界面效果图
网管u家u.bitsCN.com
| int WSAIoctl ( SOCKET s, DWORD dwIoControlCode, LPVOID lpvInBuffer, DWORD cbInBuffer, LPVOID lpvOUTBuffer, DWORD cbOUTBuffer, LPDWORD lpcbBytesReturned, LPWSAOVERLAPPED lpOverlapped, LPWSAOVERLAPPED_COMPLETION_ROUTINE lpCompletionROUTINE ); |
该函数共有九个参数,第一个参数s是套接字描述符;第二个参数是I/O控制命令,有很多个命令可供选择,但在我们的程序中将只使用SIO_RCVALL 命令。第三、第四个参数是对输入参数进行了描述。第五、第六个参数用于自调用返回的任何数据。第七个参数对应于实际返回的字节数。最后两个参数是 lpOverlapped和lpCompletionROUTINE,在随重叠I/O调用这个函数时使用。在我们的程序中将其设置为NULL。 网管论坛bbs_bitsCN_com
通过这个函数我们可以将网卡设置为混杂模式,并允许指定的套接字接收网络上的所有IP数据包。解决了网卡混杂模式设置的问题,下面我们就可以做一个实际的 Sniffer,毕竟只有通过亲自动手写程序你才能够真正理解Sniffer。在这个例子中,我们将只捕捉用户名和密码,如果抓到密码的话,就在屏幕上面打印出来,同时还输出源计算机和目的计算机的IP地址,至于其他的信息我们则进行简单的抛弃而不做任何处理。
|
0
|
评论加载中…