最近发现用Python生成词云图挺有意思的,于是想着生成微信和某个人的聊天记录的词云应该挺好玩。
在网上找了好多解密微信数据库的文章,但大多数都是解密Android版的,好不容易找到些解密PC版的还写得不够详细。
不过最后终于解密成功,其中遇到好多大坑小坑,听我一一道来。
1,获取数据库加密密钥
解密PC版微信数据库
照着这篇文章做就好了,有两个注意的地方
①如果你是64位系统,就下载64位的OllyDbg 否则无法运行。
②附加微信进程的时候可能会报错忽略就可以了,不影响后面操作。
③附加时候有时候会特别慢,重新关了软件再来了次就可以了。
这里终于出现了大坑!
坑一:文章的第14写“用鼠标框选前四行内容”错误,是前两行。
PC版微信的密钥是32位,4行就变成64位了,一开始一直用前四行试,永远无法成功。
2,利用sqlcipher解密数据库
使用微信聊天记录统计信息
文章是个好文章,可是无论如何也无法解密,去Google了好多其它方法,也无果而终。
联系了文章作者,说是针对Android版微信,不过之前看过其它地方说PC和Android版加密方法是一样的…
最后这种方法宣告失败,没能解密成功,于是用了下面的方法。
坑二:无法找到合适的sqlcipher解密参数。
为什么说是一个坑,因为要在linux上编译通过sqlcipher也不是一件容易的事情,安装各种各校的包不说,好多还不能直接通过apt或者yum安装,得下回来编译,而编译时候发现又缺少其它的包……就这样试了两个版本的linux最后编译成功了sqlcipher,可还是无法解密,相信参数对了是应该可以解密的。
3,利用一段C++代码解密数据库
解密微信聊天数据库
虽然说是一段代码而已,但是并不是那么容易就能运行起来了。
得需要安装:visual studio, openssl还要进行各种各校的配置,差一点程序就不能编译了。
而且win10下openssl一定要用1.0.x的版本,否则无法识别。
关键我还几乎没用过vs,更没写过C++,一开始出各种错,再加上最开始全是用的前4行做的密钥,更是雪上加霜…
有几点需要注意:
①新建的项目选择Visual C++下面的Windows Console Application
②我把代码拷贝进去后提示cann't open source file “stdafx.h”,把第一行的#include "stdafx.h"换成#include "pch.h"即可。
坑三:用C++解密需要进行复杂的配置,错一点就扑街。
在联系作者几次后终于运行成功,得到解密的数据库文件,最开始有各种错误,最后莫名的好了…
最后用Python顺利的读取到了聊天内容,生成了词云图,散花~