胡壮 发布的文章

Adobe Reader是一款非常流行的PDF文档阅读器,因稳定、免费、功能强大而被广泛使用! 目前最新版本为11.0.0.379。Adobe Reader 11(XI)运行后会在多处留下痕迹,其中注册表会记录最近打开的文档完整路径。

在注册表中的具体位置为HKEY_CURRENT_USER \Software \Adobe \Acrobat Reader \11.0 \AVGeneral \cRecentFiles。该键下最多有5个子键,名称分别为c1、c2、c3、c4、c5,每个子键中包含一条记录,“tDIText”是明文的路径,“sDI”是16进制的文档路径,而对应注册表键的修改时间即是文档打开查看的时间。如图1所示。

Adobe Reader在注册表中的痕迹
图 1 Adobe Reader在注册表中的痕迹

开机状况下查看注册表键最后修改时间最方便的方式是在regedit.exe中右击选中部分,导出为txt格式的文本文件,如图2所示。

将注册表键导出为txt文档查看最后修改时间
图 2 将注册表键导出为txt文档查看最后修改时间

如果是检材是硬盘或硬盘镜像,则可以离线分析注册表文件,使用Windows Registry Recovery(简称WRR,完全免费)等注册表工具解析用户目录下的NTUSER.DAT文件,并定位到\Software \Adobe \Acrobat Reader \11.0 \AVGeneral \cRecentFiles位置查看即可。如图3所示。需要注意的是计算机中有几个用户就有几个NTUSER.DAT注册表hive文件。

离线查看注册表中的Adobe Reader痕迹
图 3 离线查看注册表中的Adobe Reader痕迹

本文最早于2017年6月6日发布于微信公众号“cnforensics”,微信公众号“电子物证”2017年7月6日授权转载。

最近接连遇到几部手机都安装有一款名为“Blued”的即时通讯应用,而手头的手机取证工具竟然没有一个支持此应用的解析,于是只好自己想办法了。

Blued是一款同性交友工具,据说在特定群体中使用挺广泛的,iPhone中的App Store中的应用简介如图1、图2所示。

Blued应用
图1 Blued应用
Blued应用简介
图2 Blued应用简介

下面以一部iPhone6S手机为例,介绍怎么手工提取Blued聊天记录内容。

首先使用iTunes或手机取证产品提供的iOS备份工具对手机创建备份,得到了一个名为“7c2dbde4b7**”的文件夹,具体的名称每部手机都不同。使用免费的iTuens备份工具iBackupbot加载备份,浏览备份数据。

在“User App File”下找到了一个名为“com.bluecity.blued”的目录,此目录中的数据即是Blued应用的数据。展开“com.bluecity.blued”目录,有两个名称分别为“Documents”和“Library”的子目录,“Documents”子目录中会有一个名为“LoginDB.sqlite”和“DB.sqlite”的文件文件,分别为所登录的Blued帐号信息和帐号“”的聊天记录数据库。如图3所示

Blued应用数据
图3 Blued应用数据

将“LoginDB.sqlite”和“*DB.sqlite”导出,使用“DB Browser for SQLite”加载。

“LoginDB.sqlite”文件中就一张表,名为“loginUserTable”,记录了帐户uid、加密后的密码、绑定的邮箱、帐户基本信息、更新时间等信息。如图4所示。

“LoginDB.sqlite”数据库结构
图4 “LoginDB.sqlite”数据库结构

“*DB.sqlite”的文件有四张表,表名分别为“dynamicReleaseQueueTable”、 “messageTable”、 “sessionSettingTable”和“sessionTable”。第一张表和第三张表中没有数据。第二张表和第四张表保存着聊天记录,其中“messageTable”中的聊天记录远多于后者,这两张表结构类似,暂时还没有弄清楚到底哪些情况下存储在“messageTable”中,哪些情况存储在“sessionTable”中。如图5所示。

“*DB.sqlite”数据库结构
图5 “*DB.sqlite”数据库结构

表“messageTable”结构如图6所示,经过一番猜测,主要字段含义如表1所示。

表“messageTable”结构
图6 表“messageTable”结构
表messageTable字段含义
表1 表messageTable字段含义

将表“messageTable”导出为“messageTable.csv”,使用WPS表格打开,去掉无关列,将第一行开启自动筛选,按照“sendTime”列升序排列,得到的结果部分内容如图7所示。

初步处理后的数据
图7 初步处理后的数据

接下来将时间列转换成通用格式。编辑“G2”单元格,输入“=TEXT(F2/86400+25569, ”yyyy-m-d h:mm:ss”)”,按回车键确认后,G2单元格内容变成了“2016-3-7 14:06:48”,与手机上的消息时间对比发现晚了8个小时,看来数据库中存储的是UTC时间,将G2单元格中的公式改为“=TEXT(F2/86400+25569+8/24, ”yyyy-m-d h:mm:ss”)”,确认后G2显示为“2016-3-7 22:06:48”,与手机中的一致。选中G2单元格后,鼠标移至G2单元格右下角,等鼠标变为实心“╋”字的时候,双击鼠标左键,实现G列所有单元格的自动填充。如果要过滤与某人的对话,只需在sessionId列表筛选出改用户的uid即可。图8是经我处理后的最终效果。

与某人的聊天记录
图8 与某人的聊天记录

本文最早发布于本人微信公众号“取证杂谈”,发布日期为2016年10月30日,微信公众号“电子物证”2016年11月14日授权转载,其他网站及平台均为未授权转载。

近日遇到一部安卓手机,型号为vivo Y613,Android版本为4.2.2,未开启USB调试模式。

一般来说,Android 4.2及以上版本的USB调试模式需要在“开发者选项”中打开,“开发者模式”默认是关闭的,需要在“设置”→“关于手机”→“版本”[ 不同机型略有差异]处连续连机屏幕打开,之后方可在“开发者选项”中开启“USB调试模式”。

连续点击此手机的“软件版本号”位置,无任何反应,如图2所示。重启手机,情况依旧。

图1
图 1 桌面
请输入图片描述
图 2 “设置”→“更多设置”→“关于手机”→“版本信息”
图3
图 3 “设置”→“应用程序”
请输入图片描述
图 4 “设置”→“应用程序”→“开发”

经过一番研究,发现此手机的USB调试模式“隐藏”在“设置”→“应用程序”→“开发”中,与低版本Android手机保持一致。如图3、图4所示。

附:各版本Android开启USB调试模式的步骤:

  • Android 1.5-3.x[ Android 3.x系统为平板电脑专用]
    ☞“设置”→“应用”→“开发”→“USB调试”
  • Android 4.0-4.1.2
    ☞“设置”→“开发人员选项”→“USB调试”
  • Android 4.1.2以上
    ☞“设置”→“关于手机”→“版本号(连续点击)” => “设置”→“开发人员选项”→“USB调试模式”

最近接到一部手机,需要恢复手机中删除的照片。手机型号为vivo X5Max+,系统为Funtouch OS 2.0(基于Android 4.4.4)。尝试获取ROOT权限失败,尝试使用DC-4501工具箱中的“MTK Android 高级工具”关机镜像,失败。

经过一番研究,发现这部手机每次连接电脑的时候,默认情况下仅仅为手机充电。下拉通知栏,点击当前连接状态的通知,可以进行USB设置,连接方式有4中可选,分别是只充电、U盘功能、媒体设备(MTP)、相机(PTP),如图1、图2所示。(“只充电”模式下无法在电脑端对手机进行截图并保存到电脑,图1、图2是将手机设置成MTP模式后截的图。)

图1
图 1 下拉通知栏
图2
图 2 USB设置选项

将USB连接方式设置为“U盘功能”后,电脑右下角出现了正在安装驱动的提示,稍等片刻,资源管理器中出现了两个盘符,其中F盘无法打开,G盘总容量为24 GB,为data分区中的SD卡部分。如图3所示

图3
图 3 以U盘模式将手机连接计算机

打开FTK Imager,点击工具栏的图标图标1创建镜像,证据类型选择“Physical Drive”,在列表中选择“\.\PHYSICALDRIVE2 -Linux File-CD Gadget USB Drive [25 GB USB]”,然后填写案例存储路径等案例信息后,点击“Start”开始镜像。大约10分钟后,镜像完成,并自动计算了哈希值。如图4所示。

图4
图 4 使用FTK Imager创建镜像

使用FTK Imager加载刚刚创建的镜像,在“\DCIM.thumbnails\”、“\DCIM\Camera\”等目录下发现大量已删除的文件,如图5所示。

图5
图 5 使用FTK Imager加载创建的镜像

使用取证大师加载创建的镜像,在“\DCIM.thumbnails\”目录下检出124张删除的缩略图,说是缩略图,但分辨率并不低,很多都是480×270甚至更高分辨率。另外在“\DCIM\Camera\”目录下检出58张已删除的照片,在“\tencent\MicroMsg\WeiXin\”目录下检出几张已删除的微信拍摄的照片,在其他一些目录中也有收获。

选择取证大师工具栏图标2数据恢复按钮,选择签名恢复,恢复文件类型选择“JPEG图片(标准)”和“JPEG图片(非标准)”,点击“开始恢复”启动签名恢复功能。

经过半个小时的等待,恢复出了4万多张图片,剔除占大多数的缩略图及应用缓存图片,筛选出了不少委托方需要的照片。

图6
图 6 使用取证大师进行签名恢复

总结:

Android手机照片恢复主要的思路是从手机存储设备文件系统层面按照图片文件的特征进行签名恢复,而如何从文件系统层面接触到手机中的数据是最主要的问题。

如果手机带有外置SD卡,直接对SD卡制作镜像并分析即可;如果照片存在于机身内存,首先考虑ROOT后制作全盘镜像。对于系统版本比较低的Android手机,可以使用ROOT工具获取ROOT权限后使用手机取证工具获取手机全盘镜像;对于近两年的一些MTK芯片的手机,可以使用手机取证工具在关机状态下获取镜像;对于一些已经物理损坏或其他方式都解决不了的手机,可以采用ChipOff拆芯片的方式,直接对手机存储芯片进行镜像。

本例中,手机没有外置存储卡,尝试ROOT失败,虽然是MTK芯片,但是尝试关机镜像失败,而拆芯则风险太大。幸好这部手机有“U盘模式”,可以连接电脑对手机中的部分区域进行镜像。

注:MTP模式下虽然也可以从计算机上读取手机中的数据,但和U盘模式有很大区别。MTP(Media Transfer Protocol)是上层应用协议,手机通过MTP模式连接计算机,计算机端并不能直接访问手机中文件系统。