使用SQLite数据恢复的iOS取证:深入挖掘和比较

Aidan Fitzpatrick

By Aidan Fitzpatrick

Published

更新

See how I'm qualified to write this article

在帮助人们使用我们的产品恢复数据时,我们使用了许多技术,而且我们在过去十年中建立的许多聪明才智都在表面之下。今天,我们将深入探讨我们用于恢复已删除邮件的方法之一:SQLite数据的取证恢复。

无论如何,iPhone如何存储数据?

简而言之,许多应用程序将其数据存储在数据库中,并且大多数应用程序使用SQLite格式。 SQLite是一种整洁的小型服务器数据库格式,非常适合Apple和应用程序供应商所需。由于SQLite在没有单独的数据库服务器的情况下运行,因此有几种方法与其他数据库不同。特别是,为了使访问速度快,它在使用时不能定期维护。例如,当数据库执行例如清理索引的日常维护时,用户不希望应用程序变慢。

这些清理或优化操作可能与SQLite一起发生,但它们往往不经常运行。对于用户而言,这是正确的平衡:您的iPhone将相当快,并且您的数据将非常强大。并且,如果需要,由于此维护过程的不常见性,您在恢复已删除的iOS数据时将获得比平均赔率更高的赔率。

如果没有过于技术化,那么过程的工作方式就非常简单。想想这些数据库就像大文件柜一样:

  • 当需要向他们添加信息时,您需要在其上添加一个带有整洁标签的文件,解释文件中的内容,以及手机的工作方式。
  • 但是当您删除数据时,手机只需将标签拉出,而不是将文件从文件柜中取出。因此旧的数据不会被删除,它只是没有标记(或“孤立”,我们可能在技术上称之为。)这意味着当您删除数据时,您的手机不需要经历相对缓慢的释放过程在柜子里的空间。它只是说“嗯,忘了这个”,继续前进。
  • 在添加更多数据时,如果有空间,您的手机将添加额外的文件。如果没有空间可以添加更多数据,它会看到是否有任何未标记的文件,如果存在,它将清除它们需要的任何部分以腾出空间。

您可以从中获取的是,删除手机上的数据很快,并且假设有空间,可以快速添加它。并且 - 毫不直观地 - 它是添加更新数据的过程,这些数据确实导致旧信息被删除。

在iOS上从SQLite恢复已删除的信息

假设您已经使用手机几个月了。它上面的数据库就像我们之前描述的文件柜。他们有一堆文件,你删除数据的地方,那些文件仍然存在,但有两个警告:它们可能被部分或完全覆盖,并且它们将被取消标记。

然后恢复技术几乎是你所期望的:它是关于找到这些孤立的文件 - 完整或其他 - 并试图找到它们适合的位置,以及是否有足够的数据可供它们理解。正如您所期望的那样,它有点繁琐,并且还有许多其他技术因素可能会让事情变得困难。特别是,大小超过几兆的数据库,以及包含二进制数据的数据库可能会使这个过程变得更加困难。

也就是说,获取一些数据并不难,这就是为什么你会看到市场上有很多工具声称可以做到这一点。通常,您可以将这些工具分为三类:

  • 好的。他们使用许多不同的技术,这些技术是针对成千上万个不同的删除或损坏示例构建和测试的。
  • 坏的。它们只能恢复完美形成的剩余内容,并包含许多关于它所属位置的提示。
  • 丑陋的。这些扫描孤立内容并标记任何看起来可能适合上下文的旧垃圾。如果你眯着眼睛看着它。 “NSMutableArray” - 这可能是您丢失的联系人记录的名称吗?嗯。

SQLite在现实世界中取消删除和从iOS恢复

现在我们已经谈到了它的工作原理,让我们深入了解它在现实世界中的效果。毕竟,我们希望授权普通用户无需成为专家即可获取数据。我们管理那个吗?我们将针对iPhone Backup Extractor对四种领先的SQLite恢复工具进行基准测试。在撰写本文时,这些工具的最新版本是:

名称版本和发布日期平台价钱
重新复制iPhone备份提取器 6。18。18。201年5月6日 Windows和macOS $ 34.95
SQLabs的SQLite Doctor 13。0,13年8月 Windows和macOS $ 49
SysTools的Sqlite数据库恢复 1.2,没有显示发布日期仅限Windows $ 149
Stellar Data Recovery的Stellar Phoenic修复对于Sqlite 1.0,没有显示发布日期仅限Windows $ 599
GetData的Forensic Explorer(FEX) 4月18。4。7。764 仅限Windows $ 1,695
收购Forensics的Sqlite Forensics Explorer 2.0,没有显示发布日期仅限Windows $ 149

为了设置这个测试,我们将使用一个很好的大数据库,充满了真实的数据。在这个例子中,它是一个169 MB的“消息”数据库,取自运行iOS 11的iPhone。我们来看看它:以下命令显示其文件大小,以及查询结果以计算它包含的消息数量。

$ ls -l sms.db
-rw------- 1 afitzpatrick 177565696 Oct  2  2017 sms.db

$ sqlite3 sms.db
SQLite version 3.19.3 2017-06-27 16:48:08
Enter ".help" for usage hints.
sqlite> SELECT COUNT(*) FROM message;
220261

所以,有超过220,000条消息。它们是尚未删除的。但是恢复工具可以找到多少已删除的消息?

从iOS恢复SQLite数据:结果在

我们在同一个文件上运行了上面显示的所有工具,并在下表中注明了结果。我们很喜欢使用Mac,但由于并非所有工具都支持macOS,我们使用的是具有16 GB RAM的PC,运行Windows 10 Pro(版本1803 ,版本17134.48 )。

继续培养获得取证 SQLabs SysTools的恒星数据恢复的GetData
号码已恢复 342 56(但主要是垃圾) 0 0(经过漫长的扫描,发现220,261,这与已经存在的有效记录数相同!) 0(每次运行它时,它最多可以计算37条已删除的消息,但在完成此过程之前崩溃并出现错误0x40000015。无法导出或保存任何消息。) 0(我们多次购买许可证,但从未收到过回复。)
“垃圾”恢复了吗? 没有;所有似乎都是有效的未删除邮件。 Emojis,日期,时间和发件人/收件人号码都已恢复。 大部分被收回的人都是垃圾😕 我们需要手动输入max ROWID值几次以尝试不同的参数。没有任何一点恢复。 仅找到预先存在的消息。 每次都坠毁,所以说不出来。 无法让它运行。
恢复每条消息的有效成本(在此示例中) $ 0.10 $ 2.66 > $ 49 > $ 149 > $ 599 > $ 1,695

好。所以这有点意外,因为我们期待他们至少可以恢复一些数据。 🧐事实证明,尽管不是专用的SQLite数据恢复工具,但我们的简洁工具在SQLite数据恢复方面领先市场。 (如果您想知道,这就是为什么我们也将我们的技术许可给其他公司。这个东西很难。)

不同版本的iOS上的SQLite数据恢复

随着iOS的每个新版本,Apple都有机会改变操作系统处理SQLite数据库的方式。这包括优化清理和其他维护操作的频率以及何时触发。

随着设备变得越来越强大,这些操作可以更自由地使用,因为它们对用户体验的影响变得更小。因此,对于每个新一代,SQLite数据库可能会更频繁地进行清理,这有利于使数据库更快地用于正常操作。这符合Apple增加用户数据保护和隐私的目标,因为设备上不会留下不需要的数据。但是,这有一个警告,即通过SQLite方法无法进行数据恢复。

在iOS 11中,我们开始看到SMS和iMessages的数据库清理活动有所增加。恢复仍然是可能的,更有可能是随后删除的更新消息,但不能保证。

在iOS 12中,SMS和iMessages数据库的数据库清理频率大幅增加。由于这个版本被吹捧为重点关注维护和速度改进,因此这种改变很有意义,因为它可能会为更常见的操作带来更平滑的性能。

在恢复iOS数据时,我需要做些什么才能利用这一点?

也许这是最好的一点:这项技术与Reincubate iPhone Backup Extractor集成,并且从早期开始就已经存在。当您使用该应用程序时,它将在预览或导出您的消息和许多其他数据类型时应用此技术。根据您正在查看的数据以及您查看的方式,应用程序将指示哪些数据未删除,哪些数据未删除。一切都包括在内。

About the author

Aidan Fitzpatrick founded Reincubate in 2008 after building the world's first iPhone data recovery tool, iPhone Backup Extractor. He's spoken at Google on entrepreneurship, and is a graduate of the Entrepreneurs' Organisation's Leadership Academy.

Reincubate's CEO at Buckingham Palace

Pictured above are members of Reincubate’s team meeting HM Queen Elizabeth Ⅱ at Buckingham Palace, after being awarded the UK’s highest business award for our work with Apple technology. Read our position on privacy, safety and security.

Related content

Can we improve this article?

We love hearing from users: why not drop us an email, leave a comment, or tweet @reincubate?

© 2008 - 2019 Reincubate Ltd. 保留所有权利。 Registered in England and Wales #5189175, VAT GB151788978. Reincubate® is a registered trademark. 隐私权和条款. 我们推荐多因素认证。 在伦敦建立了爱情。