Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Сети";
Текущий архив: 2008.03.02;
Скачать: [xml.tar.bz2];

Вниз

Отправка RAW пакета   Найти похожие ветки 

 
Сергей Колесник   (2007-06-09 09:38) [0]

Как в рекламе говорят, всё что мне сейчас нужно это отправить RAW пакет, но мой ламерский код не работает, если не трудно направьте на путь истинный :)

procedure lsend(a: array of byte);
begin
send(sock,a,sizeof(a),0);
end;

WSAStartup($202,init);

Sock:=Socket(PF_INET,SOCK_RAW,IPPROTO_RAW);

lsend ([0,0,0,0,0,0,0,0,0,0,0,0,11,6,0,0,0,0,0,0,176,0,0,0,0,0,0,0,171,216,182,132,85, 170,199,1,234,5,0,0,58,0,0,0,58,0,0,0,255,255,255,255,255,255,0,21,242,238,50,16 8,8,0,69,0,0,44,121,104,0,0,128,17,169,50,10,8,14,31,255,255,255,255,23,224,23,2 24,0,24,23,248,247,47,16,0,80,88,51,87,21,0,0,0,0,0,0,0]);
// это вырезанный из сниффера рабочий удипи пакет

WSACleanup;


 
Сергей М. ©   (2007-06-09 10:01) [1]

Как думаешь, чему будет равно выражение sizeof(a) ?


 
Сергей Колесник   (2007-06-09 10:11) [2]

я проверял при отладке через переменную, размер правильный ... но пакет в сеть не уходит, правда не догадался посмотреть, ошибки :( ... ща гляну


 
Сергей Колесник   (2007-06-09 10:14) [3]

вот она:

WSAENOTCONN


 
Сергей М. ©   (2007-06-09 10:24) [4]


> размер правильный


А, ну да, у тебя открытый массив.

И ?


 
Сергей М. ©   (2007-06-09 10:35) [5]

Вообще-то для connectionless-протоколов предназначена ф-ция sendto(), а не send()


 
Сергей М. ©   (2007-06-09 10:38) [6]

И к тому же если это "вырезанный из сниффера рабочий удипи пакет", то почему же ты при создании гнезда указываешь IPPROTO_RAW, а не IPPROTO_IP ?


 
Сергей Колесник   (2007-06-09 10:53) [7]

с этой ошибкой понятно, просто нужно было либо юзать connetc либо sendto

он теперь возник другой вопрос, исчезла информация о портах, исказилось поле данных ... короче на выходе пакет имеет осмысленные значения только до поля айпи адреса назначения


 
Сергей Колесник   (2007-06-09 10:54) [8]

упс ... не видел ответа, щас попробуем с ipproto_udp


 
Сергей Колесник   (2007-06-09 11:35) [9]

Только сейчас дошло, что сокет при отправке генерирует свой собственный заголовок пакета, а мою "дату" фигачит в качестве поля значений. А я то наивный понадеялся что смогу таким образом отправить в сеть пакет со своим собственным заголовком ...

А может всётаки это осуществимо?


 
Сергей Колесник   (2007-06-09 11:37) [10]

ну а если ещё конкретней, то мне надо чтобы в качестве порта источника в заголовке пакета был указан уже открытый и использующийся в системе порт, на который я ессно не могу забиндить сокет.


 
Сергей М. ©   (2007-06-09 11:39) [11]


> А может всётаки это осуществимо?


см. setsockopt(Ыщсл, IPPROTO_IP, IP_HDRINCL, ..)


 
Сергей Колесник   (2007-06-09 12:00) [12]

посмотрел хелпу моей Д6 и юнит винсока - нет там таких констант :(


 
Сергей М. ©   (2007-06-09 12:12) [13]

смотри в MSDN - там все есть


 
Сергей Колесник   (2007-06-09 12:56) [14]

там тоже нет таких параметров этой функции

смотрел здесь: http://msdn2.microsoft.com/en-us/library/ms740476.aspx


 
Сергей М. ©   (2007-06-09 13:05) [15]


> там тоже нет таких параметров этой функции


Есть.

http://msdn2.microsoft.com/en-us/library/ms738586.aspx


 
Сергей М. ©   (2007-06-09 13:07) [16]

Константа эта равна десятичной двойке.


 
Сергей Колесник   (2007-06-09 13:46) [17]

нашел :)

спасибо ... буим изучать


 
NeyroSpace ©   (2007-06-12 15:25) [18]

Во-первых IPPROTO_RAW полностью поддерживает только WIN2K и выше.
Во-вторых нужно понимать как инкапсулируются данные в пакетах.

Если работаешь в IPPROTO_RAW, то ни о каком порте тут речи нет. Ты спускаешься на уровень ниже. Твои данные сразу внутри протокола IP, дальше идет заголовок протоколов транспортного уровня например TCP, UDP, ICMP и ты их должен САМ правильно заполнить, в том числе, расчитать контрольную сумму, если она есть и т.д.



Страницы: 1 вся ветка

Форум: "Сети";
Текущий архив: 2008.03.02;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.48 MB
Время: 0.042 c
15-1199989377
turbouser
2008-01-10 21:22
2008.03.02
Ищу работу


11-1184544980
DX_Original
2007-07-16 04:16
2008.03.02
DriveComboBox


6-1181665096
nali
2007-06-12 20:18
2008.03.02
мультипатийный формат http запроса на сервер


15-1201450136
Kerk
2008-01-27 19:08
2008.03.02
Посоветуйте файрволл


15-1200384548
KSergey
2008-01-15 11:09
2008.03.02
Интернет, компьютер, ребенок





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский