Linux serial port sniffer

Мониторить com-порты. How to ??

Как или чем мониторить состояния com-порты ? интересуют сигналы типа RTS|CTS|DTR|DSR|CD А так-же, неплохо было бы писать куданить сами данные ( принятые отправленные)

простейшая программа на C

осторожно — старо и слака, но вроде отчасти актуально трынц

Для просмотра данных, поступающих на COM-порт можно воспользоваться программой ttylog.

-b XXXX — скорость потра, можно не указывать, тогда автоматически определится. Возможные значения: 300, 1200, 2400, 4800, 9600, 19200, 38400, 57600 и 115200;

-d /dev/ttyACM0 — устройство COM-порта. В данном случае это виртуальный COM-порт через USB.

Возможно, что сработает просмотр через cat:

sersniff — простейшая утилита для создания туннеля/сниффера между двумя последовательными портами.

Serial line sniffer (slsnif) — утилита для логирования данных, проходящих через COM-порт. Данная программа слушает указанный последовательный порт и логирует все данные, которые передаются через порт в обоих направлениях.

Serial to Network Proxy (ser2net) — программа-демон для подключения сетевого соединения к последовательному порту.

Источник

HowTo: Linux Serial Port Sniffer

H ow do I sniff and monitor data on a serial port under Linux operating systems?

You can use the following tools:

a) jpnevulator – What once started as a Jackpot Navigator emulator (hence the strange name) is now a nice serial sniffer and you can use it to send data on a serial line too. It’s sort of like a very simple terminal emulator, like picocom. But jpnevulator uses hexadecimal byte values to display and send along the line. Very handy indeed if you are working a lot with serial protocols. Under Debian and Ubuntu you can install it as follows:
sudo apt-get install jpnevulator
You can use it as follows to monitor and sniff two serial ports:

b) pyserial – Use this project which is a multiplatform serial port module for Python (Win32, Jython, Linux, BSD and more).

  • No ads and tracking
  • In-depth guides for developers and sysadmins at Opensourceflare✨
  • Join my Patreon to support independent content creators and start reading latest guides:
    • How to set up Redis sentinel cluster on Ubuntu or Debian Linux
    • How To Set Up SSH Keys With YubiKey as two-factor authentication (U2F/FIDO2)
    • How to set up Mariadb Galera cluster on Ubuntu or Debian Linux
    • A podman tutorial for beginners – part I (run Linux containers without Docker and in daemonless mode)
    • How to protect Linux against rogue USB devices using USBGuard

Join Patreon

c) strace – You can trace system calls and signals including serial communication. See strace man page for the details.

🐧 Get the latest tutorials on Linux, Open Source & DevOps via

Источник

Снифф последовательный порт на Linux

Как я могу прослушивать пакеты, передаваемые через последовательный порт в Linux?

Есть несколько вариантов:

sersniff — это простая программа для туннелирования / прослушивания между двумя последовательными портами.

Serial to Network Proxy (ser2net) предоставляет пользователю способ подключения из сетевого подключения к последовательному порту.

Читайте также:  Какие есть виртуальные машины для linux

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

sercd — это перенаправитель последовательного порта, совместимый с RFC 2217. Это позволяет вам использовать последовательный порт через сеть. Это основано на Sredird. Протокол RFC2217 является расширением для telnet и позволяет изменять параметры порта связи.

SerLooK — это приложение KDE для проверки данных, передаваемых по последовательным линиям. Он может работать как бинарный терминал, который отправляет и получает данные через определенный порт (режим «точка-точка») и отображает их в отдельных представлениях. Каждое представление может быть настроено для отображения данных в шестнадцатеричном, десятичном, восьмеричном, двоичном и необработанном ASCII. Также возможно выполнить ввод / вывод через представления эмуляции терминала и определить вторичный порт и контролировать трафик между двумя внешними хостами, используя кабель «Y» (режим Snooper).

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

ttywatch контролирует, регистрирует и мультиплексирует терминальный ввод-вывод. Он имеет встроенную полную ротацию логов и может использовать как telnet, так и локальные порты TTY.

Анализатор последовательной линии (slsnif) — это утилита регистрации последовательного порта. Он слушает указанный последовательный порт и регистрирует все данные, проходящие через этот порт в обоих направлениях.

Я попытался перехватить ( копия на GitHub ), и успешно его использовал. Сначала я запустил его в интересующем порту:

Затем я подключил тестируемую программу к псевдотерминалу, /dev/pts/5 который создал перехват.

Я попытался использовать slsnif , но обнаружил, что получил ошибку:

Этот элемент списка рассылки указывает, что slsnif поддерживает только «устаревшие» псевдо-терминалы (и /dev/ttyp0 т. Д.) , Которые , вероятно, не используются в современных ядрах Linux.

Источник

slsnif(1) — Linux man page

Synopsis

Description

slsnif operates either by creating a pseudo tty (pty) and linking it to the serial port, or by linking two serial ports together. In order to set up a debug session one has either to start slsnif on a given port first, note the pty it had opened (also available from file /tmp/slsnif_pty while slsnif is running), then configure the controlling software for the device being debugged to use this pty instead of the actual port, or, in case of two ports being used, simply start slsnif on two ports (see option -p) and watch the show 🙂

Note 1 : Slsnif will try to match port settings on pty and port (or on 1st and 2nd ports) as soon as it detects first chunk of data coming from the «host side» (which is either pty or 2nd port). If it fails (in case of a braindead controlling software that doesn’t set the baudrate correctly), one has an ability to set baudrate by hand via option -s. Controlling software and slsnif should be set up to use the same baudrate, which in turn should match the baudrate used by the device connected to the port.

Читайте также:  Repair windows boot from command prompt

Note 2 : If controlling software is running under vmware (www.vmware.com) and pty is used, port in question should be disconnected from vmware before invoking slsnif, and connected to the opened pty after slsnif has been started.

Parameters

(required) First (and only one in case of pty being used) serial port to listen to. (/dev/ttyS0, /dev/ttyS1, etc.)

Options

]) Use real serial port instead of pty. Useful when one needs to log data going between two ports. [-n] ([—nolock]) Disable locking of the port. Normally not a good idea, but can be very useful if one doesn’t have permissions to write to lock directory (usually /var/lock/) [-t] ([—timestamp]) Print timestamp for every transmission. [-x] ([—hex]) Display hexadecimal ascii values. [-u] ([—unix98]) Use SYSV (Unix98) ptys instead of BSD ptys. [—color ] Color to use for normal output. [—timecolor ] Color to use for timestamp. [—bytescolor ] Color to use for number of bytes transmitted.
Valid values are:
black, red, green, yellow, blue, magenta,
cyan, white, brightblack, brightred,
brightgreen, brightyellow, brightblue,
brightmagenta, brightcyan, and brightwhite. [-h] ([—help]) Display help.

Rc File

The following options can be specified via rc-file ‘.slsnifrc’, which should be located in the user’s home directory: TOTALBYTES ON/OFF — corresponds to -b (—bytes). TIMESTAMP ON/OFF — corresponds to -t (—timestamp). DISPLAYHEX ON/OFF — corresponds to -x (—hex). NOLOCK ON/OFF — corresponds to -n (—nolock). SYSVPTY ON/OFF — corresponds to -u (—unix98). COLOR — corresponds to —color . TIMECOLOR — corresponds to —timecolor . BYTESCOLOR — corresponds to —bytescolor .

Options specified via command line always override the ones specified via rc-file.

Example

slsnif -n -l log.txt -s 2400 /dev/ttyS1
Started logging data into file ‘log.txt’.
Opened pty: /dev/ttyp0
Saved name of the pty opened into file ‘/tmp/slsnif_pty’.
Opened port: /dev/ttyS1
Baudrate is set to 2400 baud.

Note: pty slsnif has opened is /dev/ttyp0.

Signals

SIGHUP signal causes slsnif to move file pointer in all log files back to the beginning. This is useful for example when logfiles are rotated by logrotate. SIGUSR1 signal causes slsnif to re-synchronize settings between ttys at any time. Useful for debugging software that changes port settings in the middle of transmission.

Источник

Linux serial port sniffer

Как просниферить com-порт на linux?
Пробовл запустить прогу, работающую с com портом и minicom
одновременно,
прога пашет, обмен идет, а в миникоме пусто.
Подскажите пожалуйста как увидеть что ушло/пришло из компорта?

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

Оглавление

  • Как просниферить com-порт на linux, exn, 15:25 , 03-Мрт-07, (1)
    • Как просниферить com-порт на linux, Vaso Petrovich, 15:58 , 03-Мрт-07, (2)
      • Как просниферить com-порт на linux, exn, 16:23 , 03-Мрт-07, (3)
      • Как просниферить com-порт на linux, exn, 16:34 , 03-Мрт-07, (4)
        • Как просниферить com-порт на linux, exn, 16:56 , 03-Мрт-07, (5)
          • Как просниферить com-порт на linux, fantom, 11:12 , 05-Мрт-07, (6)
            • Как просниферить com-порт на linux, chip, 11:09 , 09-Мрт-07, ( 7 )

Сообщения по теме [Сортировка по времени, UBB]

1. «Как просниферить com-порт на linux»
Сообщение от exn on 03-Мрт-07, 15:25
Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

2. «Как просниферить com-порт на linux»
Сообщение от Vaso Petrovich on 03-Мрт-07, 15:58

зачем же так категарично? думать надо и все получится 🙂 есть устройсва типа moxa которе сеть в com превращает. даль любимый снифер в руки.

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

3. «Как просниферить com-порт на linux»
Сообщение от exn on 03-Мрт-07, 16:23

Для перехвата данных идущих через сом я всегда пытался найти патч(ненавижу это слово)

Вы имеете ввиду сом превратить в сеть и через сеть обратно в порт ?
тоесть так ?

open -> /dev/ttyMOXAвсякое
tcpdump MOXAФЕЙС
kernel / dev/ttyS0

а так бывает чтоли ?
я правильно понял мысль ?

Очень вас прошу хоть ссылку дайте . хоть немного конкретнее, меня очень заинтересовал
этот вопрос .

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

4. «Как просниферить com-порт на linux»
Сообщение от exn on 03-Мрт-07, 16:34

>зачем же так категарично? думать надо и все получится 🙂 есть устройсва
>типа moxa которе сеть в com превращает. даль любимый снифер в
>руки.

я наверное просто неправильно вас понял, вы имеете ввиду трафик. А я имею ввиду
низкоуровневый програмный перехват данных идущих в порт, в Линуксе это организовать
сложно, сильно быстро все переделывают, да и код тяжеловат, тудаб какой printk всунуть
для порта за радость, тока предварительно изучив много кода и понять что к чему, можно
извращаться. Хотя для виндоус есть очень толковые снифера, при всем том что исходники
закрыты. Лично я сломался на ядре и нет желания опять туда лезть.

Решения есть конечно, но они для 2.0.1 2.2.1 и более не поддерживаються(со времен serial.c)
2.6.20 накуралесили так что туда и лезть неохота, вот

имхо, возможно я чегото недопонял

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

5. «Как просниферить com-порт на linux»
Сообщение от exn on 03-Мрт-07, 16:56

вот подобной тематики
насколько я помню неодин из них не работает так как надо :((

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

6. «Как просниферить com-порт на linux»
Сообщение от fantom (??) on 05-Мрт-07, 11:12

Спасибо, будем пробовать-смотреть.
Нужна банальная запись всего что прошлов обоих направлениях через com порт.
Теоретически идею мне подсказали — «Завернуть все через fifo и смотреть»
Но моих познаний для попыток проделать подобное нехватает 🙁

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

7 . «Как просниферить com-порт на linux»
Сообщение от chip (ok) on 09-Мрт-07, 11:09

>>http://unix.freshmeat.net/redir/linuxserialsniffer/5870/url_tgz/serial_sniffer-0.5.tar.gz
>>http://unix.freshmeat.net/redir/slsnif/14158/url_tgz/slsnif-0.4.4.tar.gz
>>http://unix.freshmeat.net/redir/serialsnoop/35427/url_tgz/sersnoop-current.tar.gz
>>
>>вот подобной тематики
>>насколько я помню неодин из них не работает так как надо :((
>>
>
>Спасибо, будем пробовать-смотреть.
>Нужна банальная запись всего что прошлов обоих направлениях через com порт.
>Теоретически идею мне подсказали — «Завернуть все через fifo и смотреть»
>Но моих познаний для попыток проделать подобное нехватает 🙁

Можно развернуть идентичную тестовую машину в qemu. Он с помощью ключика -serial умеет перенаправлять вывод в различные направления.

Источник

Читайте также:  Sunmi ns021 windows 10
Оцените статью