Студенческий сайт КФУ - ex ТНУ » Учебный раздел » Учебные файлы »ПРОГРАММИРОВАНИЕ

Визуализация сообщений модема Sierra MC7710 для программы WireShark

Тип: курсовая работа
Категория: ПРОГРАММИРОВАНИЕ
Скачать
Купить
Графический интерфейс программного продукта WireShark. Правила разработки программно подключаемых модулей WireShark. Программное обеспечение, реализующее визуализацию сообщений модема Sierra MC7710. Тестирование разработанной программы isfreader.
Краткое сожержание материала:

Размещено на

КУРСОВАЯ РАБОТА

Визуализация сообщений модема Sierra MC7710 для программы WireShark

МОСКВА 2013

ОГЛАВЛЕНИЕ

  • ВВЕДЕНИЕ
  • ГЛАВА 1. Методы разработки и подключения программно подключаемых модулей сетевого анализатора wireshark
    • 1.1 Графический интерфейс программного продукта WireShark
    • 1.2 Правила разработки программно подключаемых модулей WireShark
    • 1.3 Правила использования программно подключаемых модулей WireShark
    • Выводы по главе 1
  • ГЛАВА 2. Программное обеспечение визуализации сообщений модема sierra mc7710
    • 2.1 Интерфейс программного модуля СПО QXDM Professional
    • 2.2 Программное обеспечение, реализующее визуализацию сообщений модема Sierra MC7710
    • 2.3 Программное обеспечение, реализующее визуализацию сообщений модема Sierra MC7710 для программы WireShark
    • 2.4 Тестирование разработанной программы isfreader
    • Выводы по главе 2
  • Заключение
  • ЛИТЕРАТУРА
  • Приложение 1

ВВЕДЕНИЕ

Цель настоящей работы - исследование возможности создания программно подключаемого модуля для программы WireShark, реализующего визуализацию сообщений модема Sierra MC7710

Задачами данной курсовой работы являются:

- практическое освоение правил разработки и подключения программных модулей WireShark;

- изучение интерфейса программного модуля СПО QXDM Professional;

- разработка программы, реализующего визуализацию сообщений модема Sierra MC7710, включая отображение специальной информации, полученной после обработки сообщений программным модулем СПО QXDM Professional;

- исследование возможности интеграции разработанной программы в виде программного модуля WireShark.

Курсовая работа состоит из двух глав. В первой главе рассмотрены принципы разработки и использования программно подключаемых модулей WireShark на примере тестовой программы.

Во второй главе описана разработка программы с возможностью отображения сообщений модема Sierra MC7710 в шестнадцатеричном формате и специальной информации, полученной после обработки сообщений программным модулем СПО QXDM Professional. Так же описано исследование возможности интеграции разработанной программы в качестве программно подключаемого модуля WireShark.

ГЛАВА 1. Методы разработки и подключения программно подключаемых модулей сетевого анализатора wireshark

1.1 Графический интерфейс программного продукта WireShark

Программный продукт Wireshark представляет собой анализатор сетевых протоколов с графическим интерфейсом. Программа позволяет просматривать и анализировать пакеты, полученные из сетевого интерфейса или ранее собранного файла.

Для начала сборки перехваченных программой пакетов сообщений по сети, необходимо выбрать пункт главного меню Capture>Interfaces или кнопку на верхней панели инструментов List the available capture interfaces - после этого на экране появится следующее диалоговое окно:

Рис. 1.1. Окно выбора интерфейса

С помощью кнопки Options можно установить желаемые параметры работы программы. Для того чтобы начать работу, необходимо нажать кнопку Start.

Сетевой анализатор Wireshark включает в себя 3 области просмотра с различными уровнями детализации. Верхнее окно содержит список собранных пакетов с кратким описанием, в среднем окне изображено дерево протоколов, инкапсулированных в кадр. Ветви дерева могут быть раскрыты для повышения уровня детализации выбранного протокола. Последнее окно содержит дамп пакета в шестнадцатеричном или текстовом представлении. Программа обеспечивает возможность сбора всех пакетов заданного соединения TCP и представления данных в удобном для просмотра формате.

Рис. 1.2. Начало работы ПО WireShark

В верхней панели по умолчанию содержится 6 колонок - номера пакета в списке собранных, временная метка, адреса и номера портов отправителя и получателя, тип протокола и краткое описание пакета. Выбрав необходимый пакет из списка можно просмотреть содержимое средней панели. В ней представлено дерево протоколов для пакета. Дерево отображает каждое поле и его значение для заголовков всех протоколов стека.

Рис. 1.3. Дерево протоколов

Программа обладает большим набором вывода статистических данных о захваченных пакетах сообщений. Так, можно вывести общую таблицу иерархии протоколов при помощи пункта главного меню Statistics>Protocol Hierarchy.

Рис. 1.4. Таблица иерархии протоколов

Для наглядного представления результатов выполнения захвата пакетов и сборки кадров в программе имеется возможность отображения данной информации в виде графика числа пакетов в единицу времени. Для отображения данного графика необходимо воспользоваться пунктом главного меню Statistics>IO Graphs.

Рис. 1.5. График сбора пакетов

1.2 Правила разработки программно подключаемых модулей WireShark

В качестве примера программно подключаемого модуля для программного продукта WireShark приведен пример диссектора для протокола foo.

Структура пакета протокола foo:

- 1 байт - версия протокола;

- 1 байт - тип пакета;

- 1 байт - всевозможные флаги;

- 1 байт - булева переменная;

- 4 байт - длина полезной нагрузки;

- От 0 до 200 байт - полезная нагрузка.

Рассмотрим реализацию диссектора на языке C++. Все диссекторы сетевого анализатора WireShark используют стандартные заголовочные файлы, такие как config.h, glib.h, и packet.h.

Листинг 1.1

#ifdef HAVE_CONFIG_H

#include "config.h"

#endif

#include <epan/packet.h>

#define FOO_PORT 35000

//Номер UDP порта, на котором предполагаем будет находится FOO траффик.

static int proto_foo = -1;

/* При регистрации протокола переменная затрется идентификатором протокола. */

void proto_register_foo(void)

{

proto_foo = proto_register_protocol (

"FOO Protocol", /* полное имя */

"FOO", /* короткое имя */

"foo" /* аббревиатура */

);

}

Функция proto_register_protocol() регистрирует протокол и выдает его уникальный идентификатор. Функции передается три разных имени протокола, которые будут отображены в различных частях программы. (К примеру, имена «FOO Protocol» и «FOO» используются в настройках программного продукта Wireshark, а аббревиатура «foo» используется в поле фильтра.)

Функция create_dissector_handle() будет вызываться в случае необходимости расшифровать пойманный foo-пакет.

Листинг 1.2

void proto_reg_handoff_foo(void)

{

static dissector_handle_t foo_handle;

foo_handle = create_dissector_handle(dissect_foo, proto_foo);

dissector_add_uint("udp.port", FOO_PORT, foo_handle);

}

В данной части кода регистрируется обработчик-диссектор, который выполняет работу по разложению протокола по составу и привязываем его к протоколу proto_foo. Затем нужно связать обработчик с UDP портом, на котором будет ходить трафик. Таким образом, сетевой анализатор Wireshark вызовет соответствующую функцию, когда на заданном порту (35000) появится какая-либо активность. Есть соглашение, согласно которому фукнции proto_register_foo() и proto_reg_handoff_foo() необходио написать в конце нашего исходного файла.

Листинг 1.3

static void dissect_foo(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)

{

col_set_str(pinfo->cinfo, COL_PROTOCOL, "FOO");

col_clear(pinfo->cinfo, COL_INFO);

}

Функция dissect_foo() будет вызываться для детальной работы над пакетом, который ей передан. Данные пакета хранятся в специальном буфере - tvb. В pinfo находится общая информация о протоколе. А в переменной tree происходят основные изменения, когда определяется конечный вид протокола на выходе. Данного кода достаточно, чтобы программный продукт WireShark подхватил программно подключаемый модуль.

Программно подключаемый модуль пока что не несет функциональной нагрузки, поэтому его необходимо дополнить. Для начала нужно создать ветку на дереве (tree), в которую будут помещены результаты декодирования. Диссектор вызывается в двух различных случаях: в одном случае, когда необходимо получить сводную информацию о пакете, и в другом случае, когда нужно вывести детальную информацию о том же пакете. Если указатель на tree равен NULL, значит нужна только сводная информация. Иначе - нужно зап...

Другие файлы:

Wireshark Network Analysis (Second Edition): The Official Wireshark Certified Network Analyst Study Guide
Описание: Wireshark is the world's most popular network analyzer tool with over 500,000 downloads per month. This book provides insider tips and trick...

The Wireshark Field Guide: Analyzing and Troubleshooting Network Traffic
The Wireshark Field Guide provides hackers, pen testers, and network administrators with practical guidance on capturing and interactively browsing co...

Передача дискретных сообщений
Методы повышения верности при передаче дискретных сообщений по каналам с различными помехами. Основные и дополнительные функции современного модема дл...

Разработка модема и кодека для системы передачи данных
Структурная схема одноканальной системы передачи дискретных сообщений. Выбор оптимального типа кодирования. Код Хаффмана. Минимальная длина кодовой ко...

Wireshark ® 101: Essential Skills for Network Analysis (Wireshark Solutions)
This book is written for beginner analysts and includes 46 step-by-step labs to walk you through many of the essential skills contained herein. This b...