硬件黑客与Shikra
比较苹果与橙子(Bus Pirate vs Shikra)
这是一篇硬件黑客101网络研讨会的后续博客文章。我最近做了一个关于使用Bus Pirate黑客路由器的硬件黑客网络研讨会。网络研讨会可以在https://www.blackhillsinfosec.com/webcast-hardware-hacking-101/找到。在网络研讨会中,我评论了用Bus Pirate转储芯片固件所需的时间(大约30分钟)。好吧,这里是一篇博客文章,内容相同但使用了Shikra。
如果你不熟悉Bus Pirate,那么你需要查看网络研讨会以及危险原型网站:http://dangerousprototypes.com/docs/Bus_Pirate。
Bus Pirate以及Shikra都是使用户能够通过USB接口与不同类型的协议交互的设备。协议如JTAG、SPI、IC2、UART和GPIO。
在网络研讨会中,我谈到了芯片隔离,在示例中,我将芯片从路由器上移除,使其完全隔离。在这篇博客文章中,我们将从连接设备开始。记住,我将带有固件的芯片放在 breakout board 上,如下所示。
现在我们需要检查芯片和Shikra的引脚布局,以便我们可以通过Shikra与芯片进行正确的连接。Shikra的引脚定义和信息可以在:https://int3.cc/products/the-shikra找到。我们拥有的芯片是MX25L6406E/MX25L6408E。快速查看数据手册提供了设备的引脚定义。
还观察了每个引脚用途的定义。
还需要Shikra的引脚定义来确定如何将breakout board(芯片)连接到它。
现在我们有了引脚定义,我们可以按照下表将它们连接起来。
就像在网络研讨会中一样,使用了一个带有电源的面包板来为芯片提供电压,并实现上表中的连接。
一旦连接完成,我们就可以准备转储固件了。使用Bus Pirate时,我们使用了以下命令:
|
|
flashrom命令设置了BusPirate上芯片使用的协议类型。在这种情况下,flashrom有一个BusPirate_spi特定的协议。命令然后识别设备位置(ttyUSB0)和读取数据的速度(注意:任何更高的速度都会变得不稳定)。-c 标识要读取的设备类型,-r 是将数据写入文件。
然而,使用Shikra时,我们仍然使用flashrom,但命令是:
|
|
其中flashrom命令设置了Shikra上芯片使用的协议类型(ft2232)和类型,-c 标识要读取的设备类型,-r 是将数据写入文件。
通过比较两种读取速度,很明显Shikra读取芯片的速度要快得多。Bus Pirate需要30分钟读取内容,而Shikra仅需3分钟。
公平起见,我使用了Bus Pirate版本3.6进行测试。危险原型有一个新的板子叫做Bus Blaster,它使用与Shikra相同的ft2232芯片。谁知道呢……可能需要另一篇博客文章进行比较。