一种恢复微信聊天记录的方法与流程

文档序号:16811254发布日期:2019-02-10 13:40阅读:2427来源:国知局
一种恢复微信聊天记录的方法与流程

本发明属于数据恢复与电子取证领域,涉及手机数据恢复与手机取证,尤其涉及一种恢复微信聊天记录的方法。



背景技术:

随着移动通信技术所提供服务水平和服务种类的不断提高和扩充,手机已日益成为人们工作生活中不可缺少的联系工具。然而,利用手机的即时通讯服务的app,例如微信等进行诈骗、诽谤和伪造等犯罪活动也屡见不鲜,手机数据恢复与手机取证是打击这类犯罪的一个有效手段。

微信是腾讯公司于2011年1月21日推出的一个为智能终端提供即时通讯服务的免费应用程序,支持跨通信运营商、跨操作系统平台通过网络快速发送免费语音短信、视频、图片和文字;截止到2016年第二季度,微信已经覆盖中国94%以上的智能手机,月活跃用户达到8.06亿,用户覆盖200多个国家、超过20种语言。此外,各品牌的微信公众账号总数已经超过800万个,移动应用对接数量超过85000个,微信支付用户则达到了4亿左右。

微信的聊天功能十分强大,在用户中有广泛的使用基础,但删除微信聊天记录后,需要一种方法来进行恢复。现有技术中虽然已有一些方法可以提取微信聊天记录,但是,由于删除微信聊天记录后,加密数据库底层会被填充、数据库会缩减,因而无法恢复被删除的聊天记录。



技术实现要素:

本发明针对现有技术的不足和上述问题,提出一种恢复微信聊天记录的方法,通过判断聊天记录的创建时间中是否查找到聊天记录的时间戳来判断该条消息是否为已删除的聊天记录,如果是,则在索引数据库的聊天记录表中获取被删除的聊天记录,所述方法包括以下步骤:

s1:获取微信数据文件,所述微信数据文件包括加密数据库及索引数据库;

s2:获取所述加密数据库的密钥并使用所述密钥打开所述加密数据库;

s3:打开所述索引数据库;

s4:查找并解析所述索引数据库中含有聊天记录时间戳的元消息表及含有聊天记录内容的聊天记录表的存储结构,查找并解析所述加密数据库中含有聊天记录创建时间的message表的存储结构;

s5:判断在所述message表的创建时间中是否查找到所述时间戳,如果是,则该条消息为未删除的聊天记录,结束流程;否则,则该条消息为已删除的聊天记录,执行步骤s6进行聊天记录的恢复;

s6:根据所述时间戳,在所述索引数据库的聊天记录表中获取被删除的聊天记录。

作为优选,所述步骤s5中,所述创建时间和所述时间戳均为unix时间戳格式。

作为优选,所述步骤s6包括以下步骤:

s601:根据所述时间戳,在所述索引数据库的元消息表中获取索引值;

s602:在所述索引数据库的聊天记录表中查找所述索引值及其对应的聊天记录。

与现有技术相比,本发明的有益效果是:解决了微信聊天记录被删除后,加密数据库底层会被填充、数据库会缩减,因而无法恢复被删除的聊天记录的问题。

附图说明

图1为本发明的主流程图。

图2为本发明中包含微信用户识别号uin的文件的数据结构图。

图3为本发明中包含手机imei号的文件的数据结构图。

图4为本发明中索引数据库的元消息表的存储结构示意图。

图5为本发明中索引数据库的聊天记录表的存储结构示意图。

图6为本发明中加密数据库的message表的存储结构示意图。

图7为本发明中加密数据库的message表的查询结果示意图。

图8为本发明中获取被删除的聊天记录的处理流程图。

具体实施方式

下面结合附图和实施例对本发明作进一步阐述。

如图1所示,一种恢复微信聊天记录的方法,包括以下步骤:

s1:获取微信数据文件:在手机或者手机镜像数据中找到com.tencent.mm文件夹,提取该文件夹下的所有微信数据文件,包括加密数据库enmicromsg.db及索引数据库indexmicromsg.db;

s2:获取加密数据库enmicromsg.db的密钥并使用该密钥打开加密数据库enmicromsg.db:

在com.tencent.mm文件夹的cdndnsinfo文件夹中任一文件均可获得微信用户识别号uin,如图2所示,在标记符0x0201010201010204后的无符号数值即为uin,以unicode大端格式存储;

如图3所示,在文件compatibleinfo.cfg中获取手机imei号,imei号的标记符为0x7870000001027400,紧接一个字节是imei的长度,该处为0x0f,即15字节,该实施例中,手机imei号为860752039526699;

将imei号与uin组成的字符串进行md5加密,然后读取前7位,得到的字符串即是加密数据库enmicromsg.db的密钥,利用该密钥打开加密数据库enmicromsg.db,本实施例中,利用数据库浏览工具sqlitedatabasebrowser打开enmicromsg.db。

s3:打开索引数据库indexmicromsg.db:本实施例中,用数据库浏览工具sqliteexpert打开indexmicromsg.db。

s4:如图4所示,查找并解析索引数据库indexmicromsg.db中含有聊天记录时间戳timestamp的元消息表ftsmetamessage的存储结构;

如图5所示,查找并解析含有聊天记录内容的聊天记录表ftsindexmessage_content的存储结构;

如图6所示,查找并解析加密数据库中含有聊天记录创建时间createtime的message表的存储结构;

s5:判断在message表的创建时间createtime中是否查找到时间戳timestamp,如果是,则该条消息为未删除的聊天记录,结束流程;否则,则该条消息为已删除的聊天记录,执行步骤s6进行聊天记录的恢复:

如图4所示,选取时间戳timestamp为1459368283473的记录;

如图7所示,在message表的创建时间createtime中查询是否有包含1459368283473的记录,通过查询,未发现该条记录,同时,如图6所示,message表的全部记录中也可以看到无此记录存在,则可以判断该记录是已删除的聊天记录;

s6:根据时间戳timestamp为1459368283473,在索引数据库indexmicromsg.db的聊天记录表ftsindexmessage_content中获取被删除的聊天记录,包括如图8所示的以下步骤:

s601:结合图4,根据时间戳timestamp为1459368283473,在索引数据库indexmicromsg.db的元消息表ftsmetamessage中获取索引值docid为9;

s602:结合图5,在索引数据库indexmicromsg.db的聊天记录表ftsindexmessage_content中查找与索引值docid为9相对应的聊天记录,可以看到,该条被删除的聊天记录为“微信连聊天记录可以查得到吗?”,以此方法,可以恢复被删除的微信聊天记录。

应当理解的是,本发明不限于上述的举例,对本领域普通技术人员来说,可以根据上述说明加以改进或变换,所有这些改进和变换都应属于本发明所附权利要求的保护范围。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1