Skip to content
KitploitKITPLOIT
FerramentasBlog
Enviar
FerramentasBlog
Enviar

Ferramentas de Hacking, PenTest e Cibersegurança para o seu Arsenal de Segurança!

Kitploit é um diretório de ferramentas de hacking, cibersegurança e pentesting. Descubra as últimas atualizações de projetos para encontrar vulnerabilidades, analisar sistemas, automatizar testes e fortalecer sua segurança.

··Feeds·Contato·Privacidade·© 2026 Kitploit

Diretório de Ferramentas

Categorias

Ver todas as categorias
Loading categories
dump1090 — Dump1090 is a simple Mode S decoder for RTLSDR devices | Kitploit
Ferramentas/GitHubGitHub/antirez/dump1090
Embedded Systems SecurityNetwork MappingInformation GatheringWireless SecurityUtilities & FrameworksHardware & IoT Security
GitHubantirez/dump1090

dump1090

Dump1090 is a simple Mode S decoder for RTLSDR devices

Ver Repositório
2.9k1.4khá 6 mesesRevisado pelo Kitploit

Mais Populares

Ver todos →

Descubra as ferramentas mais usadas pela nossa comunidade.

Explore todas as ferramentas

Navegue pela nossa coleção de ferramentas

Ver todas as ferramentas →
Compartilhar

Dump1090 Leia-me

O Dump 1090 é um decodificador Mode S projetado especificamente para dispositivos RTLSDR.

As principais características são:

  • Decodificação robusta de mensagens fracas, com Dump1090 muitos usuários observaram alcance melhorado em comparação com outros decodificadores populares.
  • Suporte de rede: fluxo TCP30003 (MSG5...), pacotes brutos, HTTP.
  • Servidor HTTP embutido que exibe as aeronaves atualmente detectadas no Google Map.
  • Correção de erros de bit único usando o CRC de 24 bits.
  • Capacidade de decodificar mensagens DF11, DF17.
  • Capacidade de decodificar formatos DF como DF0, DF4, DF5, DF16, DF20 e DF21 onde o checksum é xored com o endereço ICAO através de força bruta no campo checksum usando endereços ICAO vistos recentemente.
  • Decodificar amostras IQ brutas de arquivo (usando a opção de linha de comando --ifile).
  • Modo interativo de interface de linha de comando onde as aeronaves atualmente detectadas são mostradas como uma lista que se atualiza à medida que mais dados chegam.
  • Decodificação de coordenadas CPR e cálculo de trajetória a partir da velocidade.
  • Decodificação de posição em solo para aeronaves no chão (taxiando, etc.).
  • Servidor TCP que transmite e recebe dados brutos de/para clientes conectados (usando --net).

Embora de vez em quando eu ainda adicione/corrija coisas no meu fork, viso o minimalismo da implementação. No entanto, existe um fork muito mais completo em funcionalidades disponível, desenvolvido por MalcolmRobb.

Instalação

Digite "make".

Uso normal

Para capturar tráfego diretamente do seu dispositivo RTL e mostrar o tráfego capturado na saída padrão, basta executar o programa sem opções:

root@kitploit:~
./dump1090

Para apenas exibir mensagens hexadecimais:

root@kitploit:~
./dump1090 --raw

Para executar o programa no modo interativo:

root@kitploit:~
./dump1090 --interactive

Para executar o programa no modo interativo, com suporte de rede, e conectar com seu navegador em http://localhost:8080 para ver tráfego ao vivo:

root@kitploit:~
./dump1090 --interactive --net

No modo interativo é possível ter uma saída menos densa em informações, mas mais "estilo arcade", onde a tela é atualizada a cada segundo exibindo todas as aeronaves vistas recentemente com algumas informações adicionais como altitude e número do voo, extraídas dos pacotes Mode S recebidos.

Usando arquivos como fonte de dados

Para decodificar dados de arquivo, use:

root@kitploit:~
./dump1090 --ifile /caminho/para/arquivo.bin

O arquivo binário deve ser criado usando rtl_sdr assim (ou com qualquer outro programa capaz de gerar amostras IQ de 8 bits sem sinal a uma taxa de amostragem de 2 MHz).

root@kitploit:~
rtl_sdr -f 1090000000 -s 2000000 -g 50 output.bin

No exemplo rtl_sdr, um ganho de 50 é usado; simplesmente você deve usar o maior ganho disponível para seu sintonizador. Isso não é necessário ao chamar o Dump1090 em si, pois ele é capaz de selecionar automaticamente o maior ganho suportado.

É possível alimentar o programa com dados via entrada padrão usando a opção --ifile com "-" como argumento.

Opções adicionais

O Dump1090 pode ser chamado com outras opções de linha de comando para definir um ganho, frequência diferentes, etc. Para uma lista de opções use:

root@kitploit:~
./dump1090 --help

Tudo que não está documentado aqui deve ser óbvio, e para a maioria dos usuários chamá-lo sem argumentos é a melhor coisa a fazer.

Confiabilidade

Por padrão, o Dump1090 tenta corrigir erros de bit usando o checksum CRC. O programa usa uma tabela de síndromes pré-computada para identificar e corrigir rapidamente até dois erros de bit em mensagens recebidas.

Isso realmente consegue corrigir erros e funciona de forma confiável na minha experiência, no entanto, se você estiver interessado em dados muito confiáveis, sugiro usar a opção de linha de comando --no-fix para desabilitar a correção de erros.

Desempenho e sensibilidade de detecção

Na minha experiência limitada, o Dump1090 foi capaz de decodificar um grande número de mensagens mesmo em condições onde encontrei problemas ao usar outros programas, no entanto nenhum teste formal foi realizado, então não posso realmente afirmar que este programa é melhor ou pior em comparação com outros programas similares.

Se você conseguir capturar tráfego que o Dump1090 não consegue decodificar corretamente, envie-me um e-mail com um link para download. Poderei tentar melhorar a detecção durante meu tempo livre (este é apenas um projeto de hobby).

Decodificação de posição em solo

O Dump1090 pode decodificar mensagens de posição em solo (Código de Tipo 5-8), que são transmitidas por aeronaves enquanto estão no chão (taxiando, esperando em portões, etc.). Essas mensagens incluem a posição da aeronave, velocidade em solo e direção em solo.

As posições em solo usam uma codificação diferente das posições em voo: o formato CPR (Compact Position Reporting) cobre apenas 90 graus em vez de 360, e requer uma posição de referência dentro de 45 milhas náuticas para decodificação sem ambiguidade.

Em vez de exigir que você configure a localização do seu receptor, o Dump1090 calcula automaticamente uma posição de referência calculando a média de todas as posições em voo decodificadas com sucesso. Isso funciona porque se você consegue receber tráfego em solo de um aeroporto, quase certamente também receberá tráfego em voo. A posição média das aeronaves sobrevoando fornece uma referência que está próxima o suficiente (bem dentro do requisito de 45 MN) para decodificar posições em solo.

Nota: As posições em solo só serão exibidas depois que pelo menos uma posição em voo tiver sido decodificada com sucesso para estabelecer a referência. Aeronaves no chão serão mostradas com altitude 0 na tela interativa.

Recursos do servidor de rede

Ativando o suporte de rede com --net, o Dump1090 começa a escutar conexões de clientes nas portas 30002 e 30001 (você pode alterar ambas as portas se desejar, veja a saída de --help).

Porta 30002

Os clientes conectados recebem dados assim que chegam do dispositivo (ou do arquivo, se --ifile for usado) no formato bruto semelhante ao seguinte:

root@kitploit:~
*8D451E8B99019699C00B0A81F36E;

Cada entrada é separada por uma simples quebra de linha (caractere LF, hex 0x0A).

Porta 30001

A porta 30001 é a porta de entrada bruta e pode ser usada para alimentar o Dump1090 com dados no mesmo formato especificado acima, com mensagens hexadecimais começando com um * e terminando com um caractere ;.

Por exemplo, se houver outra instância remota do Dump1090 coletando dados, é possível somar a saída a uma instância local do Dump1090 fazendo algo assim:

root@kitploit:~
nc remote-dump1090.example.net 30002 | nc localhost 30001

É importante notar que o que é recebido via porta 30001 também é transmitido para clientes ouvindo na porta 30002.

Em geral, tudo recebido da porta 30001 é tratado exatamente como o tráfego normal de dispositivos RTL ou de arquivo quando --ifile é usado.

É possível usar o Dump1090 apenas como um hub usando --ifile com /dev/zero como argumento, como no exemplo a seguir:

root@kitploit:~
./dump1090 --net-only

Ou alternativamente, para ver o que está acontecendo na tela:

root@kitploit:~
./dump1090 --net-only --interactive

Então você pode alimentá-lo a partir de diferentes fontes de dados da internet.

Porta 30003

Os clientes conectados recebem mensagens no formato SBS1 (BaseStation), semelhante a:

root@kitploit:~
MSG,4,,,738065,,,,,,,,420,179,,,0,,0,0,0,0
MSG,3,,,738065,,,,,,,35000,,,34.81609,34.07810,,,0,0,0,0

Isso pode ser usado para alimentar dados para vários sites de compartilhamento sem a necessidade de usar outro decodificador.

Antena

As mensagens Mode S são transmitidas na frequência de 1090 MHz. Se você tiver uma antena decente, será capaz de captar sinais de aeronaves bem longe da sua posição, especialmente se estiver ao ar livre e em uma posição com boa visão do céu.

Você pode facilmente construir uma antena muito barata seguindo as instruções em:

root@kitploit:~
http://antirez.com/news/46

Com esta antena trivial, consegui captar sinais de aeronaves a mais de 200 km de distância.

Se você estiver interessado em uma antena mais séria, confira os seguintes recursos:

  • http://gnuradio.org/data/grcon11/06-foster-adsb.pdf
  • http://www.lll.lu/~edward/edward/adsb/antenna/ADSBantenna.html
  • http://modesbeast.com/pix/adsb-ant-drawing.gif

Modo agressivo

Com --aggressive é possível ativar o modo agressivo que é uma versão modificada da detecção e decodificação de pacotes Mode S. O modo agressivo usa mais CPU geralmente (especialmente se houver muitos aviões enviando pacotes DF17), mas pode detectar algumas mensagens adicionais.

O algoritmo no modo agressivo é modificado das seguintes formas:

  • Até dois erros de demodulação são tolerados (entradas adjacentes no vetor de magnitude com a mesma altura). Normalmente apenas mensagens sem erros são verificadas.
  • Tenta corrigir mensagens DF17 tentando todas as combinações de dois bits.

O uso do modo agressivo é recomendado apenas em locais com pouco tráfego, para ter uma chance de capturar algumas mensagens extras.

Modo de depuração

O modo de depuração é uma ajuda visual para melhorar o algoritmo de detecção ou para entender por que o programa não está funcionando para uma determinada entrada.

Neste modo, as mensagens são exibidas em uma representação gráfica estilo ASCII art, onde as barras de magnitude individuais amostradas a 2 MHz são exibidas.

Um índice mostra o número da amostra, onde 0 é a amostra onde o primeiro pico Mode S foi encontrado. Algum ruído de fundo adicional também é adicionado antes do primeiro pico para fornecer algum contexto.

Para ativar o modo de depuração e verificar quais combinações de pacotes você pode registrar, use dump1090 --help para obter uma lista de flags de depuração disponíveis.

O modo de depuração inclui uma saída opcional em javascript que é usada para visualizar pacotes usando um navegador da web; você pode usar o arquivo debug.html sob o diretório 'tools' para carregar o arquivo frames.js gerado.

Como este programa funciona?

O código é bem documentado e escrito para ser fácil de entender. Para o programador diligente com uma especificação Mode S em mãos, deve ser trivial entender como funciona.

Os algoritmos que usei foram obtidos basicamente observando muitas mensagens exibidas usando um programa SDL descartável e tentando modelar o algoritmo com base em como as mensagens se parecem graficamente.

Como testar o programa?

Se você tiver um dispositivo RTLSDR e estiver em uma área onde há aeronaves voando sobre sua cabeça, basta executar o programa e verificar se há sinais.

No entanto, se você não tiver um dispositivo RTLSDR, ou se na sua área a presença de aeronaves for muito limitada, você pode querer testar o arquivo de amostra distribuído com a distribuição do Dump1090 sob o diretório "testfiles".

Basta executá-lo assim:

root@kitploit:~
./dump1090 --ifile testfiles/modes1.bin

O que é o modo --snip?

É apenas um filtro simples que receberá amostras brutas de 8 bits IQ na entrada e produzirá um arquivo sem todas as partes do arquivo onde I e Q são menores que o <nível> especificado por mais de 32 amostras.

Use assim:

root@kitploit:~
cat big.bin | ./dump1090 --snip 25 > small.bin

Usei isso para criar um pequeno arquivo de teste para incluir dentro da distribuição do código fonte deste programa.

Contribuindo

O Dump1090 foi escrito durante um tempo livre no Natal de 2012; é um projeto de hobby, então poderei resolver problemas e melhorá-lo apenas durante o tempo livre, no entanto, você é encorajado a enviar pull requests para melhorar o programa. Um bom ponto de partida pode ser a lista TODO incluída na distribuição do código fonte.

Créditos

O Dump1090 foi escrito por Salvatore Sanfilippo [email protected] e os outros contribuidores que enviaram patches ao longo do tempo (verifique o histórico de commits para mais informações) e é lançado sob a licença BSD de três cláusulas.

Baixar ferramenta