微信储存数据的剖析

iphone上微信聊天记录的储存分析

鉴于隐私的缘故,这里不可以将自己的聊天记录贡献出来

设备:越狱后的iphone5 ios7.0.4

           微信5.3.1

           windows 7

 

率先打开微信(这里运用的是itools)

图片 1

 

数据是储存在Documents中

开拓后,会发现多少个文本夹,它们由数字和字母组成,细心的人想必会发觉它们都是有32位,其实每一个文书夹代表了一个用户的记录,

一旦你的装备上有多少个用户登录过的话,便会有四个这种文件夹出现

图片 2

 

咱俩选用一个打开后会发现许多的文件和文件夹

这里对部分的公文夹做简单的介绍(其实有局部本身也不知晓里面放的是怎么东西)

appicon:储存了一些接纳的图标

audio     :内有六个文件夹,分别存储了和人聊天时的口音资料,格式为aud

img      
:内有三个公文夹,分别存储了和人闲聊时的出殡的和介绍的照片,格式为pic

usr       
:内有许多usr格式的公文,但实际上我们用记事本打开会发现文件的头写着图片 3之所以它应该就是JFIF图片,

     
打开后会发现是不少人的头像,其中有很多是陌生的,预计是摇一摇,附件的人,漂流瓶等发出的

video     :内有多个公文夹,分别存储了和人聊天时的录像资料,格式为mp3

DB        :这是这篇随笔的要紧,内有MM.sqlite文件,以sqlite数据库储存了聊天记录的文字还有一些其余的音信

               将在下边举行介绍

 

打开DB之后,我们会意识一个

图片 4

大小挺大,后缀是sqlite

想到了何等,sqlite数据库!

让我们下载一个SQLiteSpy,这样就能以图形界面的法子来查看MM.sqlite内储存的数据了

打开后我们会意识众多的表,它们以Chat_超过,前边有接了一串数字和字母组成的东西,假诺在条分缕析数一下会发现它们也是32位

点击打开后会发现有以下几个字段,记录了聊天记录

图片 5

createtime 
 :每一个聊天记录的日子,为表示自GMT时间1970年2月1日零点来说的秒数

Message      :聊天记录,文字或者是图片,声音,视频的有关消息

status        
 :好像只有4和2二种值,表示音信的来自,4表示对方,2表示友好

Imgstatus  
 :表示音讯的项目,1意味着文字,5,6意味表情,7,21意味声音,2表示图片

Type           :也是意味着信息的序列,1意味着文字,47意味着表情,34意味声音,3意味图片,49表示发送给朋友的内容

Des           
:感觉和status一样,表示音讯的来源于,只是1意味着对方,0意味自己

 

 

 

好了,让我们回过头来看一看此前的哪些32位的字母数字代表如何,他们应有代表相应的人,用于确认聊天记录属于和哪一个人

汉字编码?不对,汉字编码有长有短,不应该都是32位

是什么样能将随机长度的序列转换为32位的吧?

MD5!

在MM.sqlite中还有一个称为Friend的表,里面储存了UserName,尼克(Nick)Name等音信

这个32位的行列便是遵照UserName生成的,大家可以协调作证一下

图片 6

图片 7

图片 8

 

总结

微信用sqlite数据库储储存聊天记录,数据库文件叫做MM.sqlite,

将每一个用户的用户名用MD5的点子加密,并以此32位的行列加上Chat_为前缀作为表名,储存对应的聊天记录

网站地图xml地图