这是关于破解亚马逊 eero 6 设备的第二部分,涵盖了直接从 eMMC 闪存芯片读取和提取固件数据的内容,此前该芯片已从设备上拆卸下来(不是作者本人操作)。还分享了在该项目中购买的设备,包括哪些设备有用哪些设备没用。
博客第一部分可在:https://markuta.com/eero-6-hacking-part-1/找到
博客内容
非破坏性尝试
在拆卸设备上的 eMMC 闪存芯片之前,作者尝试了一些非破坏性技术,但都未成功,包括恢复模式启动、通过 UART 中断启动、追踪 eMMC 周围的线路、使设备启动故障以及分析设备测试点等。
芯片拆卸
- 曾想购买热风枪,但价格约 200 英镑,最终决定带到手机维修店,花费 20 英镑拆卸。
- 得到了 eMMC BGA153 芯片,但没有简单的读取方法,尝试了一些手头很便宜的工具也未成功,最后购买了便宜的 BGA153 适配器和其他设备。
eMMC 和 SD 接口
微 SD、SD、MMC 和 eMMC 工作原理相似但有细微差别,eMMC 由 NAND 闪存存储和位于主机处理器之间的闪存控制器组成。可参考这里获取技术概述,也可阅读riverloopsecurity关于 eMMC 研究的文章或Amir Etemadieh在 Blackhat 2017 的演讲。
一些失败尝试
- 理论认为多数尝试失败是因为使用 eMMC 的 1 位模式,也可能是使用的适配器不支持该模式,更现实的原因可能是焊接接触点或缺少电阻。
- 追踪线路:在 eMMC 芯片和主 CPU 之间有几条追踪线,尝试刮掉 PCB 上的铜箔以露出线路并焊接细铜线连接逻辑分析仪,但难以识别 CLK 信号等。
- 死虫调试:使用 0.1mm 带漆铜丝和带有白色粘性的转接板,牺牲了一个 microSD 适配器,但效果不佳。
- 探针工具:该工具适合 microSD 卡恢复和较大 PCB,但不适合精细 BGA 焊盘,测试探针易从焊盘滑落且使用不便。
- eMMC 到 microSD 适配器:尝试使用便宜的 microSD 到 SD 适配器连接到多个读卡器,均失败,如 transcend SD USB 适配器、UGreen 多工具 USB-C 适配器和旧笔记本的 SD 卡插槽。
- 低功耗 eMMC 到 SD 适配器:购买了此设备但也未成功,可能是焊接问题,其他人也有类似问题。
作者失去耐心后,在 Aliexpress 购买了 BGA153 适配器来读取 eMMC 芯片,无需手动焊接到微小的 BGA 焊盘。在 Aliexpress 上搜索相关关键词找到多种设备,价格差异较大,最终购买了最便宜的(35 英镑)eMMC BGA153 适配器,并购买了将信号转换为 USB 或 SD 接口的设备。
MKS eMMC 适配器
用于 3D 打印机升级固件,支持 microSD 插槽和 20 引脚 eMMC 扩展模块头及 USB 3.0 接口,可在 eBay、Amazon、Aliexpress 等平台找到。
组装与读取芯片
识别引脚
未找到 BGA153 适配器的引脚表,需获取金士顿 BGA153 eMMC 芯片的数据手册并与适配器布局比较,需用万用表探针检测引脚,中间方形引脚用于 Flash I/O 和内存电源,外部方形引脚用于内存控制器核心和 MMC I/O 以及电源,Flash I/O 内存使用Vcc
和Vss
,内存控制器使用Vccq
和Vssq
。将顶部塑料件拧下以便触及 PCB 上的焊盘,设置为连续性模式检测引脚。
焊接跳线
在 eBay 上找到约 5 英镑的便宜 MKS EMMC 适配器,支持 microSD 插槽和 20 引脚 eMMC 扩展模块及 USB 3.0 接口,需将引脚焊接到 eMMC 模块上,eMMC 模块的 20 引脚布局可在这里找到,完成后的产品如图所示。
读取芯片
将 BGA153 适配器(内含 eMMC 芯片)通过跳线连接到 MKS EMMC 适配器,再连接到运行 Windows 系统并装有 VMware 软件的主系统,在其中的 Linux 虚拟机中进行操作,插入后需将 USB 设备传递到虚拟机。使用dmesg -W
监控变化,出现新磁盘sdb
,容量为 4GB,表明读取成功,然后使用dd
命令创建固件的原始副本,使用7z l emmc_eero6.bin
查看逻辑分区名称,使用7z x emmc_eero6.bin
提取.img
文件并使用简单的 bash 脚本挂载。
分析文件系统
分享了每个分区的一些信息,如rootfs
中有用于设备管理和系统操作的编译 Python 包nodelib
,rootfs_1
中有不同版本的nodelib
包,log
中有调试和其他消息及固件下载 URL 错误,cache
中有与后端云服务和移动应用通信的证书文件,bootconfig
中有 Qualcomm 固件等。还列出了系统启动时的一些服务和/usr/lib
、/usr/bin
中的一些库和二进制文件。
结论
作者知道读者可能认为去手机维修店拆卸 eMMC 芯片是作弊,但仍遇到读取芯片数据的问题。分享了提取 eMMC 芯片数据过程中遇到的问题和解决方案,遗憾的是未能找到轻松 root 设备的方法,拆卸芯片后设备完全损坏,除非重新焊接,但未来可能有办法。不会发布固件文件,因为是爱好者不想被亚马逊或高通起诉,下一步是更详细地分析固件以查找安全漏洞并可能获得漏洞赏金。
资源
分享了一些在该项目中非常有用的资源,包括Hardware Hacking 101: Identifying and Dumping eMMC flash、Hacking Hardware With a $10 SD Card Reader](https://www.blackhat.com/docs/us-17/wednesday/us-17-Etemadieh-Hacking-Hardware-With-A-$10-SD-Card-Reader.pdf)、[How to Dead-Bug a BGA Flash Memory chip、A detailed description of eMMC technology、Flash readers by Voidstarsec。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。