硬件黑客与Shikra
设备比较:Bus Pirate与Shikra
这是《硬件黑客101》网络研讨会的后续博客文章,比较Bus Pirate与Shikra的差异。最近我在网络研讨会中演示了使用Bus Pirate黑客路由器的过程(视频见:https://www.blackhillsinfosec.com/webcast-hardware-hacking-101/)。当时提到用Bus Pirate提取芯片固件需要约30分钟,本文将展示使用Shikra完成相同任务的过程。
如果您不熟悉Bus Pirate,建议先观看网络研讨会并访问Dangerous Prototypes网站:http://dangerousprototypes.com/docs/Bus_Pirate。
Bus Pirate和Shikra都是通过USB接口与多种协议(如JTAG、SPI、IC2、UART和GPIO)交互的设备。
芯片连接与引脚配置
在网络研讨会中我讨论了芯片隔离技术,本例中我将芯片从路由器完全移除。如下图所示,我将存有固件的芯片放置在 breakout board 上。
现在需要检查芯片和Shikra的引脚布局以正确连接。Shikra的引脚定义见:https://int3.cc/products/the-shikra。我们使用的芯片型号为MX25L6406E/MX25L6408E,数据手册提供了设备的引脚定义:
同时还需要确认每个引脚的功能定义:
Shikra的引脚布局也需要确定如何连接breakout board(芯片):
接线与固件提取
获得引脚定义后,按下表所示进行连接:
与网络研讨会中相同,我们使用带电源的breadboard为芯片供电并完成上表中的连接。
连接完成后即可提取固件。使用Bus Pirate时的命令为:
|
|
flashrom命令设置BusPirate上芯片使用的协议类型(此处为buspirate_spi),指定设备位置(ttyUSB0)和数据读取速度(更高速度会导致不稳定)。-c指定读取的设备类型,-r将数据写入文件。
而使用Shikra时仍使用flashrom,但命令改为:
|
|
此命令设置Shikra芯片使用的协议类型(ft2232)及型号,-c指定读取设备类型,-r写入数据到文件。
性能对比
对比两者的读取速度,Shikra明显更快:Bus Pirate需要30分钟读取的内容,Shikra仅需3分钟。
需要说明的是,本次测试使用的是Bus Pirate 3.6版本。Dangerous Prototypes新推出的Bus Blaster使用了与Shikra相同的ft2232芯片——这可能需要另一篇博客文章进行比较。