![]() |
Перехват пакетов
Решил написать программку для пеерхвата пакетов только для моего компьютера, для начала хотя бы читать их содержимое...
Начал писать на С++, но прога не очень то и работает... Непонятно когда и по каким принцыпам(лично для меня так) она выводит содержимое пакетов(и то не всё)... Может мне ктонибудь подскажет аглоритм и программые методы для осуществение моей цели... Код:
#include <winsock2.h> |
Почемуже бред?В некоторих местах криво,хотя в полне прилично))))
Зы:Я новичок:)))) |
эммм...у меня глюк или ты не перевел интерфейс в promisc-режим?
http://forum.antichat.ru/showthread.php?p=1011673 ТС, твой код пример обычного клиент/сервернго приложения...тока без клиента))) |
Цитата:
Цитата:
|
WON
Твой код не предназначен для перехвата пакетов. Тут http://www.ntkernel.com/w&p.php?id=14 расписаны методы перехвата пакетов, позволяющие их редактировать. Самый простой способ внедрять в каждый процесс библиотеку, перехватывающую функции для работы с сокетами (модификация IAT или сплайзинг connect, send, sendto, WSASend, WSASendTo, recv, recvfrom, WSARecv). |
чем тебе пабликовские сниферы не нравятся?)
|
Цитата:
Может тебе надо сначала ознакомиться с документацией по TCP/IP? Потом код не будет казаться "заумным" ;) |
Цитата:
|
глянь сорцы того-же wireshark'a. он на Сях-же, вроде
|
WON, твой код отличается несколькими строчками: нет перевода интерфейса в promisc-режим и другой вывод информации ;)
З.Ы. ну еще там IP-заголовок описан. |
Цитата:
Если ты хочешь принимать только те пакету которые предназначены для твоей машины то переводит сокет в режим promisc тебе незачем. Вот код,для перехвата пакетов предназначенных для твоего компа. Код:
#include <stdio.h> |
xismyname а на чём ты компилируешь...? Я на VS 6.0, подключаю
#pragma comment( lib, "wsock32.lib" ) и у меня выскакиевает 60 error(s), 19 warning(s) непонятного содержания... |
Пробуй так:
Цитата:
|
windows.h подключай после winsock2, а не наоборот
|
Цитата:
В Lcc-win32. Если выдает ошибку убери файлы mstcpip.h и ws2tcpip.h. |
бери WinPCAP - там целый фреймворк по захвату и фильтрации пакетов, не ошибешься
|
Код:
#include <stdio.h>Ошибка в строке Код:
GetComputerNameA(pcname, (unsigned long *)len); |
GetComputerNameA(pcname, &len);
|
Код:
GetComputerNameA(pcname, &len);Код:
GetComputerNameA(pcname, (unsigned long *)&len); |
| Время: 14:33 |