三星Gallery3d应用取证分析:挖掘删除痕迹与数据库解析

本文深入分析三星Gallery3d应用的数据存储结构,重点解析local.db数据库中的log表和trash表,揭示图片删除痕迹的提取方法,并提供Python解析脚本实现自动化处理。

三星Gallery3d应用取证分析:挖掘删除痕迹与数据库解析

研究背景

Mike与Cheeky4n6Monkey对三星Gallery3d应用进行了深入分析,重点关注应用删除痕迹的提取。研究始于2021年11月初Michael Lacombe在Physical and RAW Mobile Forensics Google Group上的帖子,涉及用户声称特定图片被接收后立即删除的情况。

应用概述

三星Gallery3d是三星设备的预装应用,根据Google Play记录,最后更新于2019年版本5.4.11.0。测试设备显示版本信息:

  • android:versionCode=“1020000021”
  • android:versionName=“10.2.00.21”

应用位于用户数据分区:/data/com.sec.android.gallery3d,发送到垃圾桶的文件位于:/media/0/Android/data/com.sec.android.gallery3d

数据库分析

local.db数据库结构

数据库位于:/data/com.sec.android.gallery3d/cache/databases/local.db

album表

存储相册信息,关键字段:

  • _bucketID:通过Java hashcode算法生成的相册路径哈希值
  • _abspath:相册路径
  • default_cover_path:相册封面图片路径
  • album_count:相册中文件数量

log表

记录应用操作日志,关键字段:

  • _timestamp:操作时间戳(本地时间,格式YYYY-MM-DD HH:MM:SS)
  • _log:包含操作类型和base64编码文件路径的专有格式字符串

观察到的日志操作类型:

  • MOUNTED:垃圾桶中当前文件数量
  • MOVE_TO_TRASH_SINGLE:单个文件移动到垃圾桶
  • MOVE_TO_TRASH_MULTIPLE:多个文件移动到垃圾桶
  • EMPTY_SINGLE:清空垃圾桶(单个文件)
  • EMPTY_MULTIPLE:清空垃圾桶(多个文件)
  • EMPTY_EXPIRED:文件在垃圾桶中自动删除

trash表

存储当前在垃圾桶中的文件信息,关键字段:

  • __absPath:删除文件的当前路径和文件名
  • __Title:删除文件的当前文件名
  • __originPath:原始路径和文件名
  • __originTitle:原始文件名
  • __deleteTime:删除时间(UNIX毫秒时间,UTC)
  • __restoreExtra:JSON格式的元数据,包含拍摄时间、经纬度等信息

数据解析技术

Base64编码路径解码

log表中的_log字段包含base64编码的路径字符串,解码过程:

  1. 移除最后7个字符
  2. 从字符串开头移除3-6个字符,直到长度为4的倍数
  3. 进行base64解码
  4. 移除特殊填充字符(如Black Star、Black Circle)

使用的工具

  • 数据分析

    • DB Browser for SQLite:查看/导出SQLite数据库
    • Cyberchef:base64解码字符串
    • Epochconverter:确认时间戳类型
    • Android Studio
  • APK逆向

    • dex2jar:将APK的classes.dex转换为Java .jar
    • JD-GUI:查看.jar文件源代码
    • JADX:直接从APK文件查看源代码

Python解析脚本

开发了多个Python 3脚本用于自动化解析:

log表解析脚本

  • samsung_gallery3d_log_parser_v10.py
  • samsung_gallery3d_log_parser_v11.py

trash表解析脚本

  • samsung_gallery3d_trash_parser_v10.py

其他工具脚本

  • java-hashcode.py:计算album表中_bucketID值的脚本

研究发现

通过分析发现:

  1. 用户习惯截屏或下载图片后立即删除并清空垃圾桶
  2. 浏览器历史记录也被频繁删除
  3. 恢复的截图名称显示用户在特定时间使用了浏览器
  4. 这些时间与调查中的时间不匹配,但揭示了其他需要调查的时间段

总结

这项研究深入了解了Android应用逆向工程、哈希算法和编码技术。通过分析现有工具可能未解析的应用数据库,可以发现新信息、感兴趣的文件夹、日志文件等。研究还展示了协作研究如何带来更高的产出和新工具的开发。

所有脚本已在GitHub仓库中提供,可用于解析三星Gallery3d应用(v10.2.00.21)的log表和trash表,这些表可能存储从三星Gallery3d应用内执行的图片删除相关信息,如时间戳和原始文件路径。

comments powered by Disqus
使用 Hugo 构建
主题 StackJimmy 设计