rotocol ::: %d\n",ip->ip_protocol); <br/> /*显示协议类型,6是TCP,17是UDP*/ <br/> tcp=(struct tcp *)(buffer + (4*ip->ip_iplength)); <br/> /*上面这名需要详细解释一下,因为接收的包头数据中,IP头的大小是固定的4字节*/ <br/> /*所以我用IP长度乘以4,指向TCP头部分*/ <br/> printf("Source port ::: %d\n",ntohs(tcp->tcp_source_port); /*显示出端口*/ <br/> printf("Dest prot ::: %d\n",ntohs(tcp->tcp_dest_port));/*显示出目标端口*/ </p><p> 以上这个C程序是为了说明Sniffer的接收原理而列举的一个最简单的例子,它只是完成了Sniffer的接收功能,在运行它之前,我们还需要手工把同卡设为混杂模式,在root权限下用如下命令设置: ifconfig eth0 promisc 假设etho是你的以太网设备接口,然后运行编译好的程序,就可以看到接收的数据包了。 <br/> 这个程序虽然简单,但是它说明了Sniffer的基本原理,就是先把同卡设备设为混杂模式,然后直接接收IP层的数据。 <br/> 当然这个程序的功能也太简单,只能显示源地址、目标地址和源端口、目标端口等极为简单的信息,这对于黑客来说是没有什么用处的,黑客要的是密码之类的信息,这可以使用一些免费的Sniffer程序来完成<br/>| 欢迎光临 飞翔无限fxwx.com广西经贸职业技术学院论坛 (http://www.gxjmbbs.com/) | Powered by Discuz! X3.2 |