Home
Contents

CommView for WiFi - анализ и мониторинг беспроводных сетей

Prev Page Next Page
 
Введение
О программе CommView for WiFi
Что нового
Работа с программой
Установка драйвера
Обзор
Главное меню
Узлы
Детальная информация по точкам доступа и станциям
Каналы
Текущие IP-соединения
Пакеты
Log-файлы
Просмотр Log-файлов
Правила
Универсальные правила
Предупреждения
Ключи WEP/WPA
Реконструкция TCP-сессий
Реконструкция UDP-потоков
Поиск пакета
Статистика и отчеты
Псевдонимы
Генератор пакетов
Визуальный конструктор пакетов
Производитель NIC
Захват по расписанию
Реассоциация узлов
Работа с CommView Remote Agent for WiFi
Использование RPCAP
Использование Aruba remote capture
Информация о портах
Установка опций
Ответы на вопросы (FAQ)
Анализ VoIP
Введение
Работа с анализатором VoIP
Сессии SIP и H.323
Потоки RTP
Регистрации, станции, ошибки
Log-файлы звонков и отчеты
Воспроизведение звонка
Просмотр VoIP log-файлов
Работа со списками в анализаторе VoIP
Файлы NVF
Дополнительные главы
Мониторинг сетей 802.11n и 802.11ас
Ошибки CRC и ICV
Расшифровывание WPA
Об уровне сигнала
Захват пакетов A-MPDU и A-MSDU
Использование CommView For WiFi на виртуальной машине
Многоканальный захват
Спектральный анализ
Перехват больших объемов трафика
Невидимый режим
Параметры командной строки
Обмен данными с вашим приложением
Пользовательский модуль декодирования
Формат Log-файлов CommView
Информация
Как купить CommView for WiFi

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

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

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

Если он используется, то результаты его работы будут показаны в дополнительной колонке закладки Пакеты. Пользовательский декодер должен быть 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 for WiFi. При запуске CommView for WiFi ищет файл с именем "Custom.dll" и загружает его в память. Если в нем найдена точка входа "Decode" - CommView for WiFi добавляет новую колонку с именем "Custom" в списке пакетов.

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

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

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

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

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

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

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

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

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