假设我有一个带有FPGA的设备,并且设法从其闪存中提取了比特流。我将如何恢复其行为?

一个简单的情况是,如果它实现了软处理器-在那种情况下,该处理器应该在某个地方具有固件,而我可以将其分解。但是,如果只是一堆IP块和一些其他逻辑怎么办?

评论

“如果它实现了一个软处理器-在那种情况下,应该为此提供固件” ....但是软处理器不是固件(哪种处理器可以运行该固件?)这是FPGA上硬件元素的配置。

我的意思是,软处理器必须运行一些代码,并且该代码必须存储在某个地方(可能与fpga比特流存储在同一Flash ROM中)

#1 楼

FPGA制造商不仅将格式放在那里,还有大量的低级文档。 Xilinx器件就是一个很好的例子。

要对比特流进行逆向工程,您可能会生成实现简单逻辑的测试用例,并查看它们如何转换为比特流,然后继续进行设计以使用芯片的不同部分。

在基本级别上,您想知道如何控制CLB,然后是IOB和互连。 CLB是IOB的逻辑,IOB连接到引脚,并且互连将CLB和IOB连接起来。该文档应该使您对FPGA的实现方式以及如何对位流进行反向工程有很多了解。请注意,较新的FPGA正在采用6输入缓冲,而不是4输入。

请记住,位流不是软件-它是硬件配置映像。因此,这实际上与必须编程ENIAC的方式非常相似-重新布线并通过开关对其进行编程-除非在这种情况下,您要在CLB中设置具有互连和逻辑的路由。

Ben NanoNote背后的家伙正在编写一个fpga工具链,我一直在关注它。由于我的SparcStation收集爱好的次要原因是在FPGA中重新实现了sun4m,即SparcStation架构。毕竟,谁不想在配置有您自己的处理器的FPGA上配置FPGA。

更新:值得注意的是IceStorm(主要是ice40芯片)和NextPNR(多目标)在ice40 / ECP5 / Xilinx系列7上)是最新的反向工程FPGA工具链。

评论


fpga.pdf似乎可以404重新链接它

– blabb
2014年1月30日21:59

我不确定它的去向...我相当确定这是否来自ESA 2009 FPGA研讨会。

–cb88
2014年2月21日在9:44

仅供参考:FPGA PDF链接为404。

–乔纳森·莱因哈特(Jonathon Reinhart)
2014年3月26日在6:24

@JonathonReinhart Wayback机器可能有一个副本……它说,带有副本的机器当前正在关闭。 web.archive.org/web/20120813074341/http://www2-c703.uibk.ac.at/…

–cb88
2015年1月16日15:45



#2 楼

Xilinx Virtex II具有“开放”比特流,这意味着该比特流格式已被记录并公开。然后人们可以按照自己认为合适的方式操纵比特流。从那时起,该格式已被关闭(IMO),以防止人们(1)重新购买该设备,这是某些利益所关注的大问题;以及(2)保持其技术对竞争对手的秘密。

较新的技术允许在FPGA编程之前从FPGA工具链内对比特流进行加密并进行内部解密。因此,在分析之前,您需要确保已捕获的比特流已解密。

此外,随着部分重配置(通过Xilinx)的实现,RE尝试将变得更多变得复杂,因为您不再能够坐下来观看设备的行为。

#3 楼

RapidSmith为您做到了。 http://rapidsmith.sourceforge.net/

还有一篇文章可以作为起点阅读:“ FPGA逆向工程的最新进展” Yu Hoyoung Yu,Hanhans Lee,Sangil Lee和Youngmin金和李亨民