
13.07.2006, 14:57
|
|
Участник форума
Регистрация: 31.08.2003
Сообщений: 177
Провел на форуме: 249275
Репутация:
22
|
|
изза GET мутить ТАКОЕ? ты лучше скажи зачем? Если ты начитался "умных" статей про спуфинг то забудь, для TCP не покатит. Впрочем как хочешь, на вот, лови:
Код:
//Подробно IP протокол описан в RFC за номером 791.
typedef struct _IPHeader{
UCHAR len:4, ver:4; // версия и длина заголовка (4 бита версия и 4 бита длина)
UCHAR tos; // тип сервиса
USHORT length; // длина всего пакета
USHORT id; // Id (идентификатор, используется для сборки фрагментов, все фрагменты имеют одинаковый id)
USHORT offset; // флаги и смещения
#define IP_DF 0x4000 // dont fragment flag
#define IP_MF 0x2000 // more fragments flag
UCHAR ttl; // TTL (time to live) - время жизни
UCHAR proto; // протокол
USHORT chksum; // контрольная сумма
ULONG src; // IP-адрес отправителя
ULONG dest; // IP-адрес назначения
}sIPHeader, *pIPHeader;
//далее идут параметры (до 320 бит)
//далее идут данные (до 65535 быйт минус заголовок) - в твоем случае TCP-фрейм
Поле pIPHeader->proto (определены в winsock.h = [1], только в winsock2.h - [2]):
IPPROTO_IP // 0 [1]
IPPROTO_ICMP // 1 [1]
IPPROTO_IGMP // 2 [1]
IPPROTO_GGP // 3 [1]
IPPROTO_TCP // 6 [1]
IPPROTO_PUP // 12 [1]
IPPROTO_UDP // 17 [1]
IPPROTO_IDP // 22 [1]
IPPROTO_IPV6 // 41 [2]
IPPROTO_ND // 77 [1]
IPPROTO_ICLFXBM // 78 [2]
IPPROTO_RAW // 255 [1]
IPPROTO_MAX // 256 [1] //это просто си-константа, не более (макс значение чар=255)
// TCP header. Per RFC 793, September, 1981. In Little Endian
typedef struct _TCPHeader{
USHORT sport; // порт источника
USHORT dport; // порт назначения
ULONG sqn; // номер последовательности
ULONG ack; // номер подтверждения
UCHAR x2:4, off:4; // x2-не исп., off-смещение данных
UCHAR flags; // флаги
#define F_FIN 0x01
#define F_SYN 0x02
#define F_RST 0x04
#define F_PSH 0x08
#define F_ACK 0x10
#define F_URG 0x20
USHORT win; // окно
USHORT chcksm; // контрольная сумма
USHORT urp; // указатель важности (urgent pointer)
ULONG opt1; // опции (необязательное)
USHORT opt2; // опции (продолжение)
USHORT res; // выравнимание до 32
UCHAR data[]; // данные
}sTCPHeader, *pTCPHeader;
Чем собирать пакеты с нуля, намного проще заюзать халявную (для некоммерческого использования) run-time либу WinpkFilter от ntkernel.com, которая позволяет реализовать прозрачную фильтрацию и обработку пакетов в user mode. Скачать её можно отсюда: WinpkFilter.
Последний раз редактировалось Rabid Rabbit; 13.07.2006 в 16:36..
|
|
|