C VC自定義發IP包例子

2021-09-06 04:04:43 字數 2555 閱讀 4433

/************************************

*自定義發ip包例子(tcp/ip包傳送)

*給目標主機的埠傳送乙個 syn請求,

*注意目標主機的資訊會發給傳送ip位址的主機

*這說明tcp/ip協議本身有ip期騙的漏洞

*這種方運可以自己寫成特殊的基於ip協議上層的自定義協議

************************************/

#include #include #include #include #include #include //ip

#include //tcp

#include //傳送端ip

char srcip="100.100.100.100";

//目標端ip

char dstip="192.168.11.220";

//傳送端ip埠

int srcport=25;

//目標ip埠

int dstport=99;

//以下是從ip.h和tcp.h取的,但bsd和linux用的名稱有些不一樣主要是tcp不一樣

typedef struct _ip

ip;typedef struct _tcpheader

tcpheader;

//校驗和函式 ip頭

unsigned short ipcheaksum (unsigned short *packet, int packlen)

if (packlen > 0)

sum += *(unsigned char *)packet;

while (sum >> 16)

sum = (sum & 0xffff) + (sum >> 16);

return (unsigned short) ~sum;

}//校驗和函式 tcp頭

unsigned short tcpchecksum (unsigned char *iphdr, unsigned short *packet,int packlen)

int main()

//傳送位址

toaddr.sin_family =af_inet;

// inet_aton("192.168.11.38",&toaddr.sin_addr); //字串轉入位址

inet_aton(dstip,&toaddr.sin_addr); //字串轉入位址

//建立原始tcp包方式ip+tcp資訊包

sock = socket(af_inet, sock_raw,ipproto_raw); //ip方式

// sock = socket(af_inet, sock_raw, ipproto_tcp);

if (sock>0)

else

n=1;

if (setsockopt(sock, ipproto_ip, ip_hdrincl, &n, sizeof(n)) < 0)

ip=(struct ip *)buffer;

ip->ip_id=0x9911;

ip->ip_v=4;

ip->ip_hl=5;

ip->ip_ttl=36;

ip->ip_p=6; //tcp 為6

ip->ip_len=htons(60);

inet_aton(dstip,&ip->ip_dst);

// inet_aton("192.168.11.38",&ip->ip_dst);

tcp = (struct tcphdr *)(buffer + (4*ip->ip_hl));

tcp->source=htons(srcport); //源埠

tcp->dest=htons(dstport);

tcp->seq=htons(0x9990);

tcp->doff=0x15;

tcp->ack_seq=0;

tcp->syn=1;

tcp->window=htons(0x20);

inet_aton(srcip,&ip->ip_src);

// ip->ip_src.s_addr=htonl(0x09010101+n);

tcp->check=0x0;

tcp->check=tcpchecksum((unsigned char *)buffer, (unsigned short *)tcp,40);

ip->ip_sum=0;

ip->ip_sum=ipcheaksum((unsigned short *)buffer,20);

bytes_send=sendto(sock,buffer,60,0,(struct sockaddr *)&toaddr,sizeof(toaddr));

if (bytes_send>0)

}

C VC自定義發IP包例子

自定義發ip包例子 tcp ip包傳送 給目標主機的埠傳送乙個 syn請求,注意目標主機的資訊會發給傳送ip位址的主機 這說明tcp ip協議本身有ip期騙的漏洞 這種方運可以自己寫成特殊的基於ip協議上層的自定義協議 include include include include include ...

Python3中自定義包和匯入自定義包

第一篇部落格,寫得質量可能會不高,但希望能開個好頭,努力成為優秀的程式設計師!今天在惡補python基礎知識,發現我對包,庫,模組的定義非常模糊,於是我回頭看了一下基礎知識,也是一時興起想讓跟我一樣一開始有些困惑的人避坑!要想知道什麼是包,得先了解一下模組的概念!知道了模組,那緊接著看看包 上面是我...

自定義控制項最好的例子

在學習了自己定義控制項後,總結了一些關鍵點.下面的是乙個比較實在的好例子.給自定義的控制項屬性加上列舉值.page本身也是乙個控制項,繼承自control類,它是控制項樹的根.為了生成控制項樹,頁面將建立乙個htmltextwrite類例項.在這個例項中封裝了響應流,接著頁面將主個htmltextw...