SpyPort Sniffer/Logger Série

Sniffer et enregistreur pour le port série


Qu'est-ce que SpyPort pour SerialTool?

SpyPort est une fonctionnalité de SerialTool qui permet de surveiller tout le trafic du port série dans un environnement Windows directement depuis le noyau.
Cette approche utilise un pilote spécialement développé par notre équipe pour SerialTool afin d'intercepter tous les appels que le système d'exploitation adresse à un port COM spécifique.
Plus précisément, il est possible d'"espionner" la communication série même si le port COM est ouvert et utilisé par une autre application, car le pilote du noyau intercepte et filtre les signaux IRP et IOCTL_SERIAL de Windows.
Cette fonctionnalité de SerialTool n'est disponible que dans la version PRO.

Écran principal

Qu'est-ce qui peut être espionné et enregistré?

Il est possible de filtrer sélectivement certaines de ces signaux d'intérêt ou tout le trafic de bas niveau directement. SpyPort offre la possibilité de sauvegarder uniquement le trafic sortant (IRP_MJ_WRITE), le trafic entrant (IRP_MJ_READ) ou tout le trafic complet en sélectionnant un ou tous les IOCTL_SERIAL. Les données entrantes et sortantes peuvent être enregistrées au format texte ou binaire pour IRP_MJ_WRITE et IRP_MJ_READ (TX et RX du port COM) et au format texte pour les autres signaux.

Comment les données espionnées/enregistrées sont-elles affichées?

Grâce à ses fonctionnalités avancées, SerialTool permet de voir en détail chaque paquet en affichant les données qu'il contient en format ASCII ou hexadécimal.
Cette fonctionnalité facilite et favorise une consultation plus rapide et ciblée et permet en même temps de rechercher des motifs spécifiques dans un paquet ou de sauvegarder/exporter le paquet d'intérêt au format binaire ou de le copier dans le presse-papiers en format ASCII.
Chaque paquet est affiché soigneusement en indiquant toutes les données importantes telles que le moment précis de réception (en millisecondes), le type de paquet, le temps écoulé entre le paquet précédent et le suivant.
Le type d'analyse du paquet suit celui des paquets de session introduits dans la version 1.6.0 de SerialTool.
Il est possible d'arrêter l'enregistrement à tout moment sans compromettre le logiciel qui utilise le port COM à ce moment-là.

Affichage ASCII et hexadécimal d'un paquet série espionné.

Exemples d'utilisation de SpyPort avec SerialTool

Les domaines d'application du module SpyPort sont nombreux, notamment :

1. Surveillance d'applications propres et de tierces parties.

Dans le monde industriel et intégré, il est très difficile de comprendre et de détecter quand une erreur se produit. Parfois, nos propres applications ou celles de tiers présentent des défauts qui se manifestent après plusieurs heures et le développeur ne peut pas être présent pour détecter et résoudre le problème. C'est pourquoi un SerialTool avec son module SpyPort est conçu pour garantir de longues périodes d'écoute/enregistrement de manière intuitive et efficace, aidant le développeur à identifier la cause du problème.
Un exemple classique peut être une application industrielle où le logiciel de production officiel communique via le port série avec d'autres dispositifs.
S'il y a un défaut, il est important de pouvoir surveiller le comportement du logiciel dans son mode "release" officiel pour voir où se situe le problème. SpyPort n'interfère pas avec le logiciel surveillé et permet d'analyser tout le trafic entrant et sortant.

2. Rétro-ingénierie.

Dans un scénario où l'on souhaite "capturer" le trafic entrant et sortant du port série d'un logiciel spécifique, par exemple lors du téléchargement d'un micrologiciel sur un appareil connecté , SpyPort est l'outil idéal ! Il permet de sauvegarder directement en format binaire tous les octets transmis d'une application tierce et de capturer les données d'intérêt (par exemple, le micrologiciel).

3. Débogage.

Lorsque l'on développe un logiciel pour le port série, il est absolument indispensable de s'assurer que les données envoyées et reçues sont correctes, suivent un timing déterminé et parfois il est également nécessaire de contrôler correctement d'autres signaux du port COM tels que DTR et RTS.
Lorsque le développeur écrit son propre logiciel, SpyPort l'aide à vérifier que le comportement du port série est conforme aux attentes, que le port série est correctement ouvert et que la lecture et l'écriture sont effectuées selon les spécifications. Dans ce cas, SerialTool avec son module SpyPort devient un outil de travail indispensable pour vérifier pas à pas que tout le logiciel est correctement écrit. Lorsque l'on envisage de créer un logiciel qui communique avec le port série, SpyPort devient absolument indispensable.

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