专栏名称: 看雪学苑
致力于移动与安全研究的开发者社区,看雪学院(kanxue.com)官方微信公众帐号。
目录
相关文章推荐
中国质量新闻网  ·  11款问题APP现在就卸载!涉及中青旅遨游旅 ... ·  4 小时前  
中国质量新闻网  ·  11款问题APP现在就卸载!涉及中青旅遨游旅 ... ·  4 小时前  
博客园Cnblogs  ·  博客园主站遭遇疯狂攻击 ·  7 小时前  
甘肃经济日报  ·  我国成功发射卫星互联网低轨卫星 ·  8 小时前  
甘肃经济日报  ·  我国成功发射卫星互联网低轨卫星 ·  8 小时前  
云南省教育厅  ·  全国学生资助管理中心发布预警! ·  23 小时前  
云南省教育厅  ·  全国学生资助管理中心发布预警! ·  23 小时前  
51好读  ›  专栏  ›  看雪学苑

对 Parrot SkyController 无人机固件的逆向工程

看雪学苑  · 公众号  · 互联网安全  · 2017-03-02 18:02

正文

请到「今天看啥」查看全文


条 目

每个条目都有一个恒定大小的头,它在固件头中由 dwEntrySize 值指定。在 SkyController 中,每个条目由20个字节组成,使用如下:

typedef struct sPLFEntryTag {
    u32 dwSectionType;
    u32 dwEntrySize;
    u32 dwCRC32;
    u32 uk_0x0C;
    u32 dwUncompressedSize;
}

字节类型指定条目中包含的数据类型。这些数据可以是配置数据,分区详细信息或者文件信息。这些将在下面的文字中进一步详细解释。条目大小包含条目内的字节数,不考虑空字节填充。此字段后跟一个 CRC32 值。目前还不清楚这个值是如何计算的。最后已知的整数是未压缩的数据的大小。如果此值为0,则不压缩内容。每种类型的条目具有定义的另外的字段,并且这些都将在下文进行解释。


固 件 条 目

固件中有多种类型的条目。在本节中,我们将描述我们在我们分析的文件中遇到的一个。

引导加载程序和引导配置(0X03,0X07)

条目0x03包含一个二进制文件,它似乎是基于包含在其中的字符串的系统的引导加载程序,但是需要更多的分析来了解它实际上是如何工作的。在SkyController中,观察到一个PLF文件,但在该PLF文件中,此条目具有二进制数据。再比如,条目0x07也看起来与引导过程相关,如字符串“ ecos-bootloader-p7-start-246-ge30badf ”所示,“ecos”引用eCos操作系统

40:7D40h: 28 01 10 00 00 00 00 00 65 63 6F 73 2D 62 6F 6F (.......ecos-boo 
40:7D50h: 74 6C 6F 61 64 65 72 2D 70 37 2D 73 74 61 72 74 tloader-p7-start 
40:7D60h: 2D 32 34 36 2D 67 65 33 30 62 61 64 66 00 00 00 -246-ge30badf...

文件系统数据(0X09)

固件中包含的每个文件都有一个“File System Data”条目。因此,这个条目是最常见的。根据文件是否被压缩,此条目的结构稍有不同:当其内容未压缩时,此条目以文件名(或目录名)开始,这是一个零终止的字符串。该名称后面接着3个无字符整数。







请到「今天看啥」查看全文