Вот нашел пару примеров http://komsoft.ru/pma/gen_packet.htm http://milw0rm.com/exploits/1599 с сырыми сокетами.Но вот только все никак немогу понять каким местом и на какое крепятся все эти struct igmphdr struct ip_header struct udp_header и подобные к сокету Обьясните плиз кто знает.
они не к нему не крепятся... это структуры для разбора пакетов... заполнили и отправил пакет... и также принимать... кароч чтоб удобней было... канеш если ты все протоколы знаешь на изусь то можно просто вручную писать типа buf[]="\0x2\0x23.... так вот чтоб этого не делать и созданы эти структуры... знаю что не оч понятно объяснил, сорь : D
у каждого пакета есть IP заголовок - ip_header. это типа реализация IP протокола. на его основе может быть реализован более высокоуровневый протокол. например udp. таким образм получается след: ip_header udp_header или, скажем, tcp: ip_header tcp_header по сути дела структуры в буффере идут друг за другом. на практике лучше выделить буффер. указатель на начало буффера - указатель на структуру ip_header. затем указатель на структуру upd_header... Code: char packet[256]; ip_header *p_iph; udp_header *p_udph; p_iph = (ip_header*)packet; p_udph = (udp_header*)(packet + sizeof(ip_header)); ...
А куда пихать данные которые к примеру нужно передать через Udp пакеты,и какой максимальный обьем данных можно передать в одном пакете транспортного протокола(к примеру того же Udp)?
протокольные пакеты вкладываются друг дружке в поле данных как МАТРЕШКА! данное действие называется ИНКАПСУЛЯЦИЕЙ. Вопрос должен все таки содержать информацию о том что ты собираешься делать разбирать пакеты на составляющие либо собираешься их собирать(КРАФТИТЬ) но в любом случае начинать освоение следует с переводных rfc которые лежат на citforum.ru ....... теперь осталось сразу раставить точки ! Если собираешься работать слишком низко и разбирать даже ethernet пакеты , то забудь о RAW-socket , роусокеты ввели в w2k и постоянно пытаются заблокировать (они как правило не пропускают пакеты(ioctlsock) если нет приложения готового их обработать, поэтому снифинг будет урезанный.... крафтинг так же будет урезанный) Поэтому WinPcap тебе в руки!!! ЭТО НЕ RAW_SOCKET!!! Почуствуешь себя человеком -100%! По поводу максимального размера пакета для UDP ! Поскольку UDP пакеты не поддерживают дефрагментацию, то то что пошлешь то и получат ( на этом были построены первые Nuker-Ы. Модемы падали как яблоки , побеждал тот у кого скорость больше!)