我有一个带有 NAND 闪存芯片的 U 盘,芯片上只有一些无用的标记。我拆焊了芯片,我有一个通用编程器,但是我无法将它与我的 NAND 闪存芯片一起使用,因为我无法确定我拥有的芯片品牌/型号。
如果封装上没有任何有用的标记,是否有任何关于如何确定 NAND Flash 芯片类型的建议?我也没有USB BOM...
我想我可能会拆开一个示例芯片,看看在硅芯片本身的顶层是否有更多有用的标记,但我更喜欢某种侵入性较小的方法。
非常欢迎对外部书籍/网站的任何建议或方向。
我有一个带有 NAND 闪存芯片的 U 盘,芯片上只有一些无用的标记。我拆焊了芯片,我有一个通用编程器,但是我无法将它与我的 NAND 闪存芯片一起使用,因为我无法确定我拥有的芯片品牌/型号。
如果封装上没有任何有用的标记,是否有任何关于如何确定 NAND Flash 芯片类型的建议?我也没有USB BOM...
我想我可能会拆开一个示例芯片,看看在硅芯片本身的顶层是否有更多有用的标记,但我更喜欢某种侵入性较小的方法。
非常欢迎对外部书籍/网站的任何建议或方向。
如果真的是符合ONFI标准的NAND闪存芯片,如果你有通用编程器,应该可以读取它的ID。
www.onfi.org/~/media/onfi/specs/onfi_2_1_gold.pdf — 请参阅第 5.5 节“读取 ID 定义”
此外,您的程序员可能会提示您指定要读取的 NAND 芯片类型,以确定其引脚排列。事实是,通过选择具有相同(或多或少)容量的同一封装中的 NAND 芯片,您可能会获得可用的结果。引脚排列可能非常相似或相同,ID 会有所不同,但至少应该是可读的。
flashboot.ru 站点收集了各种用于 USB 闪存驱动器的实用程序,包括可以检测设备的供应商和设备 ID 的识别工具,在某些情况下甚至可以检测到确切的闪存芯片:
在这个问题上,伊戈尔当然比我知道六到七个数量级,但在我看来,如果你试图获得闪存芯片,而不是 USB 控制器,你可能无法从 VID/ PID。我可能错了,bc Igor,bc 我不熟悉 USB 闪存驱动器设计。
但是如果我是对的,如果它是一个 SPI 芯片,你可以尝试通过一个相当标准的 SPI 主命令来获取 JEDEC 制造商 ID。您需要弄清楚通过 SPI 与之通信的引脚,但如果您在 USB 控制器芯片上有任何标记,您可能能够确定哪些引脚可用于 SPI。对卸下芯片的焊盘进行连续性测试,并找出闪存芯片上的哪些引脚是 SPI 引脚。将它连接起来并使用 Adafruit FTDI 2232 分线板或任何您手头上的东西来尝试运行 flashrom 并识别芯片。我希望我能记住通过 SPI 获取 JEDEC ID 的确切命令,但这里是 JEDEC ID 规范http://www.softnology.biz/pdf/JEP106AR.pdf. 如果您需要确定需要发送的确切命令,请查看 flashrom 代码。抱歉,这不是世界上最有帮助的答案,但也许指出了您可以前进的方向。
您应该查看BlackHat 2014 上的这个演讲以及 30CCC 上Bunnie & Xobs 的这个演讲。
我可以讲一些细节,但它太庞大了,在这里尝试解释反转芯片的细节是没有意义的。如果您愿意使用针头和示波器探测 IC 并逆向工程协议或提取数据,则去盖可能会有所帮助;或使用显微镜拍摄快照,您可以将其与一些现有芯片进行比较,...这是一个非常好的Hackaday演讲,其中包含非常有趣的链接和技术。
我建议先获取芯片的数据表 - 如果您可以识别它 - 或在线查看制造商,看看是否有关于最终产品的任何信息可以导致识别组件或制造商零件; 或者如果有人试图修补相同的产品或在另一个产品中发现相同的芯片。使用中文搜索引擎,这些芯片大部分是中国制造的,例如,百度可以返回一些有用的链接,甚至文档和工具。请记住,有时未标记的芯片是知名芯片的仿冒品,您可以查看知名闪存制造商的数据表并比较引脚位置,甚至使用示波器探测引脚以查看它们是否与数据表描述相符。
如果您对流程/分析的输出有任何更深层次的技术问题,我将能够提供更多帮助。在深入研究反转筹码之前,您需要锻炼一系列彻底的步骤,因为它有时会变得非常混乱。
也看看这些家伙:link,他们开发了一个用于硬件倒车的完整硬件平台。它相当昂贵(700€ ~ 680$)但非常方便,尤其是筹码数据库。