
如果您想知道各种操作系统中存在哪种类型的WhatsApp法证产物以及在哪里可以准确检测到它们,那么您就在这里。 通过本文,Group-IB计算机取证实验室的专家
Igor Mikhailov打开了有关WhatsApp取证调查以及通过分析设备可以获取哪些信息的一系列出版物。
请注意,不同类型的WhatsApp工件存储在不同的操作系统中,并且如果研究人员可以从一台设备中提取某些类型的WhatsApp数据,则并不意味着可以从另一台设备中提取此类数据。 例如,如果占领了运行Windows的系统单元,则可能不会在其磁盘上找到WhatsApp聊天记录(可在同一驱动器上找到的iOS设备的备份副本除外)。 卸下笔记本电脑和移动设备时将具有自己的特点。 让我们详细讨论一下。
Android设备上的WhatsApp工件
为了从运行Android的设备中提取WhatsApp工件,研究人员必须在被调查的设备上具有超级用户特权(
'root' ),或者能够以其他方式提取设备内存或其文件系统的物理转储(例如,使用特定移动设备的软件漏洞)设备)。
应用程序文件位于手机内存中保存用户数据的部分。 通常,此部分名为
'userdata' 。 子目录和程序文件位于路径
“ /data/data/com.whatsapp/”中 。
在Android操作系统中,包含WhatsApp法证
产物的主要文件是
'wa.db'和
'msgstore.db'数据库 。
“ wa.db”数据库包含WhatsApp用户联系人的完整列表,包括电话号码,显示名称,时间戳以及在WhatsApp注册期间指定的任何其他信息。 文件
“ wa.db”位于路径
“ /data/data/com.whatsapp/databases/”中,并具有以下结构:
“ wa.db”数据库中对研究人员而言最有趣的表是:
- 'wa_contacts'
该表包含联系人信息:WhatsApp中的联系人ID,状态信息,显示的用户名,时间戳等。
表格外观:
- 'sqlite_sequence'
该表包含有关联系数量的信息; - 'android_metadata'
该表包含WhatsApp语言的本地化信息。
数据库
“ msgstore.db”包含有关已传输消息的信息,例如联系电话,消息文本,消息状态,时间戳,有关消息中包含的已传输文件的信息等。 文件
“ msgstore.db”位于路径
“ /data/data/com.whatsapp/databases/”中,并具有以下结构:
研究人员在文件
'msgstore.db'中最有趣的表是:
- 'sqlite_sequence'
该表包含有关此数据库的常规信息,例如,存储的消息总数,聊天总数等。
表格外观:
- 'message_fts_content'
包含已传输消息的文本。
表格外观:
- “消息”
该表包含诸如联系电话,消息文本,消息状态,时间戳,有关消息中包含的已传输文件的信息之类的信息。
表格外观:
表结构此字段列表并不详尽。 对于不同版本的WhatsApp,某些字段可能会或可能不会出现。 另外,可以存在字段
“ media_enc_hash” ,
“ edit_version” ,
“ payment_transaction_id”等。
- 'messages_thumbnails'
该表包含有关传输的图像和时间戳的信息。 在“时间戳”列中,时间采用Unix Epoch Time(ms)格式。 - '聊天列表'
该表包含聊天信息。
表格外观:
另外,在运行Android的移动设备上研究WhatsApp时,您需要注意以下文件:
- 文件“ msgstore.db.cryptXX” (其中XX是从0到12的一位或两位数字,例如msgstore.db.crypt12)。 包含WhatsApp消息的加密备份( msgstore.db文件的备份)。 文件“ msgstore.db.cryptXX”位于以下路径中: “ /数据/媒体/ 0 / WhatsApp /数据库/” (虚拟SD卡), “ / mnt / sdcard / WhatsApp /数据库/ (物理SD-卡)。
- 该文件是'key' 。 包含一个加密密钥。 它位于路径“ /data/data/com.whatsapp/files/”中 。 用于解密加密的WhatsApp备份。
- 文件“ com.whatsapp_preferences.xml” 。 包含有关WhatsApp帐户配置文件的信息。 该文件位于以下路径: '/data/data/com.whatsapp/shared_prefs/' 。
文件内容摘要<?xml version="1.0" encoding="ISO-8859-1"?> … <string name="ph">9123456789</string> ( , WhatsApp) … <string name="version">2.17.395</string> ( WhatsApp) … <string name="my_current_status">Hey there! I am using WhatsApp.</string> (, ) … <string name="push_name">Alex</string> ( ) …
- 文件“ registration.RegisterPhone.xml” 。 包含与WhatsApp帐户关联的电话号码信息。 该文件位于以下路径: '/data/data/com.whatsapp/shared_prefs/' 。
文件内容 <?xml version="1.0" encoding="ISO-8859-1"?> <map> <string name="com.whatsapp.registration.RegisterPhone.phone_number">9123456789</string> <int name="com.whatsapp.registration.RegisterPhone.verification_state" value="0"/> <int name="com.whatsapp.registration.RegisterPhone.country_code_position" value="-1"/> <string name="com.whatsapp.registration.RegisterPhone.input_phone_number">912 345-67-89</string> <int name="com.whatsapp.registration.RegisterPhone.phone_number_position" value="10"/> <string name="com.whatsapp.registration.RegisterPhone.input_country_code">7</string> <string name="com.whatsapp.registration.RegisterPhone.country_code">7</string> </map>
- 文件“ axolotl.db” 。 包含识别帐户所有者所需的加密密钥和其他数据。 它位于路径“ /data/data/com.whatsapp/databases/”中 。
- 文件“ chatsettings.db” 。 包含应用程序配置信息。
- 文件'wa.db' 。 包含联系方式。 一个非常有趣的(在法医方面)和信息丰富的数据库。 在其中,可以找到有关已删除联系人的详细信息。
您还应该注意以下目录:
- 目录'/ data / media / 0 / WhatsApp / Media / WhatsApp Images /' 。 包含传输的图像文件。
- 目录'/ data / media / 0 / WhatsApp / Media / WhatsApp Voice Notes /' 。 包含.OPUS格式文件的语音消息。
- 目录“ /data/data/com.whatsapp/cache/个人资料图片/” 。 包含图形文件-联系人图像。
- 目录'/data/data/com.whatsapp/files/Avatars/' 。 包含图像文件-联系人图像的缩略图。 这些文件的扩展名为“ .j”,但是它们是JPEG(JPG)格式的图像文件。
- 目录'/data/data/com.whatsapp/files/Avatars/' 。 包含图像文件-帐户所有者作为头像安装的图像的图像和缩略图。
- 目录'/data/data/com.whatsapp/files/Logs/' 。 它包含程序操作日志(文件“ whatsapp.log”)和程序操作日志的备份副本(格式名称为whatsapp-yyyy-mm-dd.1.log.gz的文件)。
WhatsApp日志文件:

杂志片段2017-01-10 09:37:09.757 LL_ID [524:WhatsApp Worker#1]错过了呼叫通知/初始化计数:0时间戳:0
2017-01-10 09:37:09.758 LL_ID [524:WhatsApp Worker#1] missedcallnotification /更新取消true
2017-01-10 09:37:09.768 LL_ID [1:main] app-init / load-me
2017-01-10 09:37:09.772 LL_ID [1:主]密码文件丢失或不可读
2017-01-10 09:37:09.782 LL_ID [1:main]统计信息文本消息:已发送59条,已接收82条/媒体消息:已发送1条(0字节),已收到0条(9850158字节)/离线消息:已收到81条(平均延迟19522毫秒)/消息服务:发送116075字节,接收211729字节/语音电话:1个拨出电话,0个传入电话,发送2492字节,接收1530字节/谷歌驱动器:发送0字节,接收0字节/漫游:1524已发送字节,已接收1826个字节/总数据:已发送118567个字节,已接收10063417个字节
2017-01-10 09:37:09.785 LL_ID [1:main]媒体状态管理器/刷新媒体状态/可写媒体
2017-01-10 09:37:09.806 LL_ID [1:main]应用程序初始化/初始化/计时器/停止:24
2017-01-10 09:37:09.811 LL_ID [1:main] msgstore / checkhealth
2017-01-10 09:37:09.817 LL_ID [1:main] msgstore / checkhealth / journal / delete false
2017-01-10 09:37:09.818 LL_ID [1:main] msgstore / checkhealth /返回/删除false
2017-01-10 09:37:09.818 LL_ID [1:主要] msgstore / checkdb /数据/数据/ com.whatsapp /数据库/ msgstore.db
2017-01-10 09:37:09.819 LL_ID [1:main] msgstore / checkdb / list _jobqueue-WhatsAppJobManager 16384 drw = 011
2017-01-10 09:37:09.820 LL_ID [1:main] msgstore / checkdb / list _jobqueue-WhatsAppJobManager-journal 21032 drw = 011
2017-01-10 09:37:09.820 LL_ID [1:main] msgstore / checkdb / list axolotl.db 184320 drw = 011
2017-01-10 09:37:09.821 LL_ID [1:main] msgstore / checkdb / list axolotl.db-wal 436752 drw = 011
2017-01-10 09:37:09.821 LL_ID [1:main] msgstore / checkdb / list axolotl.db-shm 32768 drw = 011
2017-01-10 09:37:09.822 LL_ID [1:main] msgstore / checkdb / list msgstore.db 540672 drw = 011
2017-01-10 09:37:09.823 LL_ID [1:main] msgstore / checkdb / list msgstore.db-wal 0 drw = 011
2017-01-10 09:37:09.823 LL_ID [1:main] msgstore / checkdb / list msgstore.db-shm 32768 drw = 011
2017-01-10 09:37:09.824 LL_ID [1:main] msgstore / checkdb / list wa.db 69632 drw = 011
2017-01-10 09:37:09.825 LL_ID [1:main] msgstore / checkdb / list wa.db-wal 428512 drw = 011
2017-01-10 09:37:09.825 LL_ID [1:main] msgstore / checkdb / list wa.db-shm 32768 drw = 011
2017-01-10 09:37:09.826 LL_ID [1:main] msgstore / checkdb / list chatsettings.db 4096 drw = 011
2017-01-10 09:37:09.826 LL_ID [1:main] msgstore / checkdb / list chatsettings.db-wal 70072 drw = 011
2017-01-10 09:37:09.827 LL_ID [1:main] msgstore / checkdb / list chatsettings.db-shm 32768 drw = 011
2017-01-10 09:37:09.838 LL_ID [1:main] msgstore / checkdb /版本1
2017-01-10 09:37:09.839 LL_ID [1:main] msgstore / canquery
2017-01-10 09:37:09.846 LL_I D [1:main] msgstore / canquery / count 1
2017-01-10 09:37:09.847 LL_ID [1:main] msgstore / canquery / timer / stop:8
2017-01-10 09:37:09.847 LL_ID [1:main] msgstore / canquery 517 | 花费时间:8
2017-01-10 09:37:09.848 LL_ID [529:WhatsApp Worker#3]可用的媒体状态管理器/刷新媒体状态/内部存储:1,345,622,016总计:5,687,922,688
- 目录'/ data / media / 0 / WhatsApp / Media / WhatsApp Audio /' 。 包含收到的音频文件。
- 目录'/ data / media / 0 / WhatsApp / Media / WhatsApp Audio / Sent /' 。 包含已发送的音频文件。
- 目录'/ data / media / 0 / WhatsApp / Media / WhatsApp Images /' 。 包含收到的图像文件。
- 目录'/ data / media / 0 / WhatsApp / Media / WhatsApp Images / Sent /' 。 包含已发送的图像文件。
- 目录'/ data / media / 0 / WhatsApp / Media / WhatsApp Video /' 。 包含收到的视频文件。
- 目录'/ data / media / 0 / WhatsApp / Media / WhatsApp Video / Sent /' 。 包含上传的视频文件。
- 目录'/ data / media / 0 / WhatsApp / Media / WhatsApp配置文件照片/' 。 包含与WhatsApp帐户所有者关联的图像文件。
- 为了节省Android智能手机的内存空间,可以将某些WhatsApp数据存储在SD卡上。 在SD卡的根目录中,有一个“ WhatsApp”目录,在该目录中可以找到该程序的以下构件:
- 目录'.Share' ( '/mnt/sdcard/WhatsApp/.Share/' )。 包含已转移到其他WhatsApp用户的文件副本。
- 目录'.trash' ( '/mnt/sdcard/WhatsApp/.trash/' )。 包含已删除的文件。
- 目录'数据库' ( '/ mnt / sdcard / WhatsApp /数据库/' )。 包含加密的备份。 它们可以在存在“密钥”文件的情况下解密,该文件是从被分析设备的存储器中提取的。
“数据库”子目录中的文件:
- 目录'Media' ( '/ mnt / sdcard / WhatsApp / Media /' )。 包含子目录“ WallPaper” , “ WhatsApp音频” , “ WhatsApp图像” , “ WhatsApp个人资料照片” , “ WhatsApp视频” , “ WhatsApp语音注释” ,其中接收和传输的多媒体文件(图像文件,视频文件,语音消息,与WhatsApp帐户持有者个人资料关联的照片,壁纸)。
- 目录“个人资料图片” ( “ / mnt / sdcard / WhatsApp /个人资料图片/” )。 包含与WhatsApp帐户持有者个人资料关联的图像文件。
- 有时SD卡上可能存在目录“文件” ( “ / mnt / sdcard / WhatsApp / Files /” )。 该目录包含存储程序设置和用户首选项的文件。
某些型号的移动设备中的数据存储功能
在某些Android移动设备上,WhatsApp工件可能存储在其他位置。 这是由于移动设备的系统软件改变了应用程序数据的存储空间。 因此,例如,小米移动设备具有创建第二个工作区(“ SecondSpace”)的功能。 激活此功能后,数据位置将改变。 因此,如果在运行Android OS的常规移动设备中,用户数据存储在目录
'/ data / user / 0 /' (这是通常的
'/ data / data /'的链接 )中,则在第二个工作区应用程序中,数据存储在目录中
'/ data / user / 10 /' 。 也就是说,例如文件
'wa.db'的位置:
- 在常规的Android智能手机中: /data/user/0/com.whatsapp/databases/wa.db' (相当于'/data/data/com.whatsapp/databases/wa.db') ;
- 在小米智能手机的第二个工作区中: “ / data / user / 10 / com.whatsapp / databases / wa.db” 。
iOS设备上的WhatsApp工件
与Android OS不同,iOS中的WhatsApp应用程序数据被传输到备份副本(iTunes备份)。 因此,从此应用程序提取数据不需要提取文件系统或创建正在调查的设备的物理内存转储。 大多数重要信息包含在
“ ChatStorage.sqlite”数据库中,该数据库位于以下路径中:
“ / private / var / mobile / Applications / group.net.whatsapp.WhatsApp.shared /” (在某些程序中,该路径显示为
“ AppDomainGroup -group.net.whatsapp.WhatsApp.shared' )。
'ChatStorage.sqlite'的结构:
ChatStorage.sqlite数据库中最有用的信息是表
ZWAMESSAGE和
ZWAMEDIAITEM 。
表格
“ ZWAMESSAGE”的外观:
表格
“ ZWAMEDIAITEM”的外观:
其他有趣的
“ ChatStorage.sqlite”数据库表是:
- 'ZWAPROFILEPUSHNAME' 。 与联系人名称对应的WhatsApp ID;
- 'ZWAPROFILEPICTUREITEM' 。 将WhatsApp ID与联系人头像相关联;
- 'Z_PRIMARYKEY' 。 该表包含有关此数据库的一般信息,例如,存储的消息总数,聊天总数等。
另外,在运行iOS的移动设备上研究WhatsApp时,您需要注意以下文件:
- 文件“ BackedUpKeyValue.sqlite” 。 包含识别帐户所有者所需的加密密钥和其他数据。 它位于以下路径: /private/var/mobile/Applications/group.net.whatsapp.WhatsApp.shared/ 。
- 文件“ ContactsV2.sqlite” 。 它包含有关用户联系人的信息,例如全名,电话号码,联系人状态(以文本形式),WhatsApp ID等。 它位于以下路径: /private/var/mobile/Applications/group.net.whatsapp.WhatsApp.shared/ 。
- 文件“ consumer_version” 。 包含已安装的WhatsApp应用程序的版本号。 它位于以下路径: /private/var/mobile/Applications/group.net.whatsapp.WhatsApp.shared/ 。
- 文件“ current_wallpaper.jpg” 。 包含当前的WhatsApp背景墙纸。 它位于以下路径: /private/var/mobile/Applications/group.net.whatsapp.WhatsApp.shared/ 。 在较早版本的应用程序中,使用文件“墙纸” ,该文件位于路径“ /private/var/mobile/Applications/net.whatsapp.WhatsApp/Documents/”中 。
- 文件“ blockedcontacts.dat” 。 包含有关被阻止的联系人的信息。 它位于路径中: /private/var/mobile/Applications/net.whatsapp.WhatsApp/Documents/ 。
- 文件'pw.dat' 。 包含一个加密的密码。 它位于以下位置: '/private/var/mobile/Applications/net.whatsapp.WhatsApp/Library/' 。
- 文件“ net.whatsapp.WhatsApp.plist” (或文件“ group.net.whatsapp.WhatsApp.shared.plist” )。 包含有关WhatsApp帐户配置文件的信息。 该文件位于以下路径: '/private/var/mobile/Applications/group.net.whatsapp.WhatsApp.shared/Library/Preferences/'中 。
文件“ group.net.whatsapp.WhatsApp.shared.plist”的内容 您还应该注意以下目录:
- 目录'/private/var/mobile/Applications/group.net.whatsapp.WhatsApp.shared/Media/Profile/' 。 它包含联系人缩略图,组(扩展名为.thumb的文件),联系人的头像,WhatsApp帐户所有者的头像(文件'Photo.jpg' )。
- 目录'/private/var/mobile/Applications/group.net.whatsapp.WhatsApp.shared/ Message / Media /' 。 包含多媒体文件及其缩略图
- 目录'/private/var/mobile/Applications/net.whatsapp.WhatsApp/Documents/' 。 它包含程序日志(文件'calls.log' )和程序日志的备份副本(文件'calls.backup.log' )。
- 目录'/private/var/mobile/Applications/group.net.whatsapp.WhatsApp.shared/stickers/' 。 包含贴纸( “ .webp”格式的文件)。
- “ /private/var/mobile/Applications/net.whatsapp.WhatsApp/Library/Logs/”目录。 包含程序的日志。
Windows上的WhatsApp工件
Windows上的WhatsApp工件 可以在几个地方找到。 首先,这些是包含程序的可执行文件和辅助文件的目录(对于Windows 8/10):
- 'C:\程序文件(x86)\ WhatsApp \'
- 'C:\ Users \%User profile%\ AppData \ Local \ WhatsApp \'
- 'C:\ Users \%User profile%\ AppData \ Local \ VirtualStore \ Program Files(x86)\ WhatsApp \'
在目录
'C:\ Users \%Userprofile%\ AppData \ Local \ WhatsApp \'中,找到日志文件
'SquirrelSetup.log' ,其中包含有关检查更新和安装程序的信息。
在目录
“ C:\ Users \%User profile%\ AppData \ Roaming \ WhatsApp \”中 ,有几个子目录:
文件
“ main-process.log”包含有关WhatsApp程序操作的信息。
子目录
“数据库”包含文件
“ Databases.db” ,但是该文件不包含有关聊天或联系人的任何信息。
从法医角度来看,最有趣的是位于
“ Cache”目录中的文件。 基本上,这些文件名为
“ f _ *******” (其中*是从0到9的数字),其中包含加密的多媒体文件和文档,但是其中还包含未加密的文件。 特别感兴趣的是位于同一子目录中的文件
“ data_0” ,
“ data_1” ,
“ data_2” ,
“ data_3” 。 文件
“ data_0” ,
“ data_1” ,
“ data_3”包含指向已传输的加密多媒体文件和文档的外部链接。
此外,文件
“ data_3”可能包含图像文件。
文件
“ data_2”包含联系人头像(可以通过搜索文件标题来还原)。
文件
“ data_2”中包含的化身:
因此,在计算机的内存中找不到聊天本身,但是您可以找到:
- 多媒体文件;
- 使用WhatsApp传输的文件
- 有关帐户所有者的联系信息。
在MacOS上的WhatsApp工件
在MacOS上,您可以找到与Windows相似的WhatsApp工件类型。
程序文件位于目录中:
- 'C:\ Applications \ WhatsApp.app \'
- 'C:\ Applications \ ._ WhatsApp.app \'
- 'C:\用户\%用户个人资料%\库\首选项\'
- 'C:\ Users \%User profile%\ Library \ Logs \ WhatsApp \'
- 'C:\ Users \%User profile%\ Library \ Saved Application State \ WhatsApp.savedState \'
- 'C:\用户\%用户个人资料%\库\应用程序脚本\'
- 'C:\用户\%用户个人资料%\库\应用程序支持\ CloudDocs \'
- 'C:\ Users \%User profile%\ Library \ Application Support \ WhatsApp.ShipIt \'
- 'C:\ Users \%User profile%\ Library \ Containers \ com.rockysandstudio.app-for-whatsapp \'
- 'C:\ Users \%User profile%\ Library \ Mobile Documents \ <文本变量> WhatsApp \ Accounts'
该目录包含名称为与WhatsApp帐户所有者关联的电话号码的子目录。 - 'C:\用户\%用户配置文件%\库\缓存\ WhatsApp.ShipIt \'
该目录包含有关安装程序的信息。 - 'C:\用户\%用户配置文件%\图片\ iPhoto.photolibrary库\母版\' , 'C:\用户\%用户配置文件%\图片\ iPhoto.photolibrary库\图片\缩略图\'
这些目录包含该程序的实用程序文件,包括WhatsApp联系人的照片和缩略图。 - 'C:\ Users \%User profile%\ Library \ Caches \ WhatsApp \'
该目录包含几个用于缓存数据的SQLite数据库。 - 'C:\用户\%用户个人资料%\库\应用程序支持\ WhatsApp \'
该目录包含几个子目录:
目录“ C:\ Users \% Userprofile %\ Library \ ApplicationSupport \ WhatsApp \ Cache \”包含文件“ data_0” , “ data_1” , “ data_2” , “ data_3”和名称为“ f _ **** ”的文件***' (其中*是从0到9的数字)。 有关这些文件包含哪些信息的信息,请参见“ WhatsApp Windows Artifacts”部分。
目录“ C:\ Users \%Userprofile%\ Library \ ApplicationSupport \ WhatsApp \ IndexedDB \”可能包含多媒体文件(文件没有扩展名)。
文件“ main-process.log”包含有关WhatsApp程序操作的信息。
资料来源- 对Android智能手机上的WhatsApp Messenger进行取证分析,作者:Cosimo Anglano,2014年。
- Whatsapp取证:Ahmad Pratama于2014年发布的Eksplorasi sistem berkas dan基础数据键盘aplikasi Android dan iOS。
本系列中的以下文章:
解密加密的WhatsApp数据库本文将提供有关如何生成WhatsApp加密密钥的信息,并提供了一些实际示例,这些示例说明了如何解密此应用程序的加密数据库。
从云存储中提取WhatsApp数据我们在其中描述了WhatsApp数据存储在云中的内容,并描述了从云存储中检索此数据的方法。
WhatsApp数据提取:案例研究文章将逐步介绍什么程序以及如何从各种设备中提取WhatsApp数据。
IB集团对网络犯罪一无所知,但却讲述了最有趣的事情。
充满动感的电报频道(https://t.me/Group_IB),涉及信息安全,黑客和网络攻击,黑客主义者和互联网盗版者。 逐步调查轰动性网络犯罪,使用Group-IB技术的实际案例,当然,还建议如何避免成为Internet的受害者。
YouTube Channel Group-IB
Instagram上的Group-IB Photowire
网站www.instagram.com/group_ibTwitter短消息twitter.com/GroupIB
Group-IB是总部位于新加坡的网络中用于检测和预防网络攻击,检测欺诈和保护知识产权的解决方案的领先开发商之一。