首页
社区
课程
招聘
[翻译]IoT设备固件分析教程之固件是怎么存储的
发表于: 2017-9-10 23:51 20908

[翻译]IoT设备固件分析教程之固件是怎么存储的

2017-9-10 23:51
20908

IoT设备固件分析教程

——固件是怎么存储的?

原文链接:https://www.contextis.com/resources/blog/part-i-overview-firmware-storage-options/

原文作者:Scott Lester & Steven  

翻译:ljcnaix

设备固件的安全是构建物联网设备安全的基础环节,它的安全问题将影响到整个系统。在真实的Hacking场景中,我们常常需要提取固件,将其解压缩,以便对操作系统和应用程序进行逆向和安全审计。最近的一个例子,请参阅我们的博客《Hacking the Virgin Media Super Hub》(https://www.contextis.com/resources/blog/hacking-virgin-media-super-hub/)。这篇文章是《IoT设备固件分析教程》系列文章的第一篇。本文将介绍设备固件的存储位置和存储方式。未来的博客将关注固件的提取和解压方法(包括较经济的,也包括昂贵的方案)。

在介绍哪些元器件可用于存储固件之前,我们首先来讨论一下,如何识别PCBPrinted Circuit Board,印刷电路板)上的元器件。最明显的信息是芯片上的标签,标签中可能包含了制造商名称、型号和芯片描述。下面几节将介绍不同种类芯片的典型封装,了解封装的特征可以帮助我们猜测芯片的功能。

如果你无法直接查看芯片标签的内容,观察电路的设计方式可以给你提供一些线索。例如,下图展示了西门子PLCProgrammable Logic Controller,可编程逻辑控制器)的PCB


在查看芯片手册之前,我们可以进行一下猜测,片上系统(SoC)是右侧这块最大的芯片,中间的芯片是RAM(与SOC之间的接线是弯曲的,这是为了保证所有连线有相同的长度,因为高速RAM需要准确的定时信号),最左边这片是flash(大量平行的连线用于传输并行的数据信号)。

这是一个很好的例子,说明了通过观察芯片的连线和外设,来识别芯片的可能。这种方法,可以帮助我们识别没有标签的未知芯片。当然事实上,上图展示的情形,显然可以直接查看芯片标签的信息,所以它仅仅是一个用于教学的例子J

上图中,右侧这块芯片可以通过西门子的logo和芯片的零件号来识别,其它两篇芯片上的logo表示它们均由Micron生产。由于空间限制,Micron没有标注芯片的零件号,而使用了空间占用较小的FBGA标记。幸运的是,Micron提供了一个在线解码器(https://www.micron.com/support/tools-and-utilities/fbga)来获得完整的零件号,它显示左边的芯片是ECC NAND FlashMT29F1G16ABBDAHC),中间的芯片是512MB SDRAMMT46H16M32LFB5-6)。

一块PCB上,可能有很多地方可以用于存储固件,事实上,在某些设备中,固件确实被存储在多个位置。假如我们有能力找出并识别电路板上的存储芯片,那么下一步,我们需要了解这些存储芯片可以被分为哪些不同类型,以及它们各自常见的用途

我们讨论低密度存储设备时,术语NOR FlashEEPROM通常可以互换使用,它们可以单独封装也可以集成在片上系统中。有许多介绍不同类型Flash存储器之间区别的资料,这里不做过多的介绍,只强调一下,NOR Flash/EEPROM最重要的优点在于它们是字节可寻址的(译者注:原文还提到字节可擦除,似乎有误)。这意味着,你可以直接从NOR Flash/EEPROM执行代码,一次一条指令(eXecute in Place or XiP)。这使得NORE Flash非常适合存储低级别的程序,例如启动代码。因为,它不需要任何驱动程序或Flash控制器来读取它存储的内容。

NOR Flash通常有串行和并行两种类型。串行NOR Flash通常采用小型封装,例如SOIC-8,看起来如上图所示。

其它常见的封装格式还有WSON(芯片的封装类型常常使用首字母缩写,这里指:Very Very thin Small Outline No lead package)、DIP-8SOIC-16BGA-24(译者注:关于芯片封装,可以参考维基百科,https://en.wikipedia.org/wiki/List_of_integrated_circuit_packaging_types)。这些小型芯片可以通过SPII2C等串行协议进行访问,通常用于存储少量数据,例如SoHo路由器上的系统设置。

大容量NOR通常采用更大的、具有并行数据线(用于提速)的封装。 这些器件更有可能采用4856引脚的薄型小外形封装(TSOPThin Small Outline Package),比如下图所示的Spansion芯片。

这种大型的芯片,沿用我们之前举得例子,可以用于存储SoHo路由器的整个文件系统。


[招生]科锐逆向工程师培训(2024年11月15日实地,远程教学同时开班, 第51期)

上传的附件:
收藏
免费 7
支持
分享
最新回复 (7)
雪    币: 341
活跃值: (138)
能力值: ( LV7,RANK:110 )
在线值:
发帖
回帖
粉丝
2
喜欢  支持  感谢翻译
2017-9-11 11:09
0
雪    币: 6790
活跃值: (4441)
能力值: (RANK:600 )
在线值:
发帖
回帖
粉丝
3
感谢奉献
2017-9-13 08:28
0
雪    币: 0
活跃值: (1443)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
喜欢    支持    感谢翻译
2017-9-13 10:02
0
雪    币: 1
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
感谢
2018-4-19 09:30
0
雪    币: 53
活跃值: (106)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
感谢翻译
2018-4-19 09:42
0
雪    币: 34
活跃值: (76)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
7
2021-4-27 11:31
0
雪    币: 189
活跃值: (495)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
8
感谢,学到了。
2023-5-13 16:39
0
游客
登录 | 注册 方可回帖
返回
//