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

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

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

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

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

Категории

Все категории
Loading categories
dump1090 — Dump1090 is a simple Mode S decoder for RTLSDR devices | Kitploit
Инструменты/GitHubGitHub/malcolmrobb/dump1090
Embedded Systems SecurityNetwork MappingInformation GatheringWireless SecurityHardware SecurityUtilities & Frameworks
GitHubmalcolmrobb/dump1090

dump1090

Dump1090 is a simple Mode S decoder for RTLSDR devices

Репозиторий
1.1k3192 лет назадПроверено Kitploit

Популярное

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

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

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

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

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

Dump1090 README

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

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

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

Установка

Выполните "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 /путь/к/бинарному_файлу

Бинарный файл должен быть создан с помощью 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 проверяет ошибки декодирования с помощью 24-битной контрольной суммы CRC, где это возможно. Сообщения с ошибками отбрасываются.

Ключ командной строки --fix включает исправление одиночных битовых ошибок на основе контрольной суммы CRC. Технически он использует таблицу предварительно вычисленных разностей контрольных сумм, возникающих из-за одиночных битовых ошибок, для поиска неправильной позиции бита.

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

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

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

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

Функции сетевого сервера

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

Порт 30002

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

root@kitploit:~
*8D451E8B99019699C00B0A81F36E;

Каждая запись разделяется простым переводом строки (символ LF, шестнадцатеричный 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/redmine/attachments/download/246/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 с ошибками CRC, возникающими из-за любых двух битовых ошибок.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Вклад

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

Благодарности

Dump1090 был написан Сальваторе Санфилиппо [email protected] и выпущен под лицензией BSD с тремя пунктами.

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