Добро пожаловать! Это — архивная версия форумов на «Хакер.Ru». Она работает в режиме read-only.
 

Посылка RAW пакета. C++

Пользователи, просматривающие топик: none

Зашли как: Guest
Все форумы >> [Компилируемые языки] >> Посылка RAW пакета. C++
Имя
Сообщение << Старые топики   Новые топики >>
Посылка RAW пакета. C++ - 2010-06-13 02:52:07.043333   
MikelSV

Сообщений: 2
Оценки: 0
Присоединился: 2007-10-11 22:24:35.656666
Задача - послать сформированный RAW пакет, под windows.

SOCKET sock=socket(AF_INET, SOCK_RAW, IPPROTO_IP);

int i=1; //устанавливать заголовки пакетов
if(setsockopt(sock, IPPROTO_IP, IP_HDRINCL, (const char*)&amp;i, sizeof(i))&lt;0){
perror("setsockopt IP_HDRINCL");
closesocket(sock);
return ;
}

SOCKADDR_IN sa;
sa.sin_family = AF_INET;
sa.sin_addr.s_addr = ip-&gt;daddr;
sa.sin_port = 0;

int er = sendto(sock, (char*)pack, sz, 0, (LPSOCKADDR)&amp;sa, sizeof(sa));
closesocket(sock);


в er получаю размер отправленного пакета.
Пакет отправляется на локальный ip. считается, что сформирован правильно. ip адреса и crc соответствует.

Но сниффер пакет не видит.

Если не включаю IP_HDRINCL, сниффер пакет видит. но ip шапку естественно устанавливает свою.

Не могу понять, куда девается пакет и как это исправить.

В поисках ответа наткнулся на исходники 10 летней давности. http://www.sources.ru/cpp/cpp_raw_tcp_win2000.shtml
Насколько я вижу, код посылки похож на мой. Сниффер видит лишь пакеты при UDP Fluding.

Хотелось бы разобраться, что я делаю не так. Или починить найденную программу, чтобы потом найти различия.
Post #: 1
Страниц:  [1]
Все форумы >> [Компилируемые языки] >> Посылка RAW пакета. C++







Связаться:
Вопросы по сайту / xakep@glc.ru

Предупреждение: использование полученных знаний в противозаконных целях преследуется по закону.