Home
Contents

CommView - Мониторинг и анализ сети

Prev Page Next Page
 
Введение
О программе CommView
Что нового
Работа с программой
Краткий обзор
Выбор сетевого адаптера для работы
Текущие IP-соединения
Пакеты
Log-файлы
Просмотр Log-файлов
Правила
Универсальные правила
Предупреждения
Реконструкция TCP-сессий
Реконструкция UDP-потоков
Поиск пакетов
Статистика и отчёты
Использование псевдонимов (алиасов)
Генератор пакетов
Визуальный конструктор пакетов
Определение изготовителя NIC
Захват по расписанию
Удаленный мониторинг (Remote Agent)
Использование RPCAP
Сбор трафика на логическом адаптере обратной связи (loopback)
Информация о портах
Установка опций
Часто задаваемые вопросы (FAQ)
Анализ VoIP
Введение
Работа с анализатором VoIP
Сессии SIP and H.323
Потоки RTP
Регистрации
Станции
Ошибки
Log-файлы звонков
Отчет
Воспроизведение звонка
Просмотр VoIP log-файлов
Работа со списками в анализаторе VoIP
Файлы NVF
Дополнительные возможности
Перехват больших объемов трафика
Запуск нескольких копий программы
Невидимый режим
Параметры командной строки
Обмен данными с вашим приложением
Пользовательский модуль декодирования
Формат Log-файлов CommView
Покупка и поддержка

Пользовательский модуль декодирования

CommView позволяет подключить два типа пользовательских модулей декодирования.

Простой декодер

Если он используется, то результаты его работы будут показаны в дополнительной колонке закладки Пакеты. Пользовательский декодер должен быть 32-bit DLL с именем файла "Custom.dll" и экспортировать единственную процедуру - "Decode". Ниже показан её прототип на языках C и Pascal:

extern "C" {

void __stdcall Decode(unsigned char *PacketData, int PacketLen, char *Buffer, int BufferLen);

}

procedure Decode (PacketData: PChar; PacketLen: integer; Buffer: PChar; BufferLen: integer); stdcall;

Данная DLL должна располагаться в той же директории, что и CommView. При запуске CommView ищет файл с именем  "Custom.dll" и загружает его в память. Если в нем найдена точка входа "Decode" - CommView добавляет новую колонку с именем "Custom" в списке пакетов.

Перед тем как отобразить новый пакет, CommView вызывает процедуру "Decode" и передаёт содержимое пакета в DLL. Процедура "Decode" должна обработать пакет и записать его в буфер. Первый аргумент - указатель на содержимое пакета, второй - длина, третий аргумент - указатель на буфер, в котором хранится результат обработки, четвёртый аргумент - размер буфера (в данной версии - всегда 1024 байта). Буфер выделяется и освобождается самой программой CommView, так что не следует управлять распределением памяти под этот буфер самостоятельно. Содержимое буфера будет отображено в виде строки в колонке "Custom".

Ваша процедура должно быть достаточно быстрой и обрабатывать тысячи пакетов в секунду; в противном случае снизится производительность программы. Не забывайте использовать STDCALL при вызове.

Две DLL представлены как пример. Они выполняют простейшие операции: "результатом" работы функции "Decode" является шестнадцатеричный код последнего байта пакета. Пользовательский декодер может быть сколь угодно сложным.

· http://www.tamos.ru/products/commview/cust_decoder_c.zip. Проект Visual Studio с исходниками на C++.
· http://www.tamos.ru/products/commview/cust_decoder_d.zip. Проект Delphi с исходниками на Pascal.

Сложный декодер

При реализации этого типа декодера, результат будет отображаться, как дополнительные элементы основного дерева декодера в окне пакетов. Подробное руководство по созданию такого декодера можно получить здесь:

http://www.tamos.com/products/commview/complex_decoder_c7.zip

Сложный декодер может быть написан только на Microsoft Visual C++, так как он основан на классах C++.

Техническая поддержка

Техническая поддержка пользовательских декодеров осуществляется "по мере сил", но мы не всегда сможем оказаться в состоянии разрешить любую вашу проблему.