SpyPort Sniffer/Logger Serial
Sniffer e Logger para porta serial
O que é o SpyPort para o SerialTool?
SpyPort é uma funcionalidade do SerialTool que permite monitorar todo o tráfego da porta serial em um ambiente Windows diretamente do Kernel.
Esta abordagem utiliza um driver desenvolvido especialmente para o SerialTool pela nossa equipe para interceptar todas as chamadas que o sistema operacional direciona para uma porta COM específica.
Mais precisamente, é possível "espionar" a comunicação serial mesmo se a porta COM estiver aberta e sendo usada por outra aplicação, pois o driver do Kernel intercepta e filtra os sinais IRP e IOCTL_SERIAL do Windows.
Esta funcionalidade do SerialTool está disponível apenas na versão PRO.
Tela principal
O que pode ser espionado e registrado?
É possível filtrar seletivamente alguns desses sinais de interesse ou todo o tráfego de baixo nível diretamente. O SpyPort oferece a possibilidade de salvar apenas o tráfego de saída (IRP_MJ_WRITE), o tráfego de entrada (IRP_MJ_READ) ou todo o tráfego completo selecionando um ou todos os IOCTL_SERIAL. Os dados de entrada e saída podem ser salvos em formato texto ou binário para IRP_MJ_WRITE e IRP_MJ_READ (TX e RX da porta COM) e em formato texto para os outros sinais.
Como os dados espionados/registrados são exibidos?
O SerialTool, com suas funcionalidades avançadas, permite visualizar detalhadamente cada pacote, mostrando os dados nele contidos em formato ASCII ou hexadecimal.
Essa característica facilita e favorece uma consulta mais rápida e direcionada e, ao mesmo tempo, permite pesquisar padrões específicos em um pacote ou salvar/exportar o pacote de interesse em formato binário ou copiá-lo para a área de transferência em formato ASCII.
Cada pacote é exibido cuidadosamente indicando todos os dados importantes, como o momento preciso de recebimento (em milissegundos), o tipo de pacote, o tempo decorrido entre o pacote anterior e o seguinte.
O tipo de análise do pacote segue o dos pacotes de sessão introduzidos na versão 1.6.0 do SerialTool.
É possível interromper o registro a qualquer momento sem comprometer o software que está usando a porta COM naquele momento.
Visualização ASCII e hexadecimal de um pacote serial espionado.
Exemplos de uso do SpyPort com o SerialTool
Os campos de uso do módulo SpyPort são diversos, incluindo:
1. Monitoramento de aplicativos próprios e de terceiros.
No mundo industrial e integrado, é muito difícil entender e detectar quando ocorre um erro. Às vezes, nossos próprios aplicativos ou os de terceiros apresentam defeitos que se manifestam após várias horas e o desenvolvedor pode não estar presente para detectar e resolver o problema. É por isso que o SerialTool, com seu módulo SpyPort, é projetado para garantir longos períodos de escuta/registro de forma intuitiva e eficaz, ajudando o desenvolvedor a identificar a causa do problema.
Um exemplo clássico pode ser um aplicativo industrial onde o software oficial de produção se comunica via porta serial com outros dispositivos.
Se houver um defeito, é importante poder monitorar o comportamento do software em seu modo "release" oficial para ver onde está o problema. O SpyPort não interfere no software monitorado e permite analisar todo o tráfego de entrada e saída.
2. Engenharia reversa.
Em um cenário onde se deseja "capturar" o tráfego que entra e sai da porta serial de um software específico, por exemplo, durante o download de um firmware em um dispositivo conectado, o SpyPort é a ferramenta ideal!
Ele permite salvar diretamente em formato binário todos os bytes transmitidos de um software de terceiros e capturar os dados de interesse (por exemplo, firmware).
3. Depuração.
Ao desenvolver um software para a porta serial, é absolutamente essencial garantir que os dados enviados e recebidos sejam corretos, sigam um timing específico e às vezes também é necessário controlar corretamente outros sinais da porta COM, como DTR e RTS.
Quando o desenvolvedor escreve seu próprio software, o SpyPort ajuda a verificar se o comportamento da porta serial está de acordo com o esperado, se a porta serial está aberta corretamente e se a leitura e escrita são realizadas conforme as especificações.
Neste caso, o SerialTool, com seu módulo SpyPort, se torna uma ferramenta de trabalho essencial para verificar passo a passo
se todo o software está escrito corretamente. Quando se pretende criar um software que se comunica com a porta serial, o SpyPort se torna absolutamente indispensável.