资源描述:
《基于raw socket的嗅探器设计与实现(选座题目及资料)》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、基于RawSocket的嗅探器设计与实现功能:基于RawSocket实现IP层以上原始数据包的发送和接收。一.摘要RawSocket:原始套接字,可以用它来发送和接收IP层以上的原始数据包,如ICMP,TCP,UDP...intsockRaw=socket(AF_INET,SOCK_RAW,IPPROTO_RAW);Sniffer(嗅探器)基本原理与实现过程1.把网卡置于混杂模式;2.捕获数据包;3.分析数据包.二.把网卡置于混杂模式在正常的情况下,一个网络接口应该只响应两种数据帧:l与自己硬件地址相匹配的数据帧l发向所有机器的广播数据帧如果要网卡接收发向所有机器的广播数据帧,就必须把网卡
2、置于混杂模式。用RawSocket实现代码如下://设置IP头操作选项setsockopt(sock,IPPROTO_IP,IP_HDRINCL,(char*)&flag,sizeof(flag);//把sockRaw绑定到本地网卡上bind(sockRaw,(PSOCKADDR)&addrLocal,sizeof(addrLocal);//让sockRaw接受所有的数据ioctlsocket(sockRaw,SIO_RCVALL,&dwValue);flag标志是用来设置IP头操作的,也就是说要亲自处理IP头:boolflag=ture;addrLocal为本地地址:SOCKADDR_I
3、NaddrLocal;dwValue为输入输出参数,为1时执行,0时取消:DWORDdwValue=1;三.捕获数据包#defineBUFFER_SIZE65535charRecvBuf[BUFFER_SIZE];//接受任意数据包recv(sockRaw,RecvBuf,BUFFER_SIZE,0);四.分析数据包用recv()接收到的数据包中包含IP、TCP等原始信息。要分析它首先得知道这些结构.数据包的总体结构:----------------------------------------------
4、ipheader
5、tcpheader(orxheader)
6、data
7、-----
8、-----------------------------------------IPheaderstructure:481632bit
9、--------
10、--------
11、----------------
12、--------------------------------
13、
14、Ver
15、IHL
16、Typeofservice
17、Totallength
18、
19、--------
20、--------
21、----------------
22、--------------------------------
23、
24、Identification
25、Flags
26、Fragmentoffset
27、
28、--------
29、--------
30、-
31、---------------
32、--------------------------------
33、
34、Timetolive
35、Protocol
36、Headerchecksum
37、
38、--------
39、--------
40、----------------
41、--------------------------------
42、
43、Sourceaddress
44、
45、--------
46、--------
47、----------------
48、--------------------------------
49、
50、Destinationaddress
51、
52、--------
53、--------
54、----------------
55、----
56、----------------------------
57、
58、Option+Padding
59、
60、--------
61、--------
62、----------------
63、--------------------------------
64、
65、Data
66、
67、--------
68、--------
69、----------------
70、--------------------------------
71、TCPheaderstructure:1632bit
72、--------------------------------
73、--------------------------------
74、
75、Sourceport
76、Dest
77、inationport
78、
79、--------------------------------
80、--------------------------------
81、
82、Sequencenumber
83、
84、--------------------------------
85、--------------------------------
86、
87、Acknowledgementnumber
88、
89、--------------------------