Сниффер com порта linux

Сниффер com порта linux

Как просниферить 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 умеет перенаправлять вывод в различные направления.

Источник

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) предоставляет пользователю способ подключения из сетевого подключения к последовательному порту.

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.

Источник

Sniff serial port on Linux

How can I sniff packets communicated through a serial port on Linux?

3 Answers 3

There are a few options:

sersniff is a simple program to tunnel/sniff between 2 serial ports.

Serial to Network Proxy (ser2net) provides a way for a user to connect from a network connection to a serial port.

SerialSpy acts as a serial pass-through device. It listens for incoming data on two serial ports and forwards it so the devices act as if they are directly connected. It also logs the data as it moves through the ports.

sercd is an RFC 2217-compliant serial port redirector. It lets you share a serial port through a network. It is based on sredird. The RFC2217 protocol is an extension to telnet and allows changing communication port parameters.

SerLooK is a KDE application for inspecting data going over serial lines. It can work as a binary terminal that sends and receives data through a defined port (Point to Point mode) and displays them on separate views. Each view can be configured to display data in hexadecimal, decimal, octal, binary, and raw ASCII. It is also possible to perform I/O through terminal emulation views and define a secondary port and monitor the traffic between two external hosts using a «Y» cable (Snooper mode).

nullmodem creates a virtual network of pseudo-terminals. It can be used as an adapter to connect two programs that normally need serial interface cards.

ttywatch monitors, logs, and multiplexes terminal I/O. It has full log rotation built in, and can use telnet as well as local TTY ports.

Serial line sniffer (slsnif) is a serial port logging utility. It listens to the specified serial port and logs all data going through this port in both directions.

Источник

Заметки о Linux, электронике, радиолюбительстве

Личный блог Вадима Кузнецова, RA3XDH

воскресенье, 27 июля 2014 г.

Работа с последовательным портом из консоли Linux

В предыдущем посте было показано как запустить UART на отладочной плате Launchpad для MSP430. Теперь рассмотрим как общаться с платой при помощи средств командной строки Linux. Используется плата с прошивкой из предыдущего поста. Для подробностей — см. под кат

Как известно, все устройства последовательных портов представлены файлами устройств в каталоге /dev.Через эти файлы и происходит общение ОС Linux с внешним устройством на последовательном порту. Чтобы передать что-то на внешнее устройство нужно записать данные в файл устройства, а чтобы считать информацию из устройства — прочитать данные из файла устройства. Это можно делать при помощи команд cat и echo так же как для обычных файлов на диске. Или внутри программы на С при помощи вызовов ioctl(), read() и write() или библиотеки termios.

Физическим последовательным портам RS232, к которым подключались диалапные модемы на старых компьютерах, соответствуют файлы устройств /dev/ttyS*, начиная с /dev/ttyS0. Виртуальным последовательным портам, которые создаются различными конвертерами USB UART соответствуют файлы устройств /dev/ttyUSB* и /dev/ttyACM*. Ядро Linux автоматически разпознаёт подключенное устройство, загружает для него драйвер и создаёт файл устройства. Вручную устанавливать драйвер, как в ОС Windows не требуется. Например, если подключить к USB преобразователь USB UART FT232, то создаётся файл устройства /dev/ttyUSB0, с которым можно работать также как и с обычным последовательным портом. На плате Launcpad находится микросхема TUSB3410, которая тоже представляет собой конвертер USB UART. Если подключить её к USB, то создаётся файл устройства /dev/ttyACM0. Чтобы общаться с платой нужно что-либо писать/читать с этого файла.

Чтобы пользователь мог читать или писать в файл устройства последовательного порта, его нужно добавить в группу dialout. Иначе работать с последовательным портом сможет только администратор root.

Простейшим приложением с графическим интерфейсом, которое работает с последовательным портом, является CuteCOM. Он обычно уже есть в вашем дистрибутиве Linux. Его можно установить из репозиториев. При помощи CuteCOM мы работали с платой в предыдущем посте. Выглядит CuteCOM вот так:

Работать с ним крайне просто. Указываем нужное устройство, если его нет в списке, то его можно впечатать вручную. Затем указываем скорость и параметры и нажимаем OpenDevice. В окне видим данные, которые пришли от устройства. В поле ввода в нижней части можем печать строку символов, которые предаются на устройство. Чтобы передать данный нажимаем Enter и смотрим ответ устройства в окне.

Теперь рассмотрим как работать с COM-портом из командной строки. Для этого служат три команды: stty, cat и echo.

Команда stty устанавливает параметры и скорость COM-порта. Её формат:

stty -F

Чтобы установить параметры для платы Launchpad для соединения на скорости 9600 нужно выполнить:

$ stty 9600 -F /dev/ttyACM0 raw -echo

Параметр raw устанавливает, что данные в компьютер передаются байт за байтом так же как приходят в порт без преобразований. Аппаратное управление потоком отключено. Подробнее о том, что включает и выключает raw — см. man stty. Если не включить raw, то скорее всего ничего работать не будет.

Теперь в той же консоли нужно набрать

$ cat /dev/ttyACM0

И можно смотреть данные, которые приходят от платы. Выход — нажать Ctrl+C.

Теперь нажимаем на плате RESET и видим, что в консоди напечатался текст.

Чтобы передать в плату данные, в другой консоли нужно использовать команду echo и перенаправление вывода в файл устройства. Наберём в другой консоли:

$ echo "1">/dev/ttyACM0

Видим, что на плате загорелся красный светодиод и в первой консоли было выдано сообщение об этом. Чтобы убрать конец строки в передаваемых данных, то нужно использовать запуск echo -n, а чтобы интерпретировать 16-ричные коды — нужно echo -e. Ключи можно комбинировать.

В итоге должно получиться так:

Чтобы увидеть 16-ричные коды данных, приходящих от устройства, нужно использовать команду hexdump:

$ cat /dev/ttyACM0|hexdump -C

Получится вот так:

Чтобы иметь вывод данных от устройство на экран и в текстовый файл нужно использовать tee:

Источник

Читайте также:  Как удалить глобальное обновление windows 10
Оцените статью