Linux'ta seri bir porttan iletilen paketleri nasıl koklayabilirim?
Linux'ta seri bir porttan iletilen paketleri nasıl koklayabilirim?
Yanıtlar:
Birkaç seçenek var:
sersniff 2 seri port arasında tünelleme / burnunu çekmek için basit bir programdır.
Seriden Ağa Proxy (ser2net) , bir kullanıcının bir ağ bağlantısından bir seri bağlantı noktasına bağlanmasını sağlar.
SerialSpy seri geçiş aygıtı olarak işlev görür. İki seri porttan gelen verileri dinler ve iletir, böylece cihazlar doğrudan bağlıymış gibi davranır. Ayrıca, portlardan geçerken verileri de kaydeder.
sercd , RFC 2217 uyumlu bir seri port yönlendiricidir. Seri bağlantı noktasını bir ağ üzerinden paylaşmanıza olanak tanır. Sredird dayanmaktadır. RFC2217 protokolü telnet'in bir uzantısıdır ve iletişim portu parametrelerinin değiştirilmesine izin verir.
SerLooK , seri hatlardan geçen verileri incelemek için kullanılan bir KDE uygulamasıdır. Tanımlanmış bir porttan (Noktadan Noktaya modu) veri gönderip alan ve bunları ayrı görünümlerde görüntüleyen bir ikili terminal olarak çalışabilir. Her görünüm, verileri onaltılık, ondalık, sekizli, ikili ve ham ASCII olarak görüntülemek üzere yapılandırılabilir. Terminal emülasyon görünümleri aracılığıyla G / Ç gerçekleştirmek ve ikincil bir port tanımlamak ve bir "Y" kablosu (Snooper modu) kullanarak iki harici ana bilgisayar arasındaki trafiği izlemek de mümkündür.
nullmodem sanal bir sözde-terminal ağı yaratır. Normalde seri arayüz kartlarına ihtiyaç duyan iki programı bağlamak için bir adaptör olarak kullanılabilir.
ttywatch terminal G / Ç'yi izler, günlüğe kaydeder ve çoğaltır . Tam günlük dönme yerleşiktir ve yerel TTY bağlantı noktalarının yanı sıra telnet'i de kullanabilir.
Seri hat dinleyicisi (slsnif), seri bağlantı noktası günlüğe kaydetme yardımcı programıdır. Belirtilen seri bağlantı noktasını dinler ve bu bağlantı noktasından geçen tüm verileri her iki yönde de kaydeder.
socat
ve kullanarak standart araçlarla başarabilirsiniz tee
. 1) socat -d -d pty,raw,echo=0 pty,raw,echo=0
. Çıktı size iki bağlantı noktası verecek ...N PTY is /dev/pts/27... N PTY is /dev/pts/28
. 2) sudo cat /dev/ttyS0 | tee /dev/pts/27
ve başka bir terminalde sudo cat /deb/pts/27 | tee /dev/ttyS0
. Sonunda 3) Programınıza bağlanın /dev/tty/28
. İki tee komutu her iki yöne de konsola bırakacak ve gerçek seri bağlantı noktasına iletecek. Baudrate gibi port ayarlarının önceden yapılması gerektiğini unutmayın.
cat /dev/pts/27 | sudo tee /dev/ttyS0 serial-caps
ve xxd
bunun bir ikili protokol olmadığını yardımcı olacaktır: cat /dev/pts/27 | sudo tee /dev/ttyS0 serial-caps | xxd
.
/deb/pts/27
olması gerekir /dev/pts/27
. Ayrıca cat /deb/pts/27 | tee /dev/ttyS0
olmalıdırcat /dev/pts/27 | sudo tee /dev/ttyS0
Interpeptty'yi ( GitHub'da kopyala ) denedim ve kullanmakta başarılı oldum. İlk önce ilgi limanına koştum:
interceptty /dev/ttyACM0
Daha sonra test altındaki programı arayarak /dev/pts/5
interteptty'nin yarattığı sözde terminale bağladım .
Slsnif kullanmaya çalıştım ama bir hata aldığımı öğrendim:
Failed to open a pty: No such file or directory
Bu posta listesi maddesi , slsnif'in /dev/ttyp0
muhtemelen mevcut Linux çekirdeğinde kullanılmayan "eski" sahte terminalleri ( vb.) Desteklediğini gösterir .
interceptty
ve çalıştım !
Jpnevulator (paketlenmiş debian) veya slsniff kullanmayı deneyin . Slsniff'in kullanımdan kaldırılmış bir terminal emülasyon modeli kullandığını unutmayın.