2.3 操作模式
上述设备能够运行在不同的操作模式上,包括基本模式、恢复模式或DFU(Device Failsafe Utility)模式。这些模式将会在后续章节经常提及,因为要在设备上执行特定功能就需要设备在指定模式下运行。例如,执行升级或系统还原,设备必须以恢复模式运行。
2.3.1 基本模式
设备以标准形式启动,即称为基本(normal)模式。大多数在iPhone上进行的操作都运行在基本模式下,除非有其他规定。
2.3.2 恢复模式
对于恢复模式,用户或审查者将设备启动到iBoot,绕过了操作系统加载。iBoot是Apple的第二阶段引导模式,恢复模式将驻留在此。某些功能要在这个操作模式下实现,例如激活设备、升级或降级iPhone,或执行某些物理获取操作。
要进入恢复模式需要按照以下方式:第一步关闭设备电源(按住电话顶部的按钮直到看见设备上显示“移动滑块来关机”提示);第二步,长按Home键,同时通过USB连接线将设备连接到计算机,保持这个动作直到显示“连接到iTunes”(见图2-1),然后释放。
通过连接电缆线,设备将获得电源。另一个做法是先将设备连接到计算机,再关闭设备电源,然后同时按住Home键和设备的电源按钮。
2.3.3 DFU模式
iPhone的各种初始化行为都要求运行在DFU模式下,最常见的是执行物理取证。它经常在“设备固件升级”中被提及。
进入DFU模式的步骤是,确保iPhone已经连接到电脑上,此时iTunes不要运行,如果设备连接时iTunes启动了,要通过在Mac的左上角选择“iTunes→退出iTunes”, 确保iTunes程序退出(或者在Windows上,通过“关闭”按钮来关闭此应用程序)。在设备启动或者关闭时,持续同时按住Home键和电源按钮10秒,然后释放电源按钮(此时持续按住Home键)保持十几秒(保持超过10秒是很重要的)。当成功进入DFU模式时,屏幕将是黑色的。若看到了Apple的标志或者其他设备正在启动的信号,则证明进入DFU模式失败了,操作过程执行不正确。
要校验Mac设备是否已经进入了DFU模式,可以运行系统分析程序。启动后,选择USB选项,可以看到如图2-2所示的设备。如果操作正确,屏幕上会显示USB DFU Device,否则仅显示Apple iPhone设备。
系统分析程序也能够通过终端窗口来搜索。首先,输入下面的命令来启动系统分析程序:
接下来,输入下面的命令来查找运行在DFU模式的设备(此命令的显示结果如图 2-3所示):
一些要在iPhone上获取物理映像的新工具需要运行在Linux上。在Linux工作站上校验设备是否工作在DFU模式,可以用一个类似的程序。将设备连接到Linux机器上,在终端窗口上输入lsusb命令,窗口将显示所有连接到指定机器的USB设备。当连接到工作站的iPhone运行在基本模式时,通过lsusb命令将显现Apple 设备的情况,包括型号编号、序列号以及其他此设备的详细信息。
当连接到工作站的iPhone在DFU模式下运行时,运行“lsusb”命令将显现类似上面的一些设备信息,但是它同时也会显示此iPhone是一个“DFU”设备。
请注意,在不同的操作模式下产品ID和序列号的显示情况是不一样的。当执行固件升级时,有必要修改“idProduct”字段以确保仅有DFU驱动被加载(Microcontroller Division Applications,2003)。这个方法也能够帮助审查者确定设备是否运行在DFU模式(例如,如果显现的是序列号,那么可能设备就是运行在基本模式了)。
2.3.4 退出恢复/DFU模式
无论是在恢复模式下还是在DFU模式下,都可以通过同样的过程回退到基本模式。同时按住电源和“Home”键直到Apple的标志出现,设备将重启。通常,这一系列的操作(注意顺序)将使电话成功地回到基本操作模式。
设备有可能进入所谓的“恢复模式循环”,iPhone将会不断重启进入该模式。这会发生在越狱或解锁的过程中。如果发生了这种情况,有一些开源工具可用来协助用户跳出恢复模式循环,例如RecBoot 或者 iRecovery。这两个工具都是免费的,并且在Windows和Mac操作环境下都可以下载使用,iRecovery还能够在Linux上使用。这些工具通过USB连接与第二阶段引导程序(iBoot/iBSS)通信,以离开循环恢复模式。
在Linux和Mac系统上安装iRecovery涉及简单的源文件下载步骤。而Windows用户必须安装libusb以允许USB设备接入。要使用iRecovery,用户需要在终端窗口上输入以下命令,以运行此程序:
接下来,执行以下命令:
最后,用户发起重启过程,设备就会以基本模式运行了。这个过程如果使用iRecovery来完成,会有一点复杂,因为它还提供了其他一些功能,例如上传文件(iRecovery,2009)。Jonathan Zdziarski的物理获取工具利用iRecovery在必要的时候自动重启iPhone。这个工具也将在后面讨论,它在取证过程中扮演了很重要的角色。
RecBoot工具对于跳出恢复模式循环来说更简单一些。它只有两个用途:进入恢复模式或者离开恢复模式(图2-4中展示了RecBoot工具的用户界面)。由于这种原因,它的界面更友好。用户简单地点击按钮,设备就能够自动重启,恢复基本操作模式。
不同的操作模式经常会在取证映像过程中应用,我们将在第5章讨论这些操作模式。