美文网首页
用Python揪出你微信里的「僵尸粉」

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

作者: 小刘说编程 | 来源:发表于2020-05-25 15:10 被阅读0次

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

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

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

准备工作

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

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

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

3、sqlcipher 图形化工具;

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

编写脚本

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

相关文章

网友评论

      本文标题:用Python揪出你微信里的「僵尸粉」

      本文链接:https://www.haomeiwen.com/subject/ahyyahtx.html