SpyPort Сниффер/Логгер для последовательного порта

Сниффер и логгер для последовательного порта


Что такое SpyPort для SerialTool?

SpyPort - это функциональность SerialTool, которая позволяет мониторить весь трафик последовательного порта в среде Windows непосредственно из ядра.
Этот подход использует специально разработанный драйвер для SerialTool нашей командой, чтобы перехватывать все вызовы, которые операционная система направляет на конкретный COM-порт.
Более того, можно "прослушивать" последовательную связь даже в том случае, если COM-порт открыт и используется другим приложением, поскольку драйвер ядра перехватывает и фильтрует сигналы IRP и IOCTL_SERIAL Windows.
Эта функция SerialTool доступна только в версии PRO.

Основной экран

Что может быть прослушано и зарегистрировано?

Можно селективно фильтровать некоторые из этих интересующих сигналов или прямо весь низкоуровневый трафик. SpyPort предлагает возможность сохранять только исходящий трафик (IRP_MJ_WRITE), входящий трафик (IRP_MJ_READ) или весь полный трафик, выбрав один или все IOCTL_SERIAL. Данные ввода и вывода могут быть сохранены в текстовом или двоичном формате для IRP_MJ_WRITE и IRP_MJ_READ (TX и RX порта COM) и в текстовом формате для других сигналов.

Как отображаются прослушанные/зарегистрированные данные?

SerialTool благодаря своим передовым функциям позволяет подробно просматривать каждый отдельный пакет, отображая данные в нем в формате ASCII или шестнадцатеричном.
Эта особенность облегчает и способствует более быстрой и целенаправленной консультации, а также позволяет искать определенные шаблоны в пакете или сохранять/экспортировать интересующий пакет в бинарном формате или копировать его в буфер обмена в формате ASCII.
Каждый пакет тщательно отображается, указывая все важные данные, такие как точное время приема (в миллисекундах), тип пакета, прошедшее время между предыдущим и следующим пакетом.
Тип анализа пакета соответствует пакетам сессии, введенным в версии 1.6.0 SerialTool.
Регистрацию можно остановить в любой момент, не затрагивая при этом программное обеспечение, использующее COM-порт в данный момент.

ASCII и шестнадцатеричное представление прослушанного последовательного пакета.

Примеры использования SpyPort с SerialTool

Области применения модуля SpyPort разнообразны, включая:

1. Мониторинг собственных и сторонних приложений.

В индустриальном и встраиваемом мире понять и обнаружить ошибку часто бывает очень сложно. Иногда собственные приложения или приложения сторонних разработчиков имеют дефекты, которые проявляются через несколько часов, и разработчик может не быть на месте, чтобы обнаружить и устранить проблему. Вот почему SerialTool со своим модулем SpyPort разработан для обеспечения длительных периодов прослушивания/регистрации интуитивно и эф фективно, помогая разработчику определить причину проблемы.
Классическим примером может быть промышленное приложение, в котором официальное производственное программное обеспечение общается через последовательный порт с другими устройствами.
Если возникает ошибка, важно иметь возможность мониторинга поведения программного обеспечения в его официальном "релизном" режиме, чтобы определить, где возникает проблема. SpyPort не вмешивается в программное обеспечение, на которое направлен мониторинг, и позволяет анализировать весь входящий и исходящий трафик.

2. Обратная разработка.

В ситуации, когда требуется "захватить" трафик, поступающий и исходящий через последовательный порт определенного программного обеспечения, например, во время загрузки прошивки на подключенное устройство, SpyPort - идеальный инструмент! Он позволяет непосредственно сохранять все переданные байты в бинарном формате из стороннего программного обеспечения и захватывать интересующие данные (например, прошивку).

3. Отладка.

При разработке программного обеспечения для последовательного порта абсолютно необходимо убедиться, что отправленные и принятые данные правильные, следуют определенному таймингу, а иногда также необходимо правильно управлять другими сигналами COM-порта, такими как DTR и RTS.
Когда разработчик пишет свое собственное программное обеспечение, SpyPort помогает проверить, соответствует ли работа последовательного порта ожиданиям, правильно ли открыт последовательный порт и выполняются ли чтение и запись в соответствии с требованиями. В этом случае SerialTool с его модулем SpyPort становится неотъемлемым инструментом работы для пошаговой проверки правильности написания всего программного обеспечения. Когда вы хотите создать программное обеспечение, взаимодействующее с последовательным портом, SpyPort становится абсолютно необходимым.

Filtered Signals by SerialTool

IRP_MJ and IOCTL_SERIAL interpreted signals.

Signals List:

  • IRP_MJ_CREATE
  • IRP_MJ_CLOSE
  • IRP_MJ_CLEANUP
  • IRP_MJ_READ
  • IRP_MJ_WRITE
  • IRP_MJ_FLUSH_BUFFERS
  • IRP_MJ_QUERY_INFORMATION
  • IRP_MJ_SET_INFORMATION
  • IRP_MJ_SYSTEM_CONTROL
  • IOCTL_SERIAL_GET_BAUD_RATE
  • IOCTL_SERIAL_SET_BAUD_RATE
  • IOCTL_SERIAL_GET_HANDFLOW
  • IOCTL_SERIAL_SET_HANDFLOW
  • IOCTL_SERIAL_GET_LINE_CONTROL
  • IOCTL_SERIAL_SET_LINE_CONTROL
  • IOCTL_SERIAL_GET_TIMEOUTS
  • IOCTL_SERIAL_SET_TIMEOUTS
  • IOCTL_SERIAL_SET_QUEUE_SIZE
  • IOCTL_SERIAL_CONFIG_SIZE
  • IOCTL_SERIAL_GET_CHARS
  • IOCTL_SERIAL_SET_CHARS
  • IOCTL_SERIAL_SET_DTR
  • IOCTL_SERIAL_CLR_DTR
  • IOCTL_SERIAL_SET_RTS
  • IOCTL_SERIAL_CLR_RTS
  • IOCTL_SERIAL_SET_WAIT_MASK
  • IOCTL_SERIAL_GET_WAIT_MASK
  • IOCTL_SERIAL_WAIT_ON_MASK
  • IOCTL_SERIAL_PURGE
  • IOCTL_SERIAL_GET_COMMSTATUS
  • IOCTL_SERIAL_SET_BREAK_OFF
  • IOCTL_SERIAL_SET_BREAK_ON
  • IOCTL_SERIAL_CLEAR_STATS
  • IOCTL_SERIAL_RESET_DEVICE
  • IOCTL_SERIAL_SET_FIFO_CONTROL
  • IOCTL_SERIAL_SET_MODEM_CONTROL
  • IOCTL_SERIAL_SET_XOFF
  • IOCTL_SERIAL_SET_XON
  • IOCTL_SERIAL_GET_MODEM_CONTROL