用Python揪出你微信里的「僵尸粉」

你一定也遇到过,突然想联系一位很久没有联系的朋友,发现对方早就已经把你删除了,而你还一无所知(尴尬呀)。

相信每个人的微信好友里都有一些所谓的「僵尸粉」,他们默默地躺在你微信联系人中,你傻傻的以为对方还是好朋友,那你就真是太傻了;而现实是,对方早就把你从好友列表中删除了,那到底如何来揪出这群人呢?

用Python揪出你微信里的「僵尸粉」_第1张图片

本篇文章的目的是自动化操作微信 App,通过「模拟给好友转账」来揪出所有的「僵尸粉」,并一键删除它们。

准备工作

在开始编写脚本之前,需要做好以下准备工作:

1、一部 Root 后的 Android 手机或者模拟器,如果没有 Root 的设备,可以使用网易 MuMu 模拟器;

2、Android 的开发环境、Android Studio;

3、sqlcipher 图形化工具;

4、自动化工具:Python 虚拟环境下安装 pocoui。

编写脚本

整个操作分为 3 个步骤,分别是破解微信数据库,筛选出通信录中的好友、模拟给好友转账得到僵尸粉的数据、同时删除好友中所有的僵尸粉。

第 1 步,我们需要破解微信 App 的数据库。

首先,我们使用 Android Studio 新建一个项目,在项目初始化的时候,授予应用管理员权限,以及修改微信目录的读写权限功能。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-SYGddc7L-1590999924440)(https://upload-images.jianshu.io/upload_images/20062408-0e6a83f25873beff.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-uGq0Dryf-1590999924447)(https://upload-images.jianshu.io/upload_images/20062408-7aa585cb5a769c08.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)]

接下来,我们来获取一下微信数据库的密码。

数据库的密码是由设备的 imei 和微信的 uid 通过 md5 算法生成得到的。

用Python揪出你微信里的「僵尸粉」_第2张图片

下面,我们就可以使用 SQLCipher 依赖库来对微信数据库进行查询,我们需要为项目添加以下依赖,方便我们操作数据库。

通过上面得到的密码能够打开加密数据库,然后查询rcontact表获取微信通讯录内所有好友的微信号、微信名称以及用户名等一些数据。

用Python揪出你微信里的「僵尸粉」_第3张图片

用Python揪出你微信里的「僵尸粉」_第4张图片

用Python揪出你微信里的「僵尸粉」_第5张图片

这里需要注意,数据库中 rcontact 表的数据相对是比较杂乱的,除了正常的好友数据之外,微信的黑名单好友、已经删除的好友、关注的公众号、加入的微信群等一些其他的数据也包含在里面,需要我们通过 type 和 verifyFlag 字段进行筛选。

用Python揪出你微信里的「僵尸粉」_第6张图片

为了进行 Python 接下来的操作,我们要将查询到的好友数据写入到 csv 文件中来。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-vQVbpxGn-1590999924524)(https://upload-images.jianshu.io/upload_images/20062408-c9bcfdfe4ef47f66.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)]

用Python揪出你微信里的「僵尸粉」_第7张图片

第 2 步,模拟给好友转账,从而判断这个好友是否是「僵尸粉」。

首先,我们需要初始化 Airtest,接下来利用 adb 把第 1 步生成的数据从手机里导出到本地中去。

用Python揪出你微信里的「僵尸粉」_第8张图片

接下来就是一系列的自动化操作。

打开微信App,遍历所有的好友列表,获取到每一个好友的微信号去搜索对应的好友,然后跳转到与好友的聊天界面中。

用Python揪出你微信里的「僵尸粉」_第9张图片

用Python揪出你微信里的「僵尸粉」_第10张图片

下面我们尝试着给对方转账,如果好友关系是正常的,就会跳出一个支付页面让你输入密码。

用Python揪出你微信里的「僵尸粉」_第11张图片

如果是「僵尸粉」,就会弹出一个警告提示的对话框,提示你不是收款方的微信好友,没法完成转账的操作。如下图:

用Python揪出你微信里的「僵尸粉」_第12张图片

通过警告对话框是否存在,就可以判断出好友的关系是否正常。非正常的好友关系,包含:僵尸粉、对方账号异常等一些其他的情况。

用Python揪出你微信里的「僵尸粉」_第13张图片

用Python揪出你微信里的「僵尸粉」_第14张图片

最后,点击手机的返回键,一直到微信主界面为止。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-SF2wq3BL-1590999924585)(https://upload-images.jianshu.io/upload_images/20062408-0c8075000c825368.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)]

重复操作上面的步骤,就可以判断出哪些是「僵尸粉」,哪些好友的账号被微信限制,哪些是正常的好友了。

第3步,删除获取到的「僵尸粉」。

拿到上面的僵尸粉数据之后,就可以利用上面的方式进行一系列自动化操作,将这些「僵尸粉」删除掉了。

用Python揪出你微信里的「僵尸粉」_第15张图片

这样一系列操作之后,「僵尸粉」就被你完美的清理掉了。是不是很神奇,不错,代码就是这样神奇,想知道Python还有哪些神操作吗?

推荐我们的Python学习扣qun:784758214 ,看看前辈们是如何学习的!从基础的python脚本到web开发、爬虫、django、数据挖掘等【PDF,实战源码】,零基础到项目实战的资料都有整理。送给每一位python的小伙伴!每天都有大牛定时讲解Python技术,分享一些学习的方法和需要注意的小细节,点击加入我们的 python学习者聚集地

你可能感兴趣的:(python,编程语言)