![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Сниффер траффика IdTCPServer [D7, Win2k, WinXP]
Дмитрий Белькевич © (2007-07-19 05:37:00)Есть некоторый сервер, реализованный на TIdTCPServer.
Есть небезывестный сниффер WinPCAP. Его можно настроить так, что он будет записывать данные идущие в/из TIdTCPServer в некоторый файл фомата .cap, дальше этот файл передаётся для анализа сторонними программами.
Вопрос: как обойтись без WinPCAP? Т.е. нужно весь траффик писать в этом формате в файл.
Проблемы две:
1. формат файла, к сожалению, не нашел.
2. Пока не знаю, как, собственно, забрать информацию из TIdTCPServer.
Платформа w2k и выше, в целом, устраивает, хотя если будут простые варианты для w98+ - еще лучше.
Заранее спасибо за ответы.
Edward Smirnov (2007-08-05 10:35:00) [1]В PSSDK есть компонент под названием FileAdapter, занимается ровно тем, что пишет/читает из/в .cap файлы. Сейчас находится в стадии документирования, но в релизных версиях присутствует уже с год как, и зарекомендовал себя хорошо. За подробностями в приват.
Дмитрий Белькевич (2007-07-26 16:55:00) [2]Спасибо, поищу.
Собственно, тогда остаётся проблема 2:
Формат .cap файла.
medved_68 (2007-07-26 15:08:00) [3]
> Это можно как-то сделать на уровне компонент indy, или делать
> полноценный снифер нужно?
Это можно сделать на уровне компонент от MicrOlab. Пакет называется Packet Sniffer SDK, пример перехвата реализован Rouse_и выложен на его сайте. Т.е. по любому - сниффер. :))) Поэтому и спросил про формат файла *.сар, ибо зная этот формат реализовать свою программу для наблюдения за трафиком - не проблема + отпадает необходимость:
> Вопрос: как обойтись без WinPCAP? Т.е. нужно весь траффик
> писать в этом формате в файл.
Дмитрий Белькевич (2007-07-26 13:50:00) [4]>А тогда накой ляд тебе формат *.cap-файла
Нужно, что бы юзер передал мне эти файлы, а я у себя скормил их программе. Программа не моя.
>Какого вообще рода анализ тебе нужен
Есть стороння программа, которая принимает на вход файлы .cap. Проводит анализ DICOM соедиения и пересылок.
>Перехватить пакет канального уровня со всей начинкой - не проблема
Это можно как-то сделать на уровне компонент indy, или делать полноценный снифер нужно?
Сергей М. (2007-07-26 09:36:00) [5]
> Дмитрий Белькевич © (25.07.07 07:50) [13]
> Меня - ничего не интересует (слишком низкий уровень лично
> мне не нужен)
А тогда накой ляд тебе формат *.cap-файла ?
Какого вообще рода анализ тебе нужен ?
medved_68 (2007-07-25 08:57:00) [6]
> WinPcap каким-то образом собирает входящие и исходящие пакеты
> в этом файле.
Хм...расплывчато. Я например собирал только данные от кого, кому (IP,порт), размер пакета (для учета канального трафика) проходящие через заданный адаптер. Перехватить пакет канального уровня со всей начинкой - не проблема, проблема привести его к виду формата файла *.сар, чтобы:
> Стороннюю программу я не могу исправить, она понимает либо
> такой формат,
Дмитрий Белькевич (2007-07-25 07:50:00) [7]>А что тебя интересует в tcp-заголовках ?
Меня - ничего не интересует (слишком низкий уровень лично мне не нужен), эта информация (вероятно) нужна для формирования файлов .cap, которые мне, собственно, нужно создавать.
>а формат файла *.сар известен
См. первое письмо: 1. формат файла, к сожалению, не нашел.
Так как его грабит WinPcap, который, как известно, занимается снифом проходящего траффика через интерфейс, то предполагаю, WinPcap каким-то образом собирает входящие и исходящие пакеты в этом файле.
>В смысле, производился ли его анализ (файла) на предмет соответствия тому что пришло по сети, например посылка пакета с заранее известным содержимым + разбор как все это сохранилось в файле *.сар ???
Пока надеюсь без реверс инжиниринга обойтись.
Спасибо всем за ответы.
medved_68 (2007-07-24 08:47:00) [8]
> Для того, что бы их поместить в файл формата .cap для последующего
> анализа в сторонней программе.
Дмитрий Белькевича формат файла *.сар известен??? В смысле, производился ли его анализ (файла) на предмет соответствия тому что пришло по сети, например посылка пакета с заранее известным содержимым + разбор как все это сохранилось в файле *.сар ???
Сергей М. (2007-07-24 08:19:00) [9]
> Дмитрий Белькевич © (24.07.07 03:19) [10]
> но это - не tcp пакеты
А что тебя интересует в tcp-заголовках ?
Дмитрий Белькевич (2007-07-24 03:19:00) [10]> а это принципиально? просто если вести логи изнутри сервера, то ясное дело, будут данные только об установленных соединениях
>> Формата файла может кто знает?
>Начерта он тебе сдался ?
Есть возможность перехватить данные в Connection.ReadBuffer и Connection.WriteBuffer, но это - не tcp пакеты. Почему нужны именно пакеты? Для того, что бы их поместить в файл формата .cap для последующего анализа в сторонней программе. Стороннюю программу я не могу исправить, она понимает либо такой формат, либо может сама из WinPCap'а данные забирать, но весит вместе с пикапом 30 метров, не хочу заставлять юзеров её тащить, но хочу иметь возможность сам эти файлы создавать, а уже у себя их анализировать. Работаю со сложными сетевыми протоколами над tcp - dul, dimse, dicom.
>Тебе шашечки или ехать ?)
Мне как раз ехать, без формата - это почти бесполезный набор байт.
>пакеты отслеживаешь на этой же машине или удаленно???
На этой же.
medved_68 (2007-07-20 09:06:00) [11]
> Есть небезывестный сниффер WinPCAP. Его можно настроить
> так, что он будет записывать данные идущие в/из TIdTCPServer
> в некоторый файл фомата .cap,
> Вопрос: как обойтись без WinPCAP? Т.е. нужно весь траффик
> писать в этом формате в файл.
Дмитрий Белькевичпакеты отслеживаешь на этой же машине или удаленно???
umbra (2007-07-19 14:51:00) [12]
> Формата файла может кто знает?
а это принципиально? просто если вести логи изнутри сервера, то ясное дело, будут данные только об установленных соединениях. Если же речь идет о безопасности (отслеживании попыток проникновения, DDos-атак и т.д.), то логгирование на сервере здесь мало чем поможет.
umbra (2007-07-19 14:47:00) [13]
> Сам TIdTCPServer из девятки этого, как я понял, не умеет?
>
>
сам сервер и в десятке этого не умеет. Просто интерцепты дают возможность производить некие действия над траффиком после посылки данных сервером (но до того, как они будут писаться в сокет) и после чтения из сокета, но до того, как они дойдут до прикладного уровня.
В девятке есть логгеры для клиентов (IdLogEvents, например). Серверный TIdServerInterceptLogFile, это собственно клиентский компонент, работающий со слушающим серверным сокетом и при установлении нового соединения создающий клиентский логгер для него. Это достаточно просто и вручную организовать
Сергей М. (2007-07-19 14:15:00) [14]
> исходники сервера есть
>
> Есть
Что мешает доработать их с целью решения задачи ?
> Сам TIdTCPServer из девятки этого, как я понял, не умеет?
Не умеет что? Стать прокси что ли ?
Ты видимо неверно представляешь себе задачи, решаемые этим компонентом. Хоть в 9-ке, хоть в 10-ке.
> Формата файла может кто знает?
Начерта он тебе сдался ?
Тебе шашечки или ехать ?)
Дмитрий Белькевич (2007-07-19 14:12:00) [15]....Сам TIdTCPServer из девятки этого, как я понял, не умеет журналировать соединение?
Дмитрий Белькевич (2007-07-19 14:11:00) [16]>исходники сервера есть
Есть, инди 9. Хотя, в принципе, можно попробовать на 10-ку перелезть.
>Что мешает реализовать прокси
Сам TIdTCPServer из девятки этого, как я понял, не умеет?
Формата файла может кто знает?
В любом случае - спасибо за ответы.
umbra (2007-07-19 10:36:00) [17]в общем, если исходники есть и у Вас инди 10, то можно посмотреть в сторону
TIdServerInterceptLogFile
umbra (2007-07-19 10:07:00) [18]исходники сервера есть?
Сергей М. (2007-07-19 08:23:00) [19]Что мешает реализовать прокси, через который клиенты будут общаться с этим сервером ?