>_ DevTrendspt

Idioma

Início

Linguagens

Seções

Frontend Backend Mobile DevOps AI / ML GameDev Blockchain Embarcados Segurança
C-plus-plus

SigDigger transforma um receptor SDR em um laboratório de engenharia reversa de sinais de rádio

Se você já ligou um RTL-SDR ou HackRF, provavelmente já se viu grudado na cascata de espectro do Gqrx ou SDR#. Belas traces coloridas descem pela tela, com algo constantemente piscando, clicicando e transmitindo pacotes no ar. Mas assim que você encontra um sinal digital desconhecido, os programas SDR padrão atingem um beco sem saída. Eles lidam bem com rádio FM ou walkie-talkies, mas para decodificar uma transmissão binária de um sensor sem fio ou controle de portão, geralmente você tem que construir configurações complexas no GNU Radio ou exportar dolorosamente amostras IQ brutas para utilitários de terceiros.

É exatamente essa lacuna que o SigDigger preenche.

O que é

SigDigger é um analisador interativo de sinais de rádio digitais com uma interface gráfica em Qt. O programa recebe o fluxo de um dispositivo SDR através da camada universal SoapySDR e fornece ferramentas para dissecar sinais desconhecidos em tempo real.

O autor do projeto, um operador de rádio amador com o indicativo EA1IYR, construiu um software otimizado para reconhecimento rádio rápido. A aplicação roda no GNU/Linux e macOS, combinando um analisador visual de espectro com módulos de demodulação e decodificação.

Para que o SigDigger é útil na prática

Ao contrário dos receptores SDR convencionais, o foco aqui está em analisar a estrutura dos dados. Aqui estão as coisas que chamam a atenção:

  • Demodulação interativa em tempo real. Você seleciona uma região do espectro com o mouse e configura o demodulador para o tipo de modulação desejado: FSK, PSK ou ASK. O programa imediatamente mostra o fluxo binário, constelações de fase e parâmetros da portadora.
  • Análise de pacotes e sinais de pulso. Para sinais de rádio que aparecem por frações de segundo, existe um modo de captura de rajadas. Você pode examinar bordas de pulso e temporizações de transmissão em detalhes.
  • Decodificação de vídeo analógico. Se uma câmera de vigilância antiga ou transmissor de vídeo analógico em 5,8 GHz estiver operando nas proximidades, o SigDigger pode renderizar quadros em tempo real.
  • Escuta de áudio analógico. As funções básicas de um receptor comum ainda estão lá: canais AM, FM e SSB funcionam como esperado.
  • Suporte a plugins. Decodificadores específicos se conectam através de plugins, como receber imagens de satélites meteorológicos NOAA APT ou exportar dados via ZeroMQ para processamento adicional em Python.

Por que a interface se parece tanto com o Gqrx

A primeira impressão das capturas de tela causa déjà vu: o layout da janela e a cascata de espectro parecem exatamente com o Gqrx. O autor explica isso honestamente na documentação: a interface do Gqrx se mostrou a mais conveniente e prática entre as existentes.

Em vez de reinventar a roda e lutar contra a ganância dos widgets gráficos, o desenvolvedor pegou o componente de cascata comprovado do Gqrx e o adaptou para suas necessidades, adicionando um backend OpenGL e paletas de cores personalizadas.

No entanto, o SigDigger é construído de forma completamente diferente por baixo. O Gqrx depende do pesado framework GNU Radio. O SigDigger usa seu próprio motor de processamento de sinais digitais chamado Suscan e a biblioteca de baixo nível Sigutils. O modelo de streaming e o processamento de filas lá são otimizados para análise paralela de sinais com latência mínima.

Como executar o projeto

A arquitetura complexa tem um lado negativo: para compilar tudo a partir do código-fonte, você precisará passar por uma cadeia de dependências. O SigDigger depende de três projetos relacionados do autor: sigutils, suscan e a biblioteca de componentes de interface SuWidgets.

A construção manual parece intimidadora:

git clone --recursive https://github.com/BatchDrake/sigutils
cd sigutils && mkdir -p build && cd build && cmake .. && make && sudo make install && cd ../..

git clone --recursive https://github.com/BatchDrake/suscan
cd suscan && mkdir -p build && cd build && cmake .. && make && sudo make install && cd ../..

git clone https://github.com/BatchDrake/SuWidgets
cd SuWidgets && qmake6 SuWidgetsLib.pro && make && sudo make install && cd ..

git clone https://github.com/BatchDrake/SigDigger
cd SigDigger && qmake6 SigDigger.pro && make && sudo make install && cd ..

Se você não quer lidar com a compilação de bibliotecas no sistema, há duas opções simples. No Linux, a maneira mais fácil é baixar um AppImage pronto do página de releases.

A segunda opção é usar o script do autor blsd, que puxa os repositórios necessários e compila um conjunto isolado com plugins em uma pasta separada:

wget https://actinid.org/blsd
chmod a+x blsd
./blsd

Usuários do Windows provavelmente não encontrarão o projeto adequado: o autor declara explicitamente que não mantém máquinas rodando Windows e não compila binários para ele devido a problemas de portabilidade de dependências.

Quem achará o SigDigger útil

Se você está envolvido com engenharia reversa de dispositivos IoT, alarmes de carro, medidores inteligentes, ou apenas estudando protocolos de rádio ao seu redor, o SigDigger economiza horas de trabalho rotineiro. Ele elimina a necessidade de constantemente pular entre software de gravação de espectro, utilitários como inspectrum e scripts em Jupyter Notebook.

A ferramenta ajuda a determinar o tipo de modulação, estimar a taxa de símbolos e capturar um fluxo de bits limpo para análise posterior com apenas alguns cliques. Para começar rapidamente, tudo que você precisa é de um dongle RTL-SDR barato e um AppImage pronto.

Projetos relacionados