众所周知,iOS系统目前在全世界是加密度最高的系统,尤其是其独特的文件加密结构和专用的协议让数据恢复工作变得非常困难

之前,知乎有这么一篇提问引起了很大关注,本人也进行了详细的回答,列举了我知道的一些方法。

父亲的 iPhone 6s 和 5 都有屏锁,父亲去世,包括母亲在内的亲人都打不开怎么办?​www.zhihu.com

幸运的是,也帮助了很多因各种原因导致密码停用而受困的朋友,让我更有动力去探索ios数据恢复这一领域。

因为日常时间有限,有些朋友的信息尚未答复,在此表达歉意!

闲话不多说,那些因为各种意外事件导致的停用、密码忘记后怎么办?iOS在停用状态、在ID锁定状态、在无法开机状态究竟有无新的技术方法实现技术提取,难点在哪里。

Checkm8漏洞的出现,让iPhoneX(A12)及以下设备获取ios最高权限成为可能,目前市场上已经有免拆机读写硬盘的产品出现,利用一键紫屏获取最高权限,更改硬盘底层信息,免拆机实现爱思验机“全绿”

国内某硬盘底层读写软件
富士康工厂紫屏模式

幸亏各种助手在我们验机那一刻应收尽收的“好心”把设备完整档案都拷贝到了各家服务器上来有限的辨别是否被修改过数据,不然还会引发二手市场很大的震荡

那既然可以获取最高权限,轻易读写序列号国别wifi等信息,能否读出用户分区的文件呢?理论上是可以的,但这里遇到几个难题需要解决:

1.目前的各种软件工具未能整合,各种利用checkm8漏洞的工具挑系统、挑版本,极其不稳定,而且一键紫屏的实现直接影响了各种硬盘测试架商家的蛋糕,目前看样子有联手封杀的意思,而轻松读写苹果硬盘底层数据这个影响很大,包括改国别、改序列号、绕过ID锁等太多非法用途,会造成很大的混乱。

2.“已停用”一键解除不知道已何种方式实现,当年iPhone4时代利用bootrom漏洞可以轻易删除停用倒计时文件来解除停用,但目前新的设备只能通过保资料刷机的方式来一定概率解除停用,而具体是怎么实现的,什么原理,我本人目前还是很困惑,要知道很多人运气是很差的,不能只依靠运气来解除。

3.越狱后打开ssh通道,通过sshpass来调用"tar -cf - /"命令轻易将iPhone上的文件打包输出到tar文件。但在未知锁屏密码之前,只能得到有限的数据,但是用户的钥匙串文件可以获取,再猜测锁屏密码或暴力破解出锁屏密码其实不是难事,但是包括国际上有名的几大取证公司在内还没人开发。

利用root权限打开ssh

也就是说,有了root权限,不管手机是否停用,是否有锁屏密码,是否还能开机,只要硬盘没坏,只要能进dfu,都是可以提取文件,只是不同情况提取的文件也不同,而为什么不同

这里要说到DFU的BFU与AFU模式

BFU是Before First Unlock(首次解锁前)的首字母缩写。BFU指的是已经关机的苹果手机或者重启以后没有解锁进过手机桌面的苹果手机。与之相对的是AFU是After First Unlock(首次解锁后)的首字母缩写。AFU指的是开机以后已经用屏幕密码解过锁的苹果手机。

BFU与AFU模式的最大差异就是手机本次启动以后是否解过锁。在苹果的世界里,iPhone 的内容直到用户输入他们的屏幕锁密码之前是安全加密的。屏幕锁屏密码被用来生成加密密钥,这个密钥被用来解锁iPhone的文件系统.换句话说,iPhone 内部几乎所有的东西都保持加密状态,直到手机启动后用户用自己的密码解锁。

根据Apple官方的《2019年秋季平台安全指南》的“加密和数据保护”章节的“数据保护类”一节所说:

在 iOS 设备或者iPadOS设备上创建新文件时,创建它的应用会为其分配一个类。每个类使用不同的策略来确定数据何时可被访问。

根据Apple官方的《2019年秋季平台安全指南》的“加密和数据保护”章节的“数据保护类”一节所说:

在 iOS 设备或者iPadOS设备上创建新文件时,创建它的应用会为其分配一个类。每个类使用不同的策略来确定数据何时可被访问。

iOS一共有四个级别的保护策略:

1. 全面保护(NSFileProtectionComplete):这个级别在设备锁定时是加密的。因此BFU状态下是加密的

2. 未打开文件的保护(NSFileProtectionCompleteUnlessOpen):这个级别在文件被打开时才可以访问。BFU状态下,显然文件还没有被打开,所以也是加密的

3. 首次用户认证前保护(NSFileProtectionCompleteUntilFirstUserAuthentication):这个级别在第一次解锁进桌面前也就是BFU状态下是加密的。注意:**这个级别是所有第三方应用数据默认的保护策略**

4. 无保护(NSFileProtectionNone):此类文件仅受UID保护。

以上1-3类的数据都必须在首次解锁进入桌面才能访问,否则都是加密的。因此在BFU模式虽然可以以root身份获取一些文件,但是大部分有价值的数据都无法访问。目前我们知道在 BFU 模式下(未知的设备密码) ,你可以得到已安装的应用程序列表、一些 Wallet 数据、 Wi-Fi 连接列表、大量媒体文件、通知(这些可能包含一些聊天消息和其他有用的数据)、日志。还有很多定位信息,以及一些社交软件(比如微博、支付宝、陌陌等)的账号信息和少量联系人信息。

另外在BFU模式下,可以提取部分Keychain信息。Keychain的数据也有不同的保护级别,只有具有 kSecAttrAccessibleAlways 和 kSecAttributeAccessibleAlwaysThisDeviceOnly 属性的记录才可以被提取。

综上所述,目前仅依靠硬件漏洞来实现iOS的数据提取和恢复还有很长的路要走,但曙光就在眼前,需要更多的人合力才能完成,希望行业内的专家能一起交流。


2020年6月23日更新:

基于Chekcm8漏洞的一键解除“iPhone已停用”软件已发布,iPhone5s-X,iOS13.5及以下,基本上一键解除,而且可以实现激活文件的备份,刷机后可以导入Dump文件来实现绕ID的后的网络信号的激活

引用

Elcomsoft Implements BFU Keychain Extraction from Locked and Disabled iPhones | Elcomsoft Co.Ltd.

https://www.fixplus.cn/index.php/College/view/id/117

ios dat 文件读写_iOS数据恢复前沿探索相关推荐

  1. ios dat 文件读写_Xilisoft iPad Magic Platinum for Mac(ios设备文件传输和转换工具)_资源共享论坛...

    Xilisoft iPad Magic Platinum for Mac是一款ios设备文件传输和转换工具,可以帮助用户将Mac上的应用程序,电影和音乐放到iPad上,无需iTunes即可将iPad应 ...

  2. ios dat 文件读写_树莓派安装Samba服务,实现家庭文件共享

    前言 Samba是一种局域网文件共享系统,安装上Samba后,在局域网内任何设备都可以共享(读写)树莓派内的资源文件,使树莓派成为家庭文件共享的中心. 注意:安装Samba需要将apt-get更新到最 ...

  3. Android与iOS资源文件读写对比

    在开发中,算法配置文件是作为独立资源文件存在,初始化的时候读取到应用中,因此有必要对Android和iOS系统下的资源文件读写有一定的了解. 首先要搞清楚的一点是,我们在PC上开发时使用的所有资源,移 ...

  4. 佳能5D4相机断电后0字节DAT文件MOV视频数据恢复(代码级)

    今天恢复了一例0字节文件,在此归纳总结,以作备忘:佳能5D4相机拍摄时断电了,在SD卡里出现了一个0字节的DAT文件,找不到MOV视频文件.断电之后又录了一个500M的文件,然后再也没有拍摄了,机主想 ...

  5. ios录音文件路径_iOS中录音功能

    应用场景 在即时通讯APP中,例如微信,QQ,等都有语音发送功能,一般都要先将录音录制下来才能发送录音. 音频相关知识介绍: 1. 文件格式(不同的文件格式,可保存不同的编码格式的文件) 1.1 WA ...

  6. ios xcode文件前缀_IOS Xcode开发中 文件名的后缀名m,mm,cpp,h区别

    文件区别: .h:头文件.头文件包含类,类型,函数和常数的声明. .m :源代码文件.这是典型的源代码文件扩展名,可以包含Objective-C和C代码. .mm :源代码文件.带有这种扩展名的源代码 ...

  7. 【C++之文件与文件流】f1.dat 和 f2.dat 文件的读写

    题目要求 建立两个磁盘文件 f1.dat 和 f2.dat ,编程序实现以下工作: (1)从键盘输入20个整数,分别存放在两个磁盘文件中(每个文件存放10个): (2)从 f1.dat 中读入10个数 ...

  8. 在 iOS 中对接收到的网络数据(NSData)进行文件读写

    在 c 语言中,文件操作都是由库函数来实现的,主要是分为读和写两种操作: 文件指针 平常所说的文件不同于其他常见的数据类型,比如一个test.txt文档,它有自己的一些属性,比如文件的当前位置.与该文 ...

  9. python读取dat数据_dat文件读写_c语言读写dat文件_c语言读dat文件 - 云+社区 - 腾讯云...

    广告关闭 腾讯云11.11云上盛惠 ,精选热门产品助力上云,云服务器首年88元起,买的越多返的越多,最高返5000元! 13 }文件读写:写入目录的获取比较麻烦,各个平台不同,所以用c++自己的文件读 ...

最新文章

  1. php个人中心代码,wordpress个人中心页author_user的相关判断处理php代码
  2. Swift41/90Days - 面向轨道编程 - Swift 中的异常处理
  3. oracle错误12518,ORA-12518: 错误 客户端连接不上
  4. 方法变量与方法表达式
  5. 一种QC-LDPC码对突发噪声抑制的MATLAB仿真
  6. 系统容灾备份选型的决策表
  7. django-装饰器实现PV统计
  8. 钱 | 钱,钱,钱,钱,钱,钱,钱!钱啊钱!(配音乐)
  9. CentOS下安装jdk1.8.0_181
  10. centos安装php
  11. PHP中COOKIE即时生效,php实现cookie即时生效
  12. 变量和数据结构的赋初值
  13. 太阳高度角计算题_正午太阳高度角的计算及应用
  14. Vue实现百度离线地图(v2.0)
  15. Ubuntu+OpenCV学习汉字点阵,图片打印汉字
  16. 【三】rabbitmq消费者ACK机制message acknowledgment
  17. html5简单拼图游戏,HTML5拼图游戏
  18. python统计汉字个数是_Python入门(一):一句话统计文章不重复汉字数
  19. 论坛项目小程序和h5登录
  20. 让别人关机!(VB语言)

热门文章

  1. 如何打造又快又好的PPT(一)
  2. 激荡20年:IE浏览器的辉煌与落寞
  3. 图书销售系统(C#界面设计)
  4. 端粒效应《The Telemere Effect》程序员的养生指南(一)压力、端粒与衰老
  5. PAT 乙级 1100 校庆
  6. c语言GLUT头文件下载,GLUT教程.pdf
  7. The Controller Placement Problem in Software Defined Networking
  8. 埋点 神策小程序_神策埋点思路
  9. 小说中场景的功能_一般文章里的场景描写有什么作用啊详细一些的 最好在
  10. 工作多年,我对架构的一些理解