I-bob. Tarmoqqa ulangan sniffer


Download 0.83 Mb.
bet6/16
Sana12.03.2023
Hajmi0.83 Mb.
#1263082
1   2   3   4   5   6   7   8   9   ...   16
Bog'liq
Individual loyiha Kamoliddin

typedef struct _IPHeader
{
unsigned char ver_len; // версия и длина заголовка
unsigned char tos; // тип сервиса
unsigned short length; // длина всего пакета
unsigned short id; // Id
unsigned short flgs_offset; // флаги и смещение
unsigned char ttl; // время жизни
unsigned char protocol; // протокол
unsigned short xsum; // контрольная сумма
unsigned long src; // IP-адрес отправителя
unsigned long dest; // IP-адрес назначения
unsigned short *params; // параметры (до 320 бит)
unsigned char *data; // данные (до 65535 октетов)
}IPHeader;

Tinglash algoritmining asosiy funktsiyasi quyidagicha ko'rinadi: Yagona paketni olish funktsiyasi
IPHeader* RS_Sniff()
{
IPHeader *hdr;
int count = 0;
count = recv(RS_SSocket, (char*)&RS_Buffer[0], sizeof(RS_Buffer), 0);
if (count >= sizeof(IPHeader))
{
hdr = (LPIPHeader)malloc(MAX_PACKET_SIZE);
memcpy(hdr, RS_Buffer, MAX_PACKET_SIZE);
RS_UpdateNetStat(count, hdr);
return hdr;
}
else
return 0;
}


Bu erda hamma narsa oddiy: biz standart recv soket funktsiyasidan foydalangan holda ma'lumotlarning bir qismini olamiz va keyin uni IPHeader tipidagi tuzilishga ko'chirib olamiz. Va nihoyat, biz cheksiz paketlarni yozib olish tsiklini boshlaymiz:
Tarmoq interfeysimizga tushadigan barcha paketlarni ushlash
while (true)
{
IPHeader* hdr = RS_Sniff();
// обработка IP-пакета
if (hdr)
{
// печатаем заголовок в консоли
}
}
Bu erda hamma narsa oddiy: standart rozetka funktsiyasidan foydalangan holda ma'lumotlarning bir qismini olamiz recv va keyin ularni kabi tuzilishga nusxalash.
Asos sifatida, siz oldinga borib, yuqoridagi barcha keyingi protokollarning sarlavhalarini tavsiflashingiz mumkin. Buning uchun IPHeader strukturasidagi protokol maydonini tahlil qiling. Kod misoliga qarang (ha, kalit bo'lishi kerak, jin ursin!), bu erda sarlavha IP-kapsullangan paket qaysi protokolga ega ekanligiga qarab ranglanadi:

Download 0.83 Mb.

Do'stlaringiz bilan baham:
1   2   3   4   5   6   7   8   9   ...   16




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2024
ma'muriyatiga murojaat qiling