《iOS取证实战:调查、分析与移动安全》一2.3 操作模式

简介: 本节书摘来自华章出版社《iOS取证实战:调查、分析与移动安全》一书中的第2章,第2.3节,作者(美)Andrew Hoog Katie Strzempka,更多章节内容可以访问云栖社区“华章计算机”公众号查看

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模式下,最常见的是执行物理取证。它经常在“设备固件升级”中被提及。

image

进入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设备。

image

系统分析程序也能够通过终端窗口来搜索。首先,输入下面的命令来启动系统分析程序:
image

接下来,输入下面的命令来查找运行在DFU模式的设备(此命令的显示结果如图 2-3所示):

一些要在iPhone上获取物理映像的新工具需要运行在Linux上。在Linux工作站上校验设备是否工作在DFU模式,可以用一个类似的程序。将设备连接到Linux机器上,在终端窗口上输入lsusb命令,窗口将显示所有连接到指定机器的USB设备。当连接到工作站的iPhone运行在基本模式时,通过lsusb命令将显现Apple 设备的情况,包括型号编号、序列号以及其他此设备的详细信息。

image
image

当连接到工作站的iPhone在DFU模式下运行时,运行“lsusb”命令将显现类似上面的一些设备信息,但是它同时也会显示此iPhone是一个“DFU”设备。

image
image

请注意,在不同的操作模式下产品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,用户需要在终端窗口上输入以下命令,以运行此程序:
image

接下来,执行以下命令:
image

最后,用户发起重启过程,设备就会以基本模式运行了。这个过程如果使用iRecovery来完成,会有一点复杂,因为它还提供了其他一些功能,例如上传文件(iRecovery,2009)。Jonathan Zdziarski的物理获取工具利用iRecovery在必要的时候自动重启iPhone。这个工具也将在后面讨论,它在取证过程中扮演了很重要的角色。
RecBoot工具对于跳出恢复模式循环来说更简单一些。它只有两个用途:进入恢复模式或者离开恢复模式(图2-4中展示了RecBoot工具的用户界面)。由于这种原因,它的界面更友好。用户简单地点击按钮,设备就能够自动重启,恢复基本操作模式。
不同的操作模式经常会在取证映像过程中应用,我们将在第5章讨论这些操作模式。

相关文章
|
12天前
|
安全 Android开发 数据安全/隐私保护
深入探讨iOS与Android系统安全性对比分析
在移动操作系统领域,iOS和Android无疑是两大巨头。本文从技术角度出发,对这两个系统的架构、安全机制以及用户隐私保护等方面进行了详细的比较分析。通过深入探讨,我们旨在揭示两个系统在安全性方面的差异,并为用户提供一些实用的安全建议。
|
2月前
|
开发工具 Android开发 Swift
安卓与iOS开发环境对比分析
在移动应用开发的广阔舞台上,安卓和iOS这两大操作系统无疑是主角。它们各自拥有独特的特点和优势,为开发者提供了不同的开发环境和工具。本文将深入浅出地探讨安卓和iOS开发环境的主要差异,包括开发工具、编程语言、用户界面设计、性能优化以及市场覆盖等方面,旨在帮助初学者更好地理解两大平台的开发特点,并为他们选择合适的开发路径提供参考。通过比较分析,我们将揭示不同环境下的开发实践,以及如何根据项目需求和目标受众来选择最合适的开发平台。
49 2
|
9天前
|
监控 算法 iOS开发
深入探索iOS函数调用栈:符号化与性能调优实战
在iOS开发中,理解函数调用栈对于性能调优和问题排查至关重要。函数调用栈记录了程序执行过程中的函数调用顺序,通过分析调用栈,我们可以识别性能瓶颈和潜在的代码问题。本文将分享iOS函数调用栈的基本概念、符号化过程以及如何利用调用栈进行性能调优。
28 2
|
2月前
|
安全 Android开发 数据安全/隐私保护
探索安卓与iOS的安全性差异:技术深度分析与实践建议
本文旨在深入探讨并比较Android和iOS两大移动操作系统在安全性方面的不同之处。通过详细的技术分析,揭示两者在架构设计、权限管理、应用生态及更新机制等方面的安全特性。同时,针对这些差异提出针对性的实践建议,旨在为开发者和用户提供增强移动设备安全性的参考。
136 3
|
1月前
|
开发工具 Android开发 Swift
安卓与iOS开发环境的差异性分析
【10月更文挑战第8天】 本文旨在探讨Android和iOS两大移动操作系统在开发环境上的不同,包括开发语言、工具、平台特性等方面。通过对这些差异性的分析,帮助开发者更好地理解两大平台,以便在项目开发中做出更合适的技术选择。
|
2月前
|
安全 Linux Android开发
探索安卓与iOS的安全性差异:技术深度分析
本文深入探讨了安卓(Android)和iOS两个主流操作系统平台在安全性方面的不同之处。通过比较它们在架构设计、系统更新机制、应用程序生态和隐私保护策略等方面的差异,揭示了每个平台独特的安全优势及潜在风险。此外,文章还讨论了用户在使用这些设备时可以采取的一些最佳实践,以增强个人数据的安全。
|
3月前
|
Java 开发工具 Android开发
安卓与iOS开发环境对比分析
【8月更文挑战第20天】在移动应用开发的广阔天地中,Android和iOS两大平台各自占据着重要的位置。本文将深入探讨这两种操作系统的开发环境,从编程语言到开发工具,从用户界面设计到性能优化,以及市场趋势对开发者选择的影响。我们旨在为读者提供一个全面的比较视角,帮助理解不同平台的优势与挑战,并为那些站在选择十字路口的开发者提供有价值的参考信息。
|
2月前
|
IDE 开发工具 Android开发
安卓与iOS开发环境对比分析
本文将探讨安卓和iOS这两大移动操作系统在开发环境上的差异,从工具、语言、框架到生态系统等多个角度进行比较。我们将深入了解各自的优势和劣势,并尝试为开发者提供一些实用的建议,以帮助他们根据自己的需求选择最适合的开发平台。
47 1
|
3月前
|
开发框架 Android开发 Swift
安卓与iOS应用开发对比分析
【8月更文挑战第20天】在移动应用开发的广阔天地中,安卓和iOS两大平台各占半壁江山。本文将深入探讨这两大操作系统在开发环境、编程语言、用户界面设计、性能优化及市场分布等方面的差异和特点。通过比较分析,旨在为开发者提供一个宏观的视角,帮助他们根据项目需求和目标受众选择最合适的开发平台。同时,文章还将讨论跨平台开发框架的利与弊,以及它们如何影响着移动应用的开发趋势。
|
3月前
|
安全 搜索推荐 Android开发
安卓与iOS应用开发的对比分析
【8月更文挑战第20天】在移动应用开发领域,安卓和iOS两大平台各领风骚。本文通过深入探讨两者的开发环境、编程语言、用户界面设计、应用市场及分发机制等方面的差异,揭示了各自的优势和挑战。旨在为开发者提供决策支持,同时帮助理解为何某些应用可能优先选择在一个平台上发布。
44 2