Показать сообщение отдельно

Отправка сырого пакета
  #1  
Старый 23.02.2010, 02:27
ntldr
Постоянный
Регистрация: 04.12.2007
Сообщений: 424
Провел на форуме:
2364957

Репутация: 479
По умолчанию Отправка сырого пакета

PHP код:
struct sockaddr_in sin;

    
sin.sin_family AF_INET;
    
sin.sin_port htons(80);
    
sin.sin_addr.s_addr inet_addr("192.168.0.100");
    
    
char datagram[sizeof(ipheader)+sizeof(tcpheader)];
    
ipheader *iph = (ipheader *)datagram;
    
tcpheader *tcph = (tcpheader *)(datagram sizeof(ipheader));
    
PS_HDR pseudo_header;

    
memset(datagram0sizeof(datagram));

    
iph->ip_hl         5;
    
iph->ip_v         4;
    
iph->ip_tos         0;
    
iph->ip_len         sizeof(ipheader) + sizeof(tcpheader);
    
iph->ip_id         rand();
    
iph->ip_off         0;
    
iph->ip_ttl         255;
    
iph->ip_p         IPPROTO_TCP;
    
iph->ip_sum         0;
    
iph->ip_src         inet_addr("192.168.0.100");
    
iph->ip_dst         sin.sin_addr.s_addr;

    
tcph->th_sport     htons(getrandom(01500));
    
tcph->th_dport     sin.sin_port;
    
tcph->th_seq     rand();
    
tcph->th_ack     0;
    
tcph->th_x2         0;
    
tcph->th_off     5;
    
tcph->th_flags     TH_SYN;
    
tcph->th_win     htons(512);
    
tcph->th_sum     0;
    
tcph->th_urp     0;

    
pseudo_header.source_address  iph->ip_src;
    
pseudo_header.dest_address      sin.sin_addr.s_addr;
    
pseudo_header.placeholder      0;
    
pseudo_header.protocol          IPPROTO_TCP;
    
pseudo_header.tcp_length      htons(sizeof(tcpheader));

    
memcpy((char*)&pseudo_header.tcptcphsizeof(tcpheader));
    
iph->ip_sum  checksum((unsigned short *)&iphsizeof(ipheader));
    
tcph->th_sum checksum((unsigned short *)&pseudo_headersizeof(pseudo_header));
 
    if (
sendto(sdatagramsizeof(datagram), 0, (SOCKADDR *)&sinsizeof(sin)) == SOCKET_ERROR)
        return -
1
в общем - пытаюсь отправить сырой SYN-пакет, но он не доходит, а сниффер пишет что адрес и порт отправки и назначения пустые. Адрес src И адрес сетевухи совпадают
 
Ответить с цитированием