The OpenNET Project / Index page

[ новости /+++ | форум | wiki | теги | ]

форумы  помощь  поиск  регистрация  майллист  ВХОД  слежка  RSS
"raw_socket"
Вариант для распечатки  
Пред. тема | След. тема 
Форумы Программирование под UNIX (Public)
Изначальное сообщение [Проследить за развитием треда]

"raw_socket"  
Сообщение от kingo on 18-Сен-06, 12:07 
пытаюсь отправить пакет через raw socket
вот типа пакет, но я не могу понять куда писать данные для отправки?
данные это payload

  iph->ip_hl = 5;
  iph->ip_v = 4;
  iph->ip_tos = 0;
  iph->ip_len = sizeof (struct ip) + sizeof (struct tcphdr);
  iph->ip_id = htonl (54321);    /* the value doesn't matter here */
  iph->ip_off = 0;
  iph->ip_ttl = 255;
  iph->ip_p = 6;
  iph->ip_sum = 0;        /* set it to 0 before computing the actual checksum later */
  iph->ip_src.s_addr = inet_addr ("1.2.3.4");/* SYN's can be blindly spoofed */
  iph->ip_dst.s_addr = sin.sin_addr.s_addr;
  tcph->th_sport = htons (1234);    /* arbitrary port */
  tcph->th_dport = htons (P);
  tcph->th_seq = random ();/* in a SYN packet, the sequence is a random */
  tcph->th_ack = 0;/* number, and the ack sequence is 0 in the 1st packet */
  tcph->th_x2 = 0;
  tcph->th_off = 0;        /* first and only tcp segment */
  tcph->th_flags = TH_SYN;    /* initial connection request */
  tcph->th_win = htonl (65535);    /* maximum allowed window size */
  tcph->th_sum = 0;/* if you set a checksum to zero, your kernel's IP stack
              should fill in the correct checksum during transmission */
  tcph->th_urp = 0;

Правка | Высказать мнение | Ответить | Cообщить модератору | Наверх

 Оглавление

  • raw_socket, vic, 14:36 , 18-Сен-06, (1)  
    • raw_socket, kingo, 15:38 , 18-Сен-06, (2)  
      • raw_socket, vic, 16:51 , 18-Сен-06, (3)  
        • raw_socket, vic, 16:54 , 18-Сен-06, (4)  
          • raw_socket, kingo, 17:11 , 18-Сен-06, (5)  
            • raw_socket, vic, 17:41 , 18-Сен-06, (7)  
              • raw_socket, kingo, 17:54 , 18-Сен-06, (8)  
                • raw_socket, vic, 18:12 , 18-Сен-06, (9)  
                  • raw_socket, kingo, 12:11 , 19-Сен-06, (10)  
          • raw_socket, kingo, 17:27 , 18-Сен-06, (6)  

Сообщения по теме [Сортировка по времени, UBB]


1. "raw_socket"  
Сообщение от vic (??) on 18-Сен-06, 14:36 
>пытаюсь отправить пакет через raw socket
>вот типа пакет, но я не могу понять куда писать данные для
>отправки?
попробуйте в сокет :)

в syn-пакете данные могут передаваться, но обычно нихто этого не делает. Только в TTCP.

> iph->ip_len = sizeof (struct ip) + sizeof (struct tcphdr);
где тут место для данных?

Правка | Высказать мнение | Ответить | Cообщить модератору | Наверх

2. "raw_socket"  
Сообщение от kingo on 18-Сен-06, 15:38 
>> iph->ip_len = sizeof (struct ip) + sizeof (struct tcphdr);
>где тут место для данных?

а как мне написать чтобы данные тоже отправлялись?


Правка | Высказать мнение | Ответить | Cообщить модератору | Наверх

3. "raw_socket"  
Сообщение от vic (??) on 18-Сен-06, 16:51 
>>> iph->ip_len = sizeof (struct ip) + sizeof (struct tcphdr);
>>где тут место для данных?
>
>а как мне написать чтобы данные тоже отправлялись?

чтобы эмулировать TCP-протокол, надо сначала его изучить, например прочесть соответствующие RFC, затем изучить сетевое программирование с помощью сокетов (Стивенс. Сетевое Программирование - библия), и только после этого браться за raw socket.

Правка | Высказать мнение | Ответить | Cообщить модератору | Наверх

4. "raw_socket"  
Сообщение от vic (??) on 18-Сен-06, 16:54 
>>>> iph->ip_len = sizeof (struct ip) + sizeof (struct tcphdr);
>>>где тут место для данных?
>>
>>а как мне написать чтобы данные тоже отправлялись?
>

Кстати, а как насчет mac-заголовка?

Правка | Высказать мнение | Ответить | Cообщить модератору | Наверх

5. "raw_socket"  
Сообщение от kingo on 18-Сен-06, 17:11 
>
>Кстати, а как насчет mac-заголовка?


он форумируется ядром

Правка | Высказать мнение | Ответить | Cообщить модератору | Наверх

7. "raw_socket"  
Сообщение от vic (??) on 18-Сен-06, 17:41 
>>
>>Кстати, а как насчет mac-заголовка?
>
>
>он форумируется ядром

не факт.
Зависит от способа открытия сокета и bind'а. Экстремалы сами формируют mac ;)

Правка | Высказать мнение | Ответить | Cообщить модератору | Наверх

8. "raw_socket"  
Сообщение от kingo on 18-Сен-06, 17:54 
>>>
>>>Кстати, а как насчет mac-заголовка?
>>
>>
>>он форумируется ядром
>
>не факт.
>Зависит от способа открытия сокета и bind'а. Экстремалы сами формируют mac ;)
>
bind'a там нету, используется сырой сокет

Правка | Высказать мнение | Ответить | Cообщить модератору | Наверх

9. "raw_socket"  
Сообщение от vic (??) on 18-Сен-06, 18:12 
>>>>
>>>>Кстати, а как насчет mac-заголовка?
>>>
>>>
>>>он форумируется ядром
>>
>>не факт.
>>Зависит от способа открытия сокета и bind'а. Экстремалы сами формируют mac ;)
>>
>bind'a там нету, используется сырой сокет

У функции socket три параметра :) От них зависит на какую глубину опускаемся в стеке. В конце концов надо же кому-то определять в какой интерфейс писать фрейм с IP пакетом (lo, eth0, eth1.. и т.д.)

В одном случае бинд нужен, в другом нет. Я ж не знаю какие у вас параметры выставлены :)

Правка | Высказать мнение | Ответить | Cообщить модератору | Наверх

10. "raw_socket"  
Сообщение от kingo on 19-Сен-06, 12:11 
>У функции socket три параметра :) От них зависит на какую глубину
>опускаемся в стеке. В конце концов надо же кому-то определять в
>какой интерфейс писать фрейм с IP пакетом (lo, eth0, eth1.. и
>т.д.)
>
>В одном случае бинд нужен, в другом нет. Я ж не знаю
>какие у вас параметры выставлены :)


давай пересечёмся в чате в каком нибуть :)
спасибо за помощь

Правка | Высказать мнение | Ответить | Cообщить модератору | Наверх

6. "raw_socket"  
Сообщение от kingo on 18-Сен-06, 17:27 
>>>>> iph->ip_len = sizeof (struct ip) + sizeof (struct tcphdr);
>>>>где тут место для данных?
>>>
>>>а как мне написать чтобы данные тоже отправлялись?
>>
>
>Кстати, а как насчет mac-заголовка?
давай где нибуть в чате пересечёмся :)

Правка | Высказать мнение | Ответить | Cообщить модератору | Наверх

Архив | Удалить

Индекс форумов | Темы | Пред. тема | След. тема
Оцените тред (1=ужас, 5=супер)? [ 1 | 2 | 3 | 4 | 5 ] [Рекомендовать для помещения в FAQ]




Спонсоры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2022 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру