1、打开菜单项“Capture”下的子菜单“CaptureOptions”选项;2、找到设置面板中有一项“Captureallinpromiscuousmode”选项;3、“Captureallinpromiscuousmode”选项默认是选中状态,修改该状态为未选中状态;4、开始抓包。原理分析:1)在
网络中,
混杂模态允许一个网络装置窃听而且阅读抵达的每个网络包。这个运行模式有时在网络侦听服务器上运行,用来捕获及保存所有的
数据包,以便分析。(比如,对于监听网络使用情况);2)在一个以太区域网络(LAN)中,混杂模态是指被传输的每个数据小包都能被一个网络转接器接到而且阅读的 *** 作模式。混杂模态必须被每个网络转接器支持,也必须被主机 *** 作系统的输入/输出驱动器支持。混杂模态时常用来监督网络使用率。3)混杂模态是和非混杂模态相对的。当一个数据小包在非混杂模态传输时候,所有的区域网络装置“听到”数据并且判断被包含在数据小包之中的网络位址是否是他们的。如果它不是,数据小包进入下一个区域网络装置,直到到达具有正确网络位址的装置。然后那个装置接收而且读取数据;4)在WinXP下大部分无线网卡不支持混杂模式,支持混杂模式的无限网卡价格不菲。你用SOCK_RAW的模式建立原始套接字然后接收包。
剩下的就全是分析内容的事情了。。。。最多再用一下多线程。
用到linux下socket编程的最基本知识, 以及对网络协议细节的了解。 前者随便找本socket编程的书就很详细了, 后者你因该懂。
——————
例如, 你需要include以下这些头:
stdio.h,stdlib.h, unistd.h, sys/socket.h, sys/types.h, netinet/if_ether.h, netinet/in.h,
然后建立socket的时候用
socket(PF_PACKET,SOCK_RAW,htons(ETH_P_IP)),这样就能用这个socket来监听以太网的包。
然后循环调用recvfrom函数来听这个socket的接受到的数据, 再分析就好了。
如果要嗅探别人机器的包, 就要用ARP欺骗了。。呵呵
评论列表(0条)