Android设备的微信数据分析(1)--EnMicroMsg.db的解密

EnMicroMsg.db是存储用户聊天信息的SQLite数据库,为了保护用户的隐私,使用SQLCipher加密。通过查阅微信APP的反编译代码分析的资料,得知,解密密钥是根据智能手机的国际移动设备身份IMEI,与当前微信用户的uin计算得出的。具体计算公式为:

 

该加密方法从微信5.0以来均未发生变化。其中Left7为提取字符串的前七个字符。IMEI和uin的数据可以从以下配置文件中提取:

IMEI:data\data\com.tencent.mm\MicroMsg\CompatibilityInfo.cfg

uin:data\data\com.tencent.mm\shared_prefs\system_config_prefs.xml。

以IMEI= 866174957262534,uin = 2007803184的设备为例,计算出的key值为4c27f5d,使用SQLcipher.exe工具打开,输入解密key,如图,可以查看微信的数据表。

 

图4.1微信数据表

 

聊天记录保存在message表中,将其导出后可以看到详细的聊天内容。如图4.2与图4.3所示,为一段聊天场景对应的message表存储。

 

图4.2 message表中存储的一段消息

 

图4.3该消息对应的聊天场景

 

Message表中比较重要消息记录数据字段有“talker”、“create time”、“type”、“content”、“imgPath”和“isSend”。“talker”字段存储用户与之通信的微信账号,对应微信账号的详细信息存储在“userinfo”表和“rcontact”表中。“create time”是此信息的时间戳。文本消息内容存储在“content”中。“isSend”字段表示发送状态,1由用户发送,0为“talker”创建用户接收。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章