ANTICHAT Forum
HOME FORUMS MEMBERS RECENT POSTS LOG IN  
Баннер 1   Баннер 2
НОВЫЕ ТОРГОВАЯ НОВОСТИ
loading...
Скрыть
Вернуться   ANTICHAT > ПРОГРАММИРОВАНИЕ > С/С++, C#, Rust, Swift, Go, Java, Perl, Ruby
   
 
 
Опции темы Поиск в этой теме Опции просмотра

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

Репутация: 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(datagram, 0, sizeof(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(0, 1500));
    
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.tcp, tcph, sizeof(tcpheader));
    
iph->ip_sum  = checksum((unsigned short *)&iph, sizeof(ipheader));
    
tcph->th_sum = checksum((unsigned short *)&pseudo_header, sizeof(pseudo_header));
 
    if (
sendto(s, datagram, sizeof(datagram), 0, (SOCKADDR *)&sin, sizeof(sin)) == SOCKET_ERROR)
        return -
1; 
в общем - пытаюсь отправить сырой SYN-пакет, но он не доходит, а сниффер пишет что адрес и порт отправки и назначения пустые. Адрес src И адрес сетевухи совпадают
 
Ответить с цитированием
 



Предыдущая тема Следующая тема
Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Вышла финальная версия пакета OpenOffice 3.1 winner13 Мировые новости. Обсуждения. 9 10.05.2009 12:29
Пиратская версия пакета iWork '09 заразила тысячи «Маков» AlexTheC0d3r Мировые новости. Обсуждения. 0 23.01.2009 15:43
Найден первый макровирус для пакета StarOffice dinar_007 Мировые новости. Обсуждения. 1 01.06.2006 18:01



Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 


Быстрый переход




ANTICHAT ™ © 2001- Antichat Kft.