如何不吹芯片提取eMMC

admin 2025年7月5日14:13:36评论0 views字数 3846阅读12分49秒阅读模式

每一种复杂的现代设备都需要非易失性存储器,以便在断电时保存程序和配置数据。目前,市场上有几种可供当今系统设计者选择的方案,它们分别是:串行Flash、原始NAND芯片、SD卡以及eMMC。本文讨论的主题是eMMC,特别是如何在不从系统中移除芯片的情况下与之进行交互。

这种做法通常是可行的。毕竟,即使你对BGA重新焊接球技术非常熟练,芯片和PCB能够承受的加热和冷却循环次数也是有限的,否则故障的概率会过高。更不用说eMMC最常使用的封装具有极细的引脚间距了。接触球与焊盘之间的间距仅为0.5毫米(0.02英寸),这使得整个过程相当繁琐且容易出错。

如何不吹芯片提取eMMC
PREREQUISITES

首先,先说说基本要求:

·待研究的设备。 

·用于与eMMC芯片交互的接口设备。可以选择任何能够进行1-bit MMC通信的设备。本文使用的是一个基于STM32的自制适配器,它提供了额外的破解和调试功能,但另速度较慢。

·一台能够处理磁盘镜像的设备。这取决于你实际使用的接口设备。或许是一台运行Linux操作系统的笔记本电脑和“dd”命令 

·微型焊接设备以及相应的技能。

·用于探测信号的设备。万用表、逻辑分析仪、示波器。 

·一个可调电源

eMMC basics

尽管eMMC芯片有大约一百五十个接触球,但只有几个真正起作用;其余的似乎用于机械稳定性或为未来使用预留。这里简要介绍一些特别的信号及其特性:

· CLK线由主机提供,用于同步总线上发生的所有事件。 

· CMD线用于主机和eMMC设备之间的双向通信。主机的命令和设备的响应都通过这条线发送。 

· 一组双向线DAT0至DAT7,用于主机和eMMC设备之间的数据交换。这些线承载除命令和响应之外的所有内容。 

· VDD和VDDQ线,以及相应的VSS和VSSQ线,为eMMC设备提供电源。eMMC标准定义了几种可接受的电压组合,但在所有情况下,VDDQ都小于或等于VDD。值得注意的是,VDDQ定义了eMMC总线上所有外部信号的电平!

进一步简化,只处理CLK、CMD、DAT0和电源线,这也就是所谓的1位总线宽度,其他两种选项分别是4位和8位。

更高的速度通常需要在eMMC总线的所有信号上使用串联电阻。这导致eMMC设备周围紧密环绕着8个或更多的电阻,这些电阻是绝佳的接触点。eMMC标准还建议通过电阻将所有线路拉高至VDDQ,以确保信号电平明确定义。

Problem #1: Locating eMMC signals on the board

在连接任何东西之前,我们需要明确要连接的究竟是什么。如果你运气好,设备的PCB上有丝网印刷标记,注明了一些或全部的eMMC信号位置。
如何不吹芯片提取eMMC

首先,留意电路板上eMMC设备周围的走线。其中一些很可能从设备下方延伸出来。它们延伸向何处?或许是SoC?走线上是否存在串联的被动元件?同时,务必彻底检查电路板的另一面。虽然eMMC信号在内部层布线并非不可能,但如果电路板的层数较多,那么在四层板中,内部层通常用于电源和地线,而顶层和底层则用于信号走线的情况更为常见。

如何不吹芯片提取eMMC

此外,还可以将封装引脚图叠加在电路板照片上,以大致确定目标信号的位置。

经过这番侦查,你应该已经锁定了几个可能是eMMC信号的候选点。现在需要逐一甄别这些候选点。最简便的方法或许是导线分别触碰每个候选点,同时利用逻辑分析仪监测设备启动时的信号活动,从而确定真正的eMMC信号。

如何不吹芯片提取eMMC

如上所示,可以看到几条从上至下贯穿的走线,这些都是很不错的探测候选目标。

在设备上电或系统复位时,总线上唯一的活跃交互会通过CMD线进行:将总线切换到空闲状态、询问支持的电压、分配设备地址等操作。此时,你会看到时钟(CLK)信号出现慢速脉冲串,而命令(CMD)线上的活动则相对不那么规律。大致如下所示:

如何不吹芯片提取eMMC

需注意的是,由于eMMC标准允许总线采用低电压(例如1.8V)运行,因此可能需要对逻辑分析仪进行适当配置。

CMD线活动始终以比特序列01开头;其中0为起始位,1为方向位(表示从主机到设备)。CMD的跳变必须与潜在时钟(CLK)信号的下降沿同步。在某个时刻,你可能会看到时钟信号的频率大幅提高至约50MHz,CMD信号也会随之改变。借助这些线索,应在候选信号中识别出CLK和CMD线。可以通过在逻辑分析仪软件中配置协议分析仪来验证猜测,若其显示结果合理,则表明猜测正确。

如果发现类似CMD的活动但未检测到CLK信号,则需要寻找更多候选信号。需注意,在所有信号中,CLK线最不可能在靠近eMMC芯片的位置设置串联电阻。由于只有主机驱动该线路,因此电阻会更靠近主机一侧。

至此,只剩数据线有待识别。要找到数据线,先找到命令(CMD)线和时钟(CLK)线,然后用协议分析仪查看设备传输数据时的情况,比如读取某些扇区或请求扩展CSD内容。这些操作会让数据线活动起来。如果是高速设备,可能还会用到8位模式,这时会有8条线同时活动。如果设备在速度切换前会执行读取操作,那么此时只会有一条数据线活动,这条线很可能就是DAT0线。也可以将CMD和CLK线连接到1位接口设备上,观察哪条候选数据线有活动,但前提是能为eMMC芯片供电且不影响系统其他部分。

Problem #2: Powering the eMMC chip

在对eMMC芯片进行任何操作之前,必须先为其供电。供电方式可以是利用被研究的设备自身供电或者外部供电。这两种方法各有优缺点。

最简便的方法是让设备自行运行。然而,这样做可能会遇到问题,因为整个系统将被激活,例如可能存在看门狗电路,需要从主SoC接收信号以证明系统已成功启动。如果在短时间内未检测到该信号,看门狗将使系统重启。此时,你可能需要找到该电路并绕过它,但这可能比直接供电更为复杂。

可以通过将电源连接到eMMC芯片下方的一些电容上来单独为芯片供电。这样可以避免系统重启的问题,但需要额外连接导线。不过,这种方法有风险:如果供电不受控,可能会损坏电路板。因此,建议采取限流措施,监控电流消耗,如果电流过高就停止操作,以防止永久性损坏。

无论选择哪种方式,请注意电源线上的电流可能会很大,因为除了目标eMMC芯片外,可能还有其他元件连接到VDD电源轨。使用台式电源为设备供电是个不错的主意。

在继续之前,得先搞清楚系统到底是用单一电源还是分开的电源来给VDD和VDDQ供电,以及每个电源轨各自需要多少电压。如果是分开的电源,那我们可能不清楚除了目标eMMC芯片外,较低电压的VDDQ电源轨上还连接了啥其他元件,也不知道它们能不能承受VDD电源的电压。要是我们直接把VDD和VDDQ连在一起,用VDD电源来供电,说不定能成,但也可能导致正在研究设备损坏。接不接受这个风险,全凭个人判断。

如何不吹芯片提取eMMC

如图所示,有几处金属浇注区域(浅绿色区域),较大的区域通常是地线,较小的则是VDD和VDDQ电源,在本例中它们被连接在一起。

由于VDDQ电压可以通过在系统启动时探测CMD和时钟信号并记录显示值来轻松确定,因此唯一需要做的就是探测eMMC下方的去耦电容,试图找到一个不同的、更高的电压,这很可能是VDD电压。或者,如上述情况,你可以直接观察并通过万用表进行二次确认。

此外,采用独立电源和较低电压还引发另一个问题,所使用的接口设备必须适配当前的破解操作。具体来说,接口设备可能不支持被破解设备中使用的较低信号电压。例如,使用的接口设备仅支持3.3V电压。这意味着必须使用双向电压电平转换器。

市场上有多种此类设备可供选择。经过实验验证,TXS系列设备可以胜任。它们可以方便地安装在小块PCB上,便于黑客操作。接下来,只需将适配器PCB板连接在接口设备和eMMC芯片之间即可。

如何不吹芯片提取eMMC
Problem #3: Keeping the rest of the system quiet

无论选择哪种方式为eMMC芯片供电,系统其余部分可能都会部分或全面启动,需要设法使其保持静默。这在连接至eMMC的设备通电并激活时尤为重要。若选择为整个系统供电而非仅eMMC芯片,这种情况自是意料之中。仅向eMMC供电,可能会导致eMMC总线出现活动,也可能不会。可通过为eMMC上电并监测CMD线活动来轻松验证这一点:通常情况下,CMD线应被上拉至VDDQ电平并保持。

若被研究的设备系统过于活跃,根据其设计,可考虑以下几种选项:

·可尝试仅通过eMMC芯片下方的电源引脚为其供电,而非整个系统。

·若电路板上有丝网印刷的信号标签,可寻找类似于与eMMC通信的元件的复位信号。强行触发该信号可使元件保持复位状态。复位信号也可能出现在调试接口或硬件复位按钮上。

·若与eMMC通信的SoC将eMMC作为链式启动设备中的次级设备(例如,与串行闪存芯片一同使用),可探索如何“禁用”该主设备,使系统无法启动并陷入循环,从而避免触碰eMMC接口。

·可尝试通过干扰晶振来禁用时钟源,例如从电路板上移除晶振,或将SoC振荡器输入端通过低阻值电阻连接到电源轨。可用示波器探测以确认该方法是否奏效。

解决上述问题后,若尚未找到数据线DAT0,此时一切条件已具备,应着手寻找DAT0。此后,根据所用接口类型,应能自由地与eMMC交互,如同其为自有设备的一部分:可以转储数据,也可以挂载设备等。唯一缺点在于,若使用非专业接口,由于无法切换区域,转储非用户区域很可能无法实现。不过,一旦通过研究eMMC用户区域中发现的软件,获得对被研究的活跃设备的初始访问权限,这一问题便可迎刃而解。

如何不吹芯片提取eMMC
如何不吹芯片提取eMMC
如何不吹芯片提取eMMC

原文始发于微信公众号(安全脉脉):如何不吹芯片提取eMMC

免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2025年7月5日14:13:36
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   如何不吹芯片提取eMMChttp://cn-sec.com/archives/4221747.html
                  免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉.

发表评论

匿名网友 填写信息