Skip to content
KitploitKITPLOIT
工具博客
提交
工具博客
提交

黑客、渗透测试和网络安全工具,武装您的安全武器库!

Kitploit 是一个黑客、网络安全和渗透测试工具的目录。发现最新的项目更新,查找漏洞、分析系统、自动化测试并加强你的安全。

··订阅源·联系·隐私·© 2026 Kitploit

工具目录

分类

查看所有分类
Loading categories
dump1090 — Dump1090 是用于 RTLSDR 设备的简单 Mode S 解码器 | Kitploit
工具/GitHubGitHub/antirez/dump1090
嵌入式系统安全网络映射信息收集无线安全实用工具与框架硬件与物联网安全
GitHubantirez/dump1090

dump1090

Dump1090 是用于 RTLSDR 设备的简单 Mode S 解码器

查看仓库
2.9k1.4k66个月前Kitploit 审核通过

最受欢迎

查看全部 →

发现我们社区最常用的工具。

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享

Dump1090 自述文件

Dump1090 是一款专为 RTLSDR 设备设计的 Mode S 解码器。

主要功能包括:

  • 对弱信号进行稳健解码,许多用户观察到 Dump1090 的覆盖范围相比其他流行解码器有所提升。
  • 网络支持:TCP30003 数据流(MSG5...)、原始数据包、HTTP。
  • 内置 HTTP 服务器,可在 Google 地图上显示当前检测到的飞机。
  • 利用 24 位 CRC 进行单比特纠错。
  • 能够解码 DF11、DF17 消息。
  • 能够解码 DF0、DF4、DF5、DF16、DF20 和 DF21 等 DF 格式,其中校验和与 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 创建,如下所示(或使用其他能够以 2MHz 采样率输出 8 位无符号 IQ 样本的程序)。

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 可以解码地面位置消息(类型代码 5-8),这些消息由飞机在地面时(滑行、在登机口等待等)发送。这些消息包含飞机的位置、地速和地面航迹。

地面位置使用与空中位置不同的编码:CPR(简洁位置报告)格式仅覆盖 90 度而不是 360 度,并且需要参考位置在 45 海里以内才能进行明确解码。

Dump1090 不需要您配置接收器的位置,而是通过平均所有成功解码的空中位置来自动计算参考位置。这是因为,如果您能接收到机场的地面交通,那么您几乎肯定也能接收到空中交通。飞越飞机的平均位置提供了一个足够接近(远在 45 海里要求之内)的参考,以便解码地面位置。

注意:只有在至少成功解码一个空中位置以建立参考后,才会显示地面位置。在地面上的飞机将在交互式显示中以高度 0 显示。

网络服务器功能

通过 --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 时)的正常流量一样处理。

可以使用 --ifile 并将 /dev/zero 作为参数,仅将 Dump1090 用作集线器,如以下示例所示:

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 MHz 频率传输。如果您有不错的天线,您将能够接收到距离您位置相当远的飞机信号,特别是如果您在室外且位置视野开阔。

您可以按照以下说明轻松构建一个非常便宜的天线:

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 艺术风格的图形表示形式显示,其中显示了以 2MHz 采样的各个幅度条。

索引显示样本编号,其中 0 是找到第一个 Mode S 峰值的样本。在第一个峰值之前还会添加一些额外的背景噪声,以提供一些背景信息。

要启用调试模式并检查您可以记录的数据包组合,请使用 dump1090 --help 获取可用调试标志列表。

调试模式包括一个可选的 javascript 输出,用于使用 Web 浏览器可视化数据包,您可以使用 'tools' 目录下的 debug.html 文件加载生成的 frames.js 文件。

此程序如何工作?

代码有很好的文档记录,并且编写得易于理解。对于手头有 Mode S 规范的勤奋程序员来说,理解其工作原理应该是很容易的。

我使用的算法基本上是通过观察使用一次性 SDL 程序显示的许多消息,并根据消息的图形显示方式来建模算法。

如何测试程序?

如果您有 RTLSDR 设备,并且您碰巧身处有飞机飞越您头顶的区域,只需运行程序并检查信号。

但是,如果您没有 RTLSDR 设备,或者您所在区域飞机出现率很低,您可能想尝试 Dump1090 发行版中 "testfiles" 目录下的示例文件。

只需像这样运行:

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

什么是 --snip 模式?

它只是一个简单的过滤器,它将输入原始 IQ 8 位样本,并输出一个文件,其中删除了 I 和 Q 值低于指定 超过 32 个样本的所有部分。

像这样使用:

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

我用它来创建一个小的测试文件,包含在此程序源代码发行版中。

贡献

Dump1090 是在 2012 年圣诞节的空闲时间编写的,这是一个业余项目,因此我只能在空闲时间处理问题并改进它。但是,欢迎您发送拉取请求以改进程序。一个很好的起点是源代码发行版中包含的 TODO 列表。

致谢

Dump1090 由 Salvatore Sanfilippo [email protected] 以及随着时间的推移发送补丁的其他贡献者(查看提交历史以获取更多信息)编写,并根据 BSD 三条款许可证发布。

下载工具