解密微信聊天记录,然后进行数据分析
思路
第一步提取微信数据,第二部转换成可视化数据
整个过程没啥难点,要说难点只能是获取微信数据库密码,但这个网上大神都有现成的
ios就不提了,有现成工具太简单了。不会的话可以导到安卓模拟器照此步骤操作;
数据提取
- 用手机把聊天记录备份到电脑,然后用模拟器登录手机版微信,再用电脑把聊天记录导入到模拟器里面的微信 然后查看uin
- 把模拟器里面重新生成的微信记录导出到电脑上
- 后用固定的IMEI+iin生产md5,取前面7位就是微信数据库密码
- 用
SQLlite Database Browser
导出为csv,然后用python或者其它脚本分析
数据分析
其实数据分析简单的来说就是数据整理,然后做成可视化图表
数据整理的话看个人需求了,比如对群聊天发言次数进行排名
可视化图表也很简单,自己找一个开源的库,推荐echart,把整理完的数据转换成开源库需要的格式就行了
教程
如果你没有这方面的经验,建议使用我推荐的工具,完全跟着做就行了
第一步:数据迁移
- 手机聊天记录
- 备份到电脑
- 用安卓模拟器登录自己的
手机
微信(不要登录平板模式) - 在PC微信上面选择恢复聊天记录到手机,也就是模拟器
第二步:数据提取
我使用的雷电模拟器
步骤一:找到模拟器里面的聊天记录数据库
用自带的文件管理器
,进入微信路径data/data/com.tencent.mm/MicroMsg/
,然后在这个路径下面有两个很长的字符串文件夹,在其中一个中找到名叫EnMicroMsg.db
,这个就是微信聊天记录数据库;
步骤二:把模拟器里面的聊天记录数据库转移到PC
- 左边勾选这个文件,意为选中
-
点击左上角这个按钮,然后切换到模拟器的共享文件夹,也就是PC可以访问的地方;
如果你找不到,照着下图操作,可以直接到指定地方
-
点击左下角,粘贴刚才的文件到此处
-
去电脑的文件夹就能看见这个文件了,地址就是
2图
左侧的打开电脑文件夹
当然了,这步你也可以用其他方式实现,其本质就是把这个文件传到电脑去,怎么来都可以
打开文件
自行下载SQLlite Database Browser
,把导出的数据库拖进去
此时会提示需要密码,因为微信加密了
数据库密码获取
微信的加密方式是IMEI+UIN混合MD5加密
- IMEI是固定的
1234567890ABCDEF
,网上很多文章乱写什么设备imei,现在是这个固定的,我也被坑了很久 - UIN去模拟器文件管理获取,路径
data/data/com.tencent.mm/shared_prefs/system_onfig_prefs.xml
,打开这个文件,下图箭头指向的地方就是uin,我这里注销了所以看不见
- 去这里生成MD5,md5jiami.bmcx.com/ ,比如你的imei是1234,uin是9999,那么这里填入12349999,选择生成的32位小写前7位,这就是数据库密码,回到上一步,填入即可打开数据库
到这里为止,你已经可以直接看见微信聊天记录数据了
数据导出
正常来说这一步应该是把加密的sqlite数据库转成未加密的,但我试了下网上的文章都不太行,所以我是直接把单表导出为独立的csv表格,然后用脚本去分析表格的。
你可以自行尝试直接使用脚本去分析数据库。
左上角导出CSV,选择需要的表即可
主要的表就三个
- rcontact 为微信通讯录表,包含:微信 ID、昵称、备注名等
- chatroom 是群聊信息表,包含:群聊 ID、成员列表等
- message 聊天记录
数据分析
到这里就没啥好说的了,会用什么语言就用什么来写脚本,想分析什么就自己去实现,想生产柱状还是饼状都可以。