微信电脑版数据文件解析之:提取联系人

近期为了努力提高生活质量,花了好多时间研究如何基于微信造一些恰饭的小软件。

把这些软件放在博客里卖一卖,我的博客也跟着变成了卖软件的小网站,虽然有违博客应有初衷,但活下去才是第一要务。

博客确实有点荒废了,那现在应该写点东西,把我做的小工具里需要用到的知识做一些抛砖引玉性的叙述,用于给需要的人少走一些弯路。


首先阅读本内容前,先要学会解码微信的数据文件,相关的资料和方法在这里:

http://qinyuanyang.com/post/341.html


根据本文的原理,我造了一个小工具,可以实现一键导出微信的通讯录,软件叫做【微信通讯抽水机】,可以点击这里找到:

http://qinyuanyang.com/post/340.html


注意:按上面提供的资料和相关功能,学会对微信电脑版的数据文件解码后,才有下面的事,本文章只说数据文件的解析,解码文件的,就不再说了,因为看了这些资料还是研究不会的话,就该交学费了,以下是本文主题


数据文件解码后,后缀是.db文件,实际上是Sqlite的数据库文件,可以使用相关的数据库管理软件打开,此处提供一个软件下载,是我最喜欢的数据库管理软件,也就是“Navicat Premium 12

点击这里可下载,其中附带了一个和谐工具,让这个收费软件变成不要钱的盗版软件,自行安装使用即可,Crack文件夹里有盗版工具和使用说明,自己照着搞一下即可,这个不是本文主题

image.png


解码目标文件:

image.png

拿到密钥后,只需要对该文件解码即可,解码后的文件:

image.png

然后使用 Navicat 软件打开该sqlite数据库文件,展开数据表,可以看到以下内容,本文主要探讨以下三个表

image.png

先打开Contact表,如下所示:

image.png

上图可以看到的信息是这样,如果微信是一个个人,它一般会有微信号和名字,为什么说“一般”,因为有些人真的没有微信号,是用手机注册的,或者早期用QQ导入的,只有一个wxid开头的码,这个在别的微信中是加不了人的

UserName中,如果是 gh_ 开头的,表示这个号是一个公众号

如果是openim结尾的,表示这是一个企业微信号


以下是字段解释

UserName:原始微信号,如果不是wxid开头,一般可以用于加人

Alias:改过之后的微信号,如果存在,那就是用这个加人,不一定会有

Remark:你给这个人加的备注名

NickName:这个人给自己取的微信名称

LabelIDList:你给这个人分配的标签的ID号,有可能有多个,使用英文逗号做分隔


打开ContactHeadImgUrl表:

image.png

以下是字段解释

usrName:原始微信号

smallHeadImgUrl:小头像的链接,小头像,要来没啥用

bigHeadImgUrl:大头像链接,打开可以看到高清头像


打开ContactLabel表:

image.png

这里很明显可以看出来是什么东西了


如果我们要导出联系人的各项信息,肯定得过滤一些内容,比如公众号、系统账号、企业微信号等,还有其它一些比如TypeVerifyFlag字段,有一些特定的数字,表示它不是一个个人微信账号,比如Type需要过滤(0,4,6,8,256, 2050),VerifyFlag需要过滤(8,24)

还有一些系统账号,比如漂流瓶、QQ邮件提醒等的账号需要过滤,最终可以写出一段用于查询信息的SQL语句,比如下图:

image.png

头像可以通过链接直接下载到,标签名可以通过标签ID获取到,比如下图:

image.png


经过这些步骤,和两段SQL,联系人就全出来了


既然可以通过人工分析出来,并且也不难,这样就可以通过做一个全自动化的软件,一步实现以上的功能,也就是我的【微信通讯录抽水机】软件了,需要的话可以点击下面下载到:

http://qinyuanyang.com/post/340.html




发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

桂ICP备19000498号-3