"Копирование входящего трафика по определённому порту"
![]() |
Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
|
| ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
| [216.73.217.9] |
|
|
Соблюдайте общие правила форума
MSDN Library
FAQ раздела
Поиск по разделу
Как правильно задавать вопросы
"Копирование входящего трафика по определённому порту"
|
Сообщ.
#1
,
|
|
|
|
Добрый день. Уже давно изучаю тему перехватов API, но тут наткнулся на возможность получать данные через сырые сокеты. Так вот, у меня получилось написать получение отправляемых пакетов, но вот те пакеты, которые приходят из сети, почему-то не ловятся.
Делаю так: ![]() ![]() procedure ListenThread; var --- begin WSAStartup(MAKEWORD(2,2), WSAData); s := socket(AF_INET, SOCK_RAW, IPPROTO_IP); GetHostName(PAnsiChar(name), SizeOf(name)); phe := GetHostByName(PAnsiChar(name)); ZeroMemory(@sa, sizeof(sa)); sa.sin_family := AF_INET; sa.sin_addr.s_addr := cardinal(pointer(phe^.h_addr_list^)^); bind(s, sa, SizeOf(TSockaddr)); ioctlSocket(s, SIO_RCVALL, flag); repeat count := recv(s, Buffer, sizeof(Buffer), 0); if (count >= sizeof(TIPHeader)) then begin hdr := @Buffer; sa1.s_addr := hdr.iph_src; sa2.s_addr := hdr.iph_dest; Pac := ByteToHexStr(@Buffer[sizeof(TIPHeader)],count); // переводим в строку end; until false; end; Ни у кого код не завалялся, а то я даже не знаю, почему может не ловиться |
|
Сообщ.
#2
,
|
|
|
|
Версия винды какая? RAW-сокеты имеют много ограничений по безопасности, в зависимости от версии.
|