【问题标题】:Android SQLite & deleted record recoveryAndroid SQLite & 删除记录恢复
【发布时间】:2012-05-20 22:39:23
【问题描述】:

从我对一些 android 取证文章的阅读中,我了解到 sqlite 记录可以恢复,但前提是 sqlite 没有使用 SQLITE_SECURE_DELETE 选项编译(用 '0' 覆盖已删除的内容)或没有触发真空(返回给未定位的操作系统space) + sqlite 上还有自动真空选项。

在恢复已删除记录方面,您对 Android 了解多少?它是用这个选项编译的吗?欢迎意见,链接,任何东西

附言。我也知道其他删除方式,通过将行中的特定标志标记为已删除..但数据仍然存在..所以我对此不感兴趣!

【问题讨论】:

  • 我不会担心被删除的记录,而更多地担心使用适用于 Android 的 SQLCipher 保护整个数据库:sqlcipher.net/sqlcipher-for-android
  • 是的.. 稍后会对此进行调查.. 但我的问题仍然需要答案.. 我不想构建一个安全的应用程序,我正在写一篇关于 android 取证的文章

标签: android sqlite data-recovery


【解决方案1】:

所以我做了这些测试,但只在 android 2.2 的模拟器上进行(我没有 root 手机)

发了15条短信,全部删除,再发5条新短信..结论:

  • 通用 SQLite 查看器无法查看已删除的 SMS
  • 已删除但未覆盖的 SMS 仍存在于 db 文件中,并且可以使用 hex 工具 (winHex) 或更专业的应用程序(Oxygen Forensic SQLite 之类的)原样查看。
  • 已删除的 SMS 将被同一表(SMS 和 MMS 表)上的新插入覆盖。这意味着从 mmssms.db 数据库中的其他表上插入不会覆盖 SMS-MMS 表中的任何内容
  • SMS 按删除顺序被覆盖(它们被添加到“可用空间堆栈”中......并按在此处添加或“删除”的顺序被覆盖)
  • 因此可以完全恢复 SMS(如果没有收到或发送新的 SMS..因为它们是存储在同一个表中的展位 ..对于 MMS..同一个表)
  • 无法恢复部分 SMS(已删除 SMS 的全部空间被填充了填充的新 SMS 占用,因此使用十六进制工具查找旧已删除 SMS 的剩余部分)
  • 结论:未使用 SQLITE_SECURE_DELETE 选项且未触发 Vacuum()

感谢

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-08-23
    • 2013-02-26
    • 2019-06-18
    • 1970-01-01
    • 1970-01-01
    • 2013-12-05
    • 2013-10-06
    • 2015-09-11
    相关资源
    最近更新 更多