Manual
do
Maker
.
com
Esse ano estou com tanto assunto que não dou conta de escrever artigos. Já está difícil até definir as prioridades, mas vamos a mais um excelente dispositivo da série "Laboratório Maker", que começou com o osciloscópio digital DSO138, depois passou pela série sobre o Bus Pirate. Assim como o Bus Pirate, podemos fazer sniffing de um modo um pouco diferente, mas cada um tem suas características, e definitivamente não há como comparar diretamente esses dispositivos. O analisador lógico e de protocolos Saleae é uma ferramenta que conta com uma IDE de altíssimo nível, multiplataforma e sucinta. Veremos em detalhes.
Esse dispositivo tem características bem específicas, mas falando primeiramente do software, temos o changelog dele nesse link. É bem mantido e aparenta ter um cuidado muito especial na composição da janela para facilitar a usabilidade.
Ainda que não tenha o dispositivo, é possível experimentar o programa através do simulador contido na aplicação. Mas sério, esse dispositivo é barato demais para não ter um.
Os dados no barramento serial são sequências de bits em intervalos de tempo, basicamente. A IDE do analisador interpreta os dados conforme o protocolo especificado.
Como já citei diversas vezes em outros artigos, utilizo Linux desde 1997, e é fundamental para mim que uma ferramenta tenha suporte ao Linux, senão nada feito. Bem, o software é multiplataforma, com versões para Linux, Mac e Windows, atendendo a todos os gostos (ok, não todos, mas a maioria). No link anterior você pode baixar o programa. No Linux tem um procedimento extra, conforme descrito abaixo.
Quando iniciei o software, a primeira coisa solicitada foi a inserção de regras para o dispositivo no udev, para não executá-lo como root. Só que houve um pequeno problema: as permissões estavam entrando em conflito e a sugestão de comando não funcionou. Após uma pequena análise, consegui definir um modo de inserir as regras. Faça dessa maneira e já evite de cara perder tempo. O arquivo contendo as regras estará disponível no ponto de montagem temporário do aplicativo ao iniciá-lo, sendo /tmp/.mount_Logic-PKsTss/Logic. Entre nesse diretório e faça o seguinte:
find . -name 99*rules -exec cp {} ~/ \;
cd && sudo mv 99* /etc/udev/rules.d/99-SaleaeLogic.rules
sudo shutdown -r now
Após seu computador ser reiniciado, já deve ser possível usar o software.
Outra coisa importante a citar é que não se trata de um dispositivo USB-Serial. De fato ele é um dispositivo USB, então se tiver que procurar por alguma informação, estará disponível no dmesg:
O dispositivo é reconhecido automaticamente pelo software, ao abri-lo.
Como já citado, é um dispositivo USB. Ele consegue fazer leituras em até 24MHz, possui 8 canais, um pino para o GND e um pino para o CLK.
O dispositivo considera nível baixo a partir de 0.6V e nível alto a partir de 1.2V, o que permite trabalhar com dispositivos 3V3 e 5V tranquilamente.
Esse analisador lógico pode ser usado diretamente em barramentos CAN 3V3. Os padrões recomendados de I/O são 5V, 3V3, 2.5V e 1.8V.
Se está acompanhando a série, deve ter visto também o vídeo do Bus Pirate interagindo com um BMP180. Os bytes enviados com o BMP180 foram esses:
[0xEE 0x2E 0xF4 #escreve os valores
[0xEE 0xF6 0xF7] #condicao de escrita
[0xEF r:2] # condicao de leitura e le
resultado: 0x80 0x00
[0xEE 0xB4]
[0xEF r]
[0xEE 0xB2]
[0xEF r]
#0xB4 = 0x37
#0xB2 = 0x63
No vídeo falei sobre a escrita dos bytes 0x2E e 0xF4, sem enviar o stop bit porque teria que esperar no mínimo 4.5ms para fazer a leitura. Na linha seguinte, escrevemos os bytes que queremos ler, enviando agora o stop bit ("]"), então na terceira linha fazemos a leitura dos bytes solicitados.
Esse é o formato do start bit (SDA cai no meio da segunda metade do SCL):
Daí enviamos 3 bytes:
Depois tem um espaço enorme até a próxima sequência, porque o processo foi manual e é humanamente impossível escrever após 4.5ms:
E temos daí mais um start bit, 3 bytes e o stop bit:
O stop bit tem esse formato (SDA sobe no meio da segunda metade do SCL):
Aqui está detalhado a leitura do endereço 0x77 no registrador 0xB2 seguido pelo stop bit:
Aqui temos desde o start bit ao stop bit do registrador 0xB2:
Aqui está a resposta da leitura de 0xB4:
Para ampliar ou reduzir o sinal, basta usar a roda do mouse sobre o gráfico. Daí é só ir analisando as mensagens após fazer a captura que pode ser efetuada por gatilho, por tempo ou de forma contínua.
Se estiver interceptando uma comunicação UART, dará para ler a mensagem no barramento. Isso é espetacular para fazer depuração na comunicação entre Arduino e ESP32/ESP8266, por exemplo. No próximo artigo relacionado devo mostrar a análise do barramento 1-Wire e, se não ficar muito extenso, coloco também uma leitura de interceptação da UART. De outro modo, escreverei um terceiro artigo dedicado.
Na perícia, um item fundamental é a timeline. Nesse caso, o Bus Pirate pode não ser a melhor escolha, principalmente por fazer uma interceptação explícita no barramento. Já o analisador lógico e de protocolos não tem a capacidade de interferir, sendo uma das características fundamentais de uma ferramenta forense, que é a não-manipulação dos dados.
A amostragem também é tirada no tempo e pode ser salva em arquivo, e carregada posteriormente. O arquivo contém metadados que garantem a timeline, além de autenticação através do hash. A amostragem também tem o momento, que é fundamental para identificar e reproduzir uma situação, de modo que bastará descrever a metodologia no laudo ou parecer técnico.
Se você é Perito Forense Digital e ainda não teve essa necessidade, sugiro que se prepare, pois o mundo atual integra-se com dispositivos IoT, e já tem muita m3rd4 acontecendo. Adquira o analisador lógico e já vá treinando!
Esse poderoso dispositivo pode ser adquirido na UsinaInfo, parceiro que propiciou uma boa parte da série "Laboratório Maker", da qual escreverei sobre cada componente gradativamente. Se planeja adquiri-lo, faça-o com a UsinaInfo!
Clique nesse link para ir ao analisador lógico.
No breve vídeo, vemos essa captura. Acompanhe e, se não é inscrito ainda, inscreva-se em nosso canal Dobitaobytebrasil no Youtube!
Revisão: Ricardo Amaral de Andrade
Inscreva-se no nosso canal Manual do Maker no YouTube.
Também estamos no Instagram.
Autor do blog "Do bit Ao Byte / Manual do Maker".
Viciado em embarcados desde 2006.
LinuxUser 158.760, desde 1997.