dev / ttyO0用于AR Drone 2.0 - Reverse Enginnering

时间:2015-05-09 20:43:30

标签: linux reverse-engineering ar.drone

我读了一篇关于从Parrot编写AR Drone 2.0的有趣文章。在这段代码中,我们让nodeJS与无人机交谈。因此,代码从创建流到/dev/ttyO0

开始

我开始更多地了解linux功能的背景,并想知道:

  • 你如何最初发现正在使用dev / ttyO0,例如在linux上运行的无人机上。我认为这是一种逆向工程,但是正在使用哪些工具或命令?
  • 当我想对像无人机这样的系统进行逆向工程,并找出正在发送的命令时,是否有类似“嗅探器”的东西来查找正在发送的命令?

我知道这不是一个简单而简单的答案,但我很乐意了解更多相关内容或了解,在哪里可以了解这一点。但最初关于找到合适设备的问题会非常有趣。

谢谢

1 个答案:

答案 0 :(得分:2)

我不知道你问题第一部分的答案,但我可以解决第二部分。

是的,AR.Drone使用TCP和UDP进行无人机和控制器应用程序之间的所有通信,包括命令,遥测和视频。您可以使用标准网络嗅探器,如tcpdump或Wireshark。连接到无人机时,其默认IP地址为192.168.1.1。配置嗅探器以捕获进出该地址的所有流量。以下是您可以看到的一些亮点:

  • 命令/“AT”通信,端口5556上的UDP:此端口用于向无人机发送命令。命令采用ASCII格式,看起来像AT*...,例如AT*REF=7,256AT*PCMD=7,1,-1110651699,0,0,1050253722AR.Drone Developer Guide的第6节描述了大多数(但不是全部)命令。

  • Navdata,端口5554上的UDP:这是从无人机发送的二进制编码数据,包含传感器数据和有关无人机状态的信息。它包括气压,高度估计,位置估计,飞行模式和GPS(如果您的无人机配备一个)。由于您提到了Javascript,node-ar-drone库中的文件parseNavdata.js包含用于解析navdata的代码。

  • 视频,端口5555上的TCP:这是来自无人机的实时视频,采用差不多的H264格式,称为PaVE。该格式记录在开发人员指南的第7.3节中,大多数与AR.Drones交谈的库都可以解析格式。

您可能会注意到另一件事:

  • FTP:官方控制器应用程序使用标准FTP将星历文件发送到无人机,其中包含有助于GPS获得更快锁定的信息。