微信聊天记录篡改检测
题目来源:2024年全国刑事技术技能大赛
根据安卓手机备份分析,发现嫌疑人与微信好友”wxid_oaoq4ndpityq21”的聊天记录中有一条文本聊天内容被篡改过,请给出篡改前的内容是什么? [答案格式:今天天气很晴朗] (1分)
(提示:1) EnMicroMsg.db打开参数PRAGMA key = ‘b5120a0’;pragma cipher_page_size=1024;pragma kdf_iter=4000;pragma cipher_hmac_algorithm=HMAC_SHA1;
pragma cipher_kdf_algorithm=PBKDF2_HMAC_SHA1;pragma cipher_use_hmac=0;
pragma cipher_compatibility=1;2) FTS5IndexMicroMsg_encrypt.db打开参数
PRAGMA key = ‘67f5b73’;pragma cipher_page_size=4096;pragma kdf_iter=64000;
pragma cipher_hmac_algorithm=HMAC_SHA1;
pragma cipher_kdf_algorithm=PBKDF2_HMAC_SHA1;pragma cipher_use_hmac=1;)
参考文章
[原创]【Andorid取证】微信聊天记录数据库和索引库逆向思路和一点思考-Android安全-看雪安全社区|专业技术交流与安全研究论坛 微信会自动检测到索引文件与聊天记录数据库不符,是否进行修复。如果在篡改后不对索引进行修复,那么索引文件就不会重新索引,索引文件中的原有记录不会改变;如果修复,则会重新启动微信,根据数据库文件进行重新索引
数据库导入


EnMicroMsg.db
微信核心聊天记录数据库,存储聊天页面显示的聊天记录信息(篡改过的数据)。
FTS5IndexMicroMsg_encrypt.db
微信聊天记录全文检索索引库,存储聊天记录索引信息(搜索用)。
-- 查找好友 wxid_oaoq4ndpityq21 的所有文本消息
SELECT content FROM message
WHERE talker = 'wxid_oaoq4ndpityq21' AND type = 1;
-- type=1 代表纯文本聊天消息
在EnMicroMsg.db中定位聊天记录数据

在FTS5IndexMicroMsg_encrypt中定位相关索引记录:
select FTS5IndexMessage_content.c0 from FTS5MetaMessage,FTS5IndexMessage_content where (FTS5MetaMessage.aux_index='wxid_oaoq4ndpityq21' or FTS5MetaMessage.talker='wxid_oaoq4ndpityq21') and FTS5MetaMessage.docid=FTS5IndexMessage_content.id order by FTS5IndexMessage_content.id desc;

将两个记录导入到excel中做对比(左边为聊天数据库数据,右边为索引数据库数据)
