微信聊天记录数据解密与分析

4,540 阅读4分钟

解密微信聊天记录,然后进行数据分析

思路

第一步提取微信数据,第二部转换成可视化数据

整个过程没啥难点,要说难点只能是获取微信数据库密码,但这个网上大神都有现成的

ios就不提了,有现成工具太简单了。不会的话可以导到安卓模拟器照此步骤操作;

数据提取

  1. 用手机把聊天记录备份到电脑,然后用模拟器登录手机版微信,再用电脑把聊天记录导入到模拟器里面的微信 然后查看uin
  2. 把模拟器里面重新生成的微信记录导出到电脑上
  3. 后用固定的IMEI+iin生产md5,取前面7位就是微信数据库密码
  4. SQLlite Database Browser导出为csv,然后用python或者其它脚本分析

数据分析

其实数据分析简单的来说就是数据整理,然后做成可视化图表

数据整理的话看个人需求了,比如对群聊天发言次数进行排名

可视化图表也很简单,自己找一个开源的库,推荐echart,把整理完的数据转换成开源库需要的格式就行了

教程

如果你没有这方面的经验,建议使用我推荐的工具,完全跟着做就行了

第一步:数据迁移

  1. 手机聊天记录
  2. 备份到电脑
  3. 用安卓模拟器登录自己的手机微信(不要登录平板模式)
  4. 在PC微信上面选择恢复聊天记录到手机,也就是模拟器
image.png

第二步:数据提取

我使用的雷电模拟器

步骤一:找到模拟器里面的聊天记录数据库

用自带的文件管理器,进入微信路径data/data/com.tencent.mm/MicroMsg/,然后在这个路径下面有两个很长的字符串文件夹,在其中一个中找到名叫EnMicroMsg.db,这个就是微信聊天记录数据库;

image.png

步骤二:把模拟器里面的聊天记录数据库转移到PC

  1. 左边勾选这个文件,意为选中
image.png
  1. 点击左上角这个按钮,然后切换到模拟器的共享文件夹,也就是PC可以访问的地方;

    如果你找不到,照着下图操作,可以直接到指定地方

    image.png
  2. 点击左下角,粘贴刚才的文件到此处

    image.png
  3. 去电脑的文件夹就能看见这个文件了,地址就是2图左侧的打开电脑文件夹

当然了,这步你也可以用其他方式实现,其本质就是把这个文件传到电脑去,怎么来都可以

打开文件

自行下载SQLlite Database Browser,把导出的数据库拖进去

此时会提示需要密码,因为微信加密了

image.png

数据库密码获取

微信的加密方式是IMEI+UIN混合MD5加密

  1. IMEI是固定的1234567890ABCDEF,网上很多文章乱写什么设备imei,现在是这个固定的,我也被坑了很久
  2. UIN去模拟器文件管理获取,路径data/data/com.tencent.mm/shared_prefs/system_onfig_prefs.xml,打开这个文件,下图箭头指向的地方就是uin,我这里注销了所以看不见
image.png
  1. 去这里生成MD5,md5jiami.bmcx.com/ ,比如你的imei是1234,uin是9999,那么这里填入12349999,选择生成的32位小写前7位,这就是数据库密码,回到上一步,填入即可打开数据库
image.png

到这里为止,你已经可以直接看见微信聊天记录数据了

数据导出

正常来说这一步应该是把加密的sqlite数据库转成未加密的,但我试了下网上的文章都不太行,所以我是直接把单表导出为独立的csv表格,然后用脚本去分析表格的。

你可以自行尝试直接使用脚本去分析数据库。

左上角导出CSV,选择需要的表即可

主要的表就三个

  1. rcontact 为微信通讯录表,包含:微信 ID、昵称、备注名等
  2. chatroom 是群聊信息表,包含:群聊 ID、成员列表等
  3. message 聊天记录
image.png

数据分析

到这里就没啥好说的了,会用什么语言就用什么来写脚本,想分析什么就自己去实现,想生产柱状还是饼状都可以。

579e2c9629b650d91856e92c657a158.jpg image.png