Skip to content
KitploitKITPLOIT
ИнструментыБлог
Отправить
ИнструментыБлог
Отправить

Инструменты для хакинга, пентеста и кибербезопасности — ваш арсенал защиты!

Kitploit — это каталог инструментов для хакинга, кибербезопасности и пентестинга. Находите последние обновления проектов для поиска уязвимостей, анализа систем, автоматизации тестирования и усиления вашей безопасности.

··Ленты·Контакты·Конфиденциальность·© 2026 Kitploit

Каталог инструментов

Категории

Все категории
Loading categories
Инструменты/GitHubGitHub/antirez/dump1090
Безопасность встроенных системКартирование сетиСбор информацииБезопасность беспроводных сетейУтилиты и фреймворкиБезопасность оборудования и IoT
GitHubantirez/dump1090

dump1090

Dump1090 — это простой декодер Mode S для устройств RTLSDR

Репозиторий
2.9k1.4k66 месяцев назадПроверено Kitploit

Популярное

Смотреть все →

Откройте для себя самые используемые инструменты нашего сообщества.

Изучить все инструменты

Просмотрите нашу коллекцию инструментов

Смотреть все инструменты →
Поделиться

Dump1090 README

Dump 1090 — это декодер Mode S, специально разработанный для устройств RTLSDR.

Основные возможности:

  • Надёжное декодирование слабых сообщений; как заметили многие пользователи Dump1090, дальность приёма увеличивается по сравнению с другими популярными декодерами.
  • Сетевая поддержка: поток TCP30003 (MSG5...), сырые пакеты, HTTP.
  • Встроенный HTTP-сервер, отображающий текущие обнаруженные самолёты на Google Map.
  • Исправление одиночных битовых ошибок с помощью 24-битного CRC.
  • Возможность декодирования сообщений DF11, DF17.
  • Возможность декодирования форматов DF, таких как DF0, DF4, DF5, DF16, DF20 и DF21, где контрольная сумма XOR-ится с ICAO-адресом, путём перебора поля контрольной суммы с использованием недавно виденных ICAO-адресов.
  • Декодирование сырых IQ-выборок из файла (с помощью параметра командной строки --ifile).
  • Интерактивный режим командной строки, в котором текущие обнаруженные самолёты отображаются в виде списка, обновляющегося по мере поступления данных.
  • Декодирование координат CPR и расчёт трека по скорости.
  • Декодирование наземной позиции для самолётов на земле (руление и т.д.).
  • TCP-сервер, передающий и принимающий сырые данные от/к подключённым клиентам (с помощью --net).

Хотя время от времени я всё ещё добавляю/исправляю что-то в своём форке, я стремлюсь к минимализму реализации. Однако существует гораздо более функциональный форк, разработанный MalcolmRobb.

Установка

Выполните "make".

Обычное использование

Чтобы принимать трафик напрямую с вашего RTL-устройства и выводить принятый трафик в стандартный вывод, просто запустите программу без каких-либо опций:

root@kitploit:~
./dump1090

Чтобы просто выводить шестнадцатеричные сообщения:

root@kitploit:~
./dump1090 --raw

Чтобы запустить программу в интерактивном режиме:

root@kitploit:~
./dump1090 --interactive

Чтобы запустить программу в интерактивном режиме с поддержкой сети и подключиться браузером к http://localhost:8080 для просмотра трафика в реальном времени:

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

В интерактивном режиме можно использовать менее насыщенный информацией, но более «аркадный стиль» вывода, когда экран обновляется каждую секунду, отображая все недавно обнаруженные самолёты с дополнительной информацией, такой как высота и номер рейса, извлечённой из принятых пакетов Mode S.

Использование файлов в качестве источника данных

Чтобы декодировать данные из файла, используйте:

root@kitploit:~
./dump1090 --ifile /path/to/binfile

Двоичный файл должен быть создан с помощью rtl_sdr, например так (или с помощью любой другой программы, способной выводить 8-битные беззнаковые IQ-выборки с частотой дискретизации 2 МГц).

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

В примере rtl_sdr используется усиление 50 — просто следует использовать максимальное усиление, доступное для вашего тюнера. Это не требуется при вызове самого Dump1090, так как он автоматически выбирает максимальное поддерживаемое усиление.

Также можно передавать программе данные через стандартный ввод, используя опцию --ifile с аргументом "-".

Дополнительные опции

Dump1090 можно вызывать с другими параметрами командной строки, чтобы задать иное усиление, частоту и так далее. Для получения списка опций используйте:

root@kitploit:~
./dump1090 --help

Всё, что здесь не задокументировано, должно быть очевидно, и для большинства пользователей лучше всего вызывать программу вообще без аргументов.

Надёжность

По умолчанию Dump1090 пытается исправлять битовые ошибки с помощью контрольной суммы CRC. Программа использует предварительно вычисленную таблицу синдромов для быстрого обнаружения и исправления до двух битовых ошибок в принятых сообщениях.

Это действительно позволяет исправлять ошибки и, по моему опыту, работает надёжно, однако если вам нужны очень надёжные данные, рекомендую использовать параметр командной строки --no-fix, чтобы отключить исправление ошибок.

Производительность и чувствительность обнаружения

По моему ограниченному опыту, Dump1090 смог декодировать большое количество сообщений даже в условиях, где у меня возникали проблемы с другими программами, однако никаких формальных тестов не проводилось, поэтому я не могу утверждать, что эта программа лучше или хуже других аналогичных программ.

Если вам удастся захватить трафик, который Dump1090 не может корректно декодировать, отправьте мне электронное письмо со ссылкой для скачивания. Я, возможно, попробую улучшить обнаружение в свободное время (это всего лишь хобби-проект).

Декодирование наземной позиции

Dump1090 умеет декодировать сообщения о наземной позиции (Type Code 5-8), которые передаются воздушными судами на земле (руление, ожидание у выходов на посадку и т.д.). Эти сообщения содержат позицию воздушного судна, путевую скорость и путевой угол.

Наземные позиции используют другое кодирование, чем воздушные: формат CPR (Compact Position Reporting) покрывает только 90 градусов вместо 360 и требует опорную позицию в пределах 45 морских миль для однозначного декодирования.

Вместо того чтобы требовать настройки местоположения вашего приёмника, Dump1090 автоматически вычисляет опорную позицию, усредняя все успешно декодированные воздушные позиции. Это работает потому, что если вы можете принимать наземный трафик аэропорта, вы почти наверняка принимаете и воздушный трафик. Усреднённая позиция пролетающих самолётов даёт опору, которая достаточно близка (с большим запасом в пределах 45 морских миль) для декодирования наземных позиций.

Примечание: наземные позиции будут отображаться только после того, как хотя бы одна воздушная позиция будет успешно декодирована для установления опоры. Самолёты на земле будут показываться с высотой 0 в интерактивном режиме.

Возможности сетевого сервера

При включении сетевой поддержки с помощью --net Dump1090 начинает прослушивать подключения клиентов на портах 30002 и 30001 (при желании вы можете изменить оба порта, см. вывод --help).

Порт 30002

Подключённым клиентам данные отправляются немедленно по мере их поступления с устройства (или из файла, если используется --ifile) в сыром формате, похожем на следующий:

root@kitploit:~
*8D451E8B99019699C00B0A81F36E;

Каждая запись отделяется простым переводом строки (символ LF, hex 0x0A).

Порт 30001

Порт 30001 — это порт ввода сырых данных, который можно использовать для подачи в Dump1090 данных в том же формате, что описан выше, где шестнадцатеричные сообщения начинаются с символа * и заканчиваются символом ;.

Так, например, если есть другой удалённый экземпляр Dump1090, собирающий данные, можно объединить его вывод с локальным экземпляром Dump1090, сделав примерно следующее:

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

Важно отметить, что данные, полученные через порт 30001, также передаются клиентам, слушающим порт 30002.

В целом всё, что принимается с порта 30001, обрабатывается точно так же, как обычный трафик с RTL-устройств или из файла при использовании --ifile.

Можно использовать Dump1090 просто как хаб, указав --ifile с аргументом /dev/zero, как в следующем примере:

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

Или, альтернативно, чтобы видеть происходящее на экране:

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

Затем вы можете подавать в него данные из разных источников из интернета.

Порт 30003

Подключённым клиентам отправляются сообщения в формате SBS1 (BaseStation), похожие на:

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

Это можно использовать для передачи данных на различные сайты обмена данными без необходимости использовать другой декодер.

Антенна

Сообщения Mode S передаются на частоте 1090 МГц. Если у вас приличная антенна, вы сможете принимать сигналы самолётов довольно далеко от вашего местоположения, особенно если вы находитесь на открытом воздухе и в месте с хорошим обзором неба.

Очень дешёвую антенну можно легко собрать, следуя инструкциям по адресу:

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

С этой простейшей антенной я мог принимать сигналы самолётов на расстоянии более 200 км от себя.

Если вас интересует более серьёзная антенна, посмотрите следующие ресурсы:

  • 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

Агрессивный режим

С помощью --aggressive можно активировать агрессивный режим — модифицированную версию обнаружения и декодирования пакетов Mode S. Агрессивный режим обычно требует больше CPU (особенно если много самолётов передают пакеты DF17), но позволяет обнаружить ещё несколько сообщений.

Алгоритм в агрессивном режиме изменён следующим образом:

  • Допускается до двух ошибок демодуляции (соседние элементы в векторе амплитуд с одинаковой высотой). Обычно проверяются только сообщения без ошибок.
  • Предпринимается попытка исправить сообщения DF17, перебирая все комбинации по два бита.

Использование агрессивного режима рекомендуется только в местах с низким трафиком, чтобы получить шанс захватить ещё несколько сообщений.

Режим отладки

Режим отладки — это визуальная помощь для улучшения алгоритма обнаружения или для понимания того, почему программа не работает с конкретными входными данными.

В этом режиме сообщения отображаются в виде графического представления в стиле ASCII-арта, где показываются отдельные столбики амплитуд, дискретизированные на частоте 2 МГц.

Индекс показывает номер выборки, где 0 — это выборка, в которой был найден первый пик Mode S. Перед первым пиком также добавляется немного фонового шума для создания контекста.

Чтобы включить режим отладки и посмотреть, какие комбинации пакетов можно записывать, используйте dump1090 --help для получения списка доступных флагов отладки.

Режим отладки включает опциональный вывод JavaScript, который используется для визуализации пакетов в веб-браузере. Вы можете использовать файл debug.html из каталога 'tools' для загрузки сгенерированного файла frames.js.

Как работает эта программа?

Код очень хорошо документирован и написан так, чтобы его было легко понять. Для старательного программиста, имеющего под рукой спецификацию Mode S, понять, как это работает, не составит труда.

Алгоритмы, которые я использовал, были получены главным образом при изучении множества сообщений, отображаемых с помощью одноразовой программы на SDL, и попытке смоделировать алгоритм на основе того, как сообщения выглядят графически.

Как протестировать программу?

Если у вас есть устройство RTLSDR и вы находитесь в местности, где над головой летают самолёты, просто запустите программу и проверьте наличие сигналов.

Однако если у вас нет устройства RTLSDR или в вашей местности самолётов очень мало, вы можете попробовать пример файла, распространяемый вместе с дистрибутивом Dump1090 в каталоге "testfiles".

Просто запустите его так:

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

Что такое режим --snip?

Это просто простой фильтр, который принимает на вход сырые 8-битные IQ-выборки и выводит файл, в котором отсутствуют все части, где I и Q ниже указанного более чем для 32 выборок.

Используйте его так:

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

Я использовал его для создания небольшого тестового файла, чтобы включить его в дистрибутив исходного кода этой программы.

Участие в разработке

Dump1090 был написан в свободное время на Рождество 2012 года; это хобби-проект, поэтому я смогу заниматься проблемами и улучшениями только в свободное время. Тем не менее вы можете присылать pull-запросы, чтобы улучшить программу. Хорошей отправной точкой может стать список TODO, включённый в дистрибутив исходного кода.

Авторы

Dump1090 был написан Сальваторе Санфилиппо [email protected] и другими участниками, присылавшими патчи с течением времени (подробнее см. историю коммитов), и распространяется под лицензией BSD с тремя пунктами.

Скачать инструмент