Jak mogę wąchać pakiety komunikowane przez port szeregowy w systemie Linux?
linux
serial
packet-sniffer
Peter Mortensen
źródło
źródło
Odpowiedzi:
Istnieje kilka opcji:
sersniff to prosty program do tunelowania / wąchania między 2 portami szeregowymi.
Serial to Network Proxy (ser2net) zapewnia użytkownikowi możliwość połączenia z połączenia sieciowego do portu szeregowego.
SerialSpy działa jak szeregowe urządzenie tranzytowe . Nasłuchuje przychodzących danych na dwóch portach szeregowych i przesyła je dalej, aby urządzenia działały tak, jakby były bezpośrednio połączone. Rejestruje również dane, gdy przemieszcza się przez porty.
sercd to readresator portów szeregowych zgodny z RFC 2217. Umożliwia współdzielenie portu szeregowego przez sieć. Opiera się na świcie. Protokół RFC2217 stanowi rozszerzenie usługi Telnet i umożliwia zmianę parametrów portu komunikacyjnego.
SerLooK to aplikacja KDE do kontroli danych przechodzących przez linie szeregowe. Może działać jako terminal binarny, który wysyła i odbiera dane przez określony port (tryb Point to Point) i wyświetla je w osobnych widokach. Każdy widok można skonfigurować do wyświetlania danych w formacie szesnastkowym, dziesiętnym, ósemkowym, binarnym i surowym ASCII. Możliwe jest również wykonywanie operacji we / wy za pomocą widoków emulacji terminala oraz definiowanie portu dodatkowego i monitorowanie ruchu między dwoma hostami zewnętrznymi za pomocą kabla „Y” (tryb Snooper).
nullmodem tworzy wirtualną sieć pseudoterminalów. Może być używany jako adapter do połączenia dwóch programów, które normalnie wymagają kart interfejsu szeregowego.
ttywatch monitoruje, loguje i multipleksuje terminale I / O. Ma wbudowaną pełną rotację logów i może używać zarówno telnet, jak i lokalnych portów TTY.
Sniffer linii szeregowej (slsnif) to narzędzie do rejestrowania portów szeregowych. Nasłuchuje na określonym porcie szeregowym i rejestruje wszystkie dane przechodzące przez ten port w obu kierunkach.
źródło
socat
itee
. 1)socat -d -d pty,raw,echo=0 pty,raw,echo=0
. Wyjście da ci dwa porty...N PTY is /dev/pts/27... N PTY is /dev/pts/28
. 2)sudo cat /dev/ttyS0 | tee /dev/pts/27
i w innym terminalusudo cat /deb/pts/27 | tee /dev/ttyS0
. Wreszcie 3) Podłącz swój program do/dev/tty/28
. Dwie komendy tee zrzucą oba kierunki do konsoli i przekażą do / z faktycznego portu szeregowego. Należy pamiętać, że ustawienia portu, takie jak szybkość transmisji, należy skonfigurować wcześniej.cat /dev/pts/27 | sudo tee /dev/ttyS0 serial-caps
ixxd
pomoże, jeśli jest to protokół binarny:cat /dev/pts/27 | sudo tee /dev/ttyS0 serial-caps | xxd
./deb/pts/27
powinno być/dev/pts/27
.cat /deb/pts/27 | tee /dev/ttyS0
Powinien też byćcat /dev/pts/27 | sudo tee /dev/ttyS0
Próbowałem przechwycenia ( kopiowanie na GitHub ) i udało mi się go użyć. Najpierw uruchomiłem go w interesującym porcie:
Następnie podłączyłem testowany program do pseudo-terminala,
/dev/pts/5
który utworzył przechwycenie.Próbowałem użyć slsnif , ale znalazłem błąd:
Ta pozycja listy mailingowej wskazuje, że slsnif obsługuje tylko „starsze” pseudo-terminale (
/dev/ttyp0
itp.), Które prawdopodobnie nie są używane w obecnych jądrach Linuksa.źródło
interceptty
i działałem!Spróbuj użyć jpnevulator (w pakiecie debian) lub slsniff . Zauważ, że slsniff używa przestarzałego modelu emulacji terminala.
źródło