数字取证实战:USB闪存驱动器修复与数据提取全记录

本文详细记录了修复故障USB闪存驱动器的完整过程,涉及硬件诊断、电路分析、元件替换等技术细节,展示了数字取证中硬件修复与数据提取的实际操作方法和注意事项。

一只顽皮取证猴的USB闪存驱动器探索之旅

任务开端

最近,猴子接到了一项从损坏的USB闪存驱动器中提取数据的任务,该驱动器之前已被其他方"修复"过,但仍然无法正常工作。本文将详细记录让设备重新正常工作的过程,同时也展示了向经验丰富的专家求助的力量。你永远不知道在哪里/何时会找到那个缺失的拼图!

特别感谢以下猴子助手提供的帮助/建议/忍受我没完没了的电子邮件:

  • Rusolut的Sasha Sheremetov
  • RecoverMyFlashDrive的Jeremy Brock
  • Teel Technologies USA的Maggie Gaffney
  • Cory Stenzel(Twitter - Cory还鼓励我写这篇文章)
  • Ryan Olson

我们从一个无法工作的16GB USB闪存驱动器开始,它没有外壳或明显的品牌标识。原来的USB连接器已经断裂,被维修人员更换了一个不同的连接器。

初步观察

  • 通过USB电压/电流表将设备插入USB电源时,显示它没有消耗太多电流(如果有的话)。我们最初没有将其插入PC,因为我们不知道设备上存储了什么数据(例如USB Rubber Ducky)。在后续测试中,我们使用了一台较旧的独立牺牲PC。

  • USB驱动器仅使用4个焊盘用于连接器(GND、5V、D+、D-),所以可能是USB2。USB3使用9个引脚(USB3使用更多数据通道)。

  • 活动LED附近似乎缺少一个组件。

  • 电路板一侧有一个Phison PS2251-68-5 NAND控制器,另一侧有一个东芝16GB嵌入式多媒体卡(e.MMC)芯片。

对于较旧的USB闪存驱动器,NAND控制器通常是一个方形芯片(例如LQFP48 = 低剖面四方扁平封装,48引脚),类似于Reddit示例图片中所示的那个。控制器芯片负责将主机设备(即PC)的USB读/写指令转换为存储器芯片可以理解的命令。控制器还负责存储器的磨损均衡,并确定每次写入的存储方式(物理位置/任何错误校正/数据删除)。

e.MMC存储器芯片的存在有些出乎意料。较旧的USB闪存驱动器通常使用单个NAND控制器芯片和单独的NAND存储器芯片(通常是TSOP48芯片,其中TSOP48 = 薄小外形封装,48引脚)。

e.MMC芯片的不同之处在于它将自身的板载存储器控制器与一些NAND存储器结合在一起。e.MMC芯片封装通常是BGA(BGA = 球栅阵列)。即信号通过芯片底部的焊球传输。没有像LQFP48那样的其他外部引脚。

快速Google搜索BGA上写的东芝部件号确认它是一个16GB e.MMC芯片。

嗯……e.MMC芯片通常比常规NAND存储器更贵。当板上已经有一个专用的Phison NAND控制器芯片时,USB闪存驱动器制造商会为什么使用e.MMC芯片?

Rusolut的Sasha在他非常有见地的Visual NAND Reconstructor课程中提到了这种可能性。通常,在这种安排中使用的e.MMC芯片是打折的工厂次品——它们有故障/禁用的内部控制器,但NAND存储器是好的,所以它们作为更便宜的NAND芯片出售。

有趣的是,Rusolut还有一种通过NAND接口点读取e.MMC芯片的解决方案(即它直接访问NAND存储器,避免与内部控制器通信)。不幸的是,我无法使用那个神奇的工具,而且将NAND重建到文件系统中可能非常复杂,并且严重依赖设备。例如,两个使用相同控制器但运行不同固件的闪存驱动器可能以不同的方式组织NAND。

正常的e.MMC芯片也可以通过适配器(例如USB-eMMC适配器)与内部e.MMC控制器通信来移除和读取。然而,由于我们设备的e.MMC可能有一个故障/禁用的板载控制器,这样的读取将不准确/不可靠。

所以我们最初的策略是尝试修复闪存驱动器,让PC识别它,然后通过FTK Imager进行镜像。

旅程开始!

我们首先尽可能多地收集有关修复驱动器的信息。 我们Google搜索了以下数据表:

  • Phison控制器型号
  • 东芝存储器芯片型号

我们没有成功找到数据表,但我们也注意到PCB上印有一个序列号(POVK568FS1400311)。 Google搜索序列号将我们带到了RecoverMyFlashDrive的Jeremy的这篇文章。

从文章图片中,我们可以看到相同的电路设计布局、相同的组件标签和相同的控制器芯片,但e.MMC芯片不同(尽管仍然是东芝e.MMC)。

为了更好地概念化布局,我建议你通过上面的RecoverMyFlashDrive链接查看电路板图片,并在单独的标签页中打开它们以跟随。

在找到Jeremy的文章后,我给他写了一封电子邮件(并不真的期望回复),但Jeremy最终成为了一个不可思议的帮助者。

Teel Technologies的Maggie Gaffney是一位总是愿意提供帮助的好朋友,她还教授"数字取证审查员的板级修复"课程。所以自然,她是我首先寻求建议的人之一。

Maggie建议焊接裸露的TSOP48焊盘,然后尝试从e.MMC芯片读取。不幸的是,这也需要一些NAND重建,这是我试图避免的。

Maggie还提供了一些关于使用热风重新烘烤e.MMC BGA芯片的技巧。用热风返修站重新烘烤/加热BGA芯片可以帮助重新连接任何已断开的焊球。然而,如果芯片和PCB之间有任何环氧树脂/填料,重新烘烤可能不起作用。因为似乎使用了一些半透明的硅填料,我没有对e.MMC芯片进行任何重新烘烤。

我最近看到了Cory Stenzel的Rusolut培训推荐Youtube视频,并通过他在各种数字取证Google群组中的帖子认出了他的名字。希望他也能提供帮助,我给他发了一封电子邮件,当他回复说他通过参加SANS FOR585和Maggie的板级修复课程熟悉这只猴子时,我惊喜不已。

Cory也有一些很好的想法/研究要分享。首先,Cory给我发送了这个关于USB控制器"测试模式"的链接。

使用Chrome内置的GoogleTranslate功能,这似乎是一个有希望的线索,但Cory指出他尚未在展品上使用过它。

所以我与Rusolut的Sasha核实,他补充说测试模式可能有助于排除(Phison)控制器是否工作,但不会允许从NAND传输数据。唉!

然而,Cory的链接还有一个列出Phison USB控制器PS2251-67引脚排列的图表。这很有帮助,因为我无法找到我们修复设备上PS2251-68-5控制器的引脚排列图。假设这样的修订版引脚排列没有太大/根本没有变化,这个图表可以帮助我们确定控制器是否被提供了正确的电压。

Cory还有其他一些好建议,例如:

  • 对每个(Phison)控制器引脚施加一点压力,检查它们是否正确焊接到板上。我把Cory的建议更进一步,使用烙铁和一些助焊剂凝胶确保每个Phison引脚与其相应的焊盘电气连接。然后我使用万用表验证焊接重新烘烤没有在相邻引脚之间引入任何短路。
  • 使用好的热成像相机在设备插入时寻找热点(即潜在的短路)。不幸的是,我没有热相机,但这似乎是一项值得的未来投资。

我还向Teel Technologies"物理移动取证"Google群组寻求建议,Ryan Olson回复说,他见过的大多数成功案例都涉及将存储器芯片移植到相同的供体上。不幸的是,我们可能无法自信地找到相同的供体,而且移植BGA芯片不像TSOP48那样容易(至少对这只猴子来说不是)。此外,Rusolut支持提到,如果控制器硬件和固件不完全匹配,新板上的控制器可能会擦除/格式化数据。

所以总结我们目前的进展——我们有一个USB2闪存驱动器,它不消耗电流,当插入隔离的Windows PC时不被识别。 在损坏设备之前/之后,将已知工作的USB2闪存驱动器使用相同的电缆插入同一端口工作正常。所以是我们的修复设备有问题,而不是我们的测试PC。

查看Jeremy文章中的图片,我们可以看到除了控制器和e.MMC组件外,大多数其他组件要么是电阻(小的黑色矩形组件),要么是电容(不同大小的棕色矩形组件)。

在将其插入PC失败后,我们注意到LED(标记为"D1")旁边缺少一个组件(标记为"BC9")。采购替换组件有些棘手,因为我们不知道设备的确切品牌/型号。然而,通过打开一堆具有相同大致年龄/容量的测试USB2闪存驱动器,我们最终在Verbatim Store N Go闪存驱动器上找到了一个类似的LED布局。这个参考驱动器使用了不同的Phison控制器,但具有类似的LED布局配置。缺失的组件"BC9"是一个连接到LED的电容。后来当我们看到Jeremy的文章图片时,这也得到了确认。

所以使用一对焊接镊子和一些助焊剂,我们将LED和电容从我们的测试Verbatim Store N Go驱动器移植到我们的修复驱动器。 我们再次尝试我们的修复设备,但它仍然无法连接。也许这毕竟是一个"LED红鲱鱼"?蟋蟀声

在根据electroschematics.com的以下图片仔细检查修复的USB连接器后,似乎之前的维修人员将连接器反向焊接(即5V连接到地,反之亦然)。可能说了一些成人用语。引用Blackadder的话:“我认为这个短语与clucking bell押韵”。 傻猴子也很生气自己没有先检查连接器方向。

提示:USB连接器的外部金属通常连接到地。通过使用万用表(在连通性设置上),一个探针放在USB地引脚上,另一个探针放在USB连接器上应指示连接。 另一个有用的提示是剪掉USB延长线的PC端(公头)插头,然后将电缆的另一端(母头)连接到测试设备。这将使以后探测各种USB信号更容易。与其尝试将万用表探针放入闪存驱动器的USB连接器(或仅位于PCB一侧的焊盘上),你现在可以将探针连接到延长线的裸露电线并更容易地探测。

所以我们现在知道USB地和5V引脚反接了——其他USB引脚D-和D+呢?它们也反接了吗? 幸运的是,我们有另一个使用相同Phison控制器的测试设备,所以我们追踪了测试Phison控制器的USB D- / D+引脚,并相应地连接了我们的修复设备。

我们插入了新校正的设备,仍然没有反应……狒狒之母! 也许反接的电压造成了一些损坏? 使用万用表,我们检查了所有电容和电阻的连通性,没有在任何电容上检测到短路。一些电阻读数为0欧姆,但显然,当制造商希望要么未来验证设计,要么使用0欧姆电阻作为一种过流组件,在下游任何其他东西之前熔断时,这并不少见。

当设备插入PC时,我开始测量一些电容上的电压,当Windows播放USB连接声音并短暂允许文件资源管理器查看一些目录内容时,我感到惊讶。这只持续了大约30-60秒(足够抓取目录的屏幕截图),但这是一个好迹象——驱动器没有完全报废。有趣的是,显示的卷名是"Verbatim16"。不幸的是,尽管后续多次尝试,我无法进一步重新连接。

我与RecoverMyFlashDrive的Jeremy分享了这个进展,他 helpful 地找到了一个类似的驱动器,并分享了他设备上看到的一些电容电压。一个电压特别与我们的修复设备不同。Jeremy观察到连接到Phison控制器引脚47的电容"C7"上有5V电压。在我们的修复设备上,引脚47的电压是3.7V。 查看usbdev.ru的引脚排列显示引脚47是控制器的5V电源引脚。所以如果我们能提供5V,它可能就能工作。

为了完整性,控制器还在各种控制器引脚上获得了预期的3.3V——似乎只有5V引脚电压不足。有趣的是,TSOP48的Vcc引脚也获得了3.3V,所以通过TSOP引脚读取和通过Rusolut VNR重建可能也会工作,但会花费我更多时间。

我的第一个想法是从USB 5V引脚直接焊接一根铜跳线到引脚47,但在与Jeremy交叉检查后,决定不这样做,以防它绕过一些内部控制器安全机制。

从PC拔下修复设备后,我测量了USB 5V引脚和引脚47之间的电阻。在修复设备上,电阻是170欧姆。在具有相同控制器(但不同PCB布局)的参考设备上,USB 5V和引脚47之间的电阻约为2欧姆。有点差异!

所以在修复设备上,我追踪了USB 5V和引脚47之间的路径,发现大部分电阻似乎来自"R1"。 如果"R1"失效并增加了其标称电阻,那么引脚47可用的电流就会减少。记住:电压(V)= 电流(I)x 电阻(欧姆)。

所以我决定用1欧姆电阻替换"R1"。这将使修复设备上USB 5V到引脚47的电阻值与参考设备相当。

我将我们新修改的测试设备插入测试PC,然后……宾果!

驱动器连接/被识别并保持连接。我能够抓取每个目录的屏幕截图,然后通过FTK Imager和一个软件写阻止程序完成镜像。

香蕉到处都有!

进一步思考

在USB闪存驱动器上反接电压不一定是永久的驱动器杀手。

执行数据恢复时,不要首先选择核选项(例如芯片拆卸/NAND重建)——可能只需要更换一两个组件。

不要害怕向他人寻求建议。

随着设备上加密级别的提高,对修复损坏设备而不是移除存储器并离线读取的需求将相应增加。 因此,拥有基本的硬件故障排除技能将越来越有用。

如果有人对修复课程感兴趣,Maggie教授"数字取证审查员的板级修复"课程。我一直想参加,希望很快能体验。

有关更多修复技巧/技术,请查看这些Youtuber:

HDD Recovery Services https://www.youtube.com/user/hddrecoveryservices

The Art Of Repair的Justin https://www.youtube.com/channel/UCG8Y3ARZq5s-FyasBOGNrnQ

Jessa Jones ipadrehab https://www.youtube.com/channel/UCPjp41qeXe1o_lp1US9TpWA

Louis Rossman https://www.youtube.com/user/rossmanngroup

最后,如果你有任何评论、建议或资源可以帮助其他人排除USB闪存设备故障,请在下面留言。

PS 请不要要求我恢复你的个人闪存驱动器。去问Google吧 :)

comments powered by Disqus
使用 Hugo 构建
主题 StackJimmy 设计