导语:
哈喽,哈喽~小编不知道你有没有经历过,想联系一位很长时间没有联系的朋友,发现对方很早以前已经把你删除了,而你还一无所知。反正小编经历过!
每个人的微信通信录里都存在一些「僵尸粉」,他们默默地躺在联系人列表中,你以为对方还是朋友,但是实际上,对方早已把你从好友列表中删了,那如何来筛选出这群人呢?
正文:
在开始编写脚本之前,需要做好如下准备工作
-
一部 Root 后的 Android 手机或者模拟器,如果没有 Root 的设备,推荐使用网易 MuMu 模拟器
-
Android 开发环境、Android Studio
-
sqlcipher 图形化工具
-
自动化工具:Python 虚拟环境下安装 pocoui
整个操作分为 3 步骤,分别是破解微信数据库筛选出通信录中的好友、模拟给好友转账得到僵尸粉数据、删除所有僵尸粉。
第 1 步,我们需要破解微信 App 的数据库。
e.g.👉这里只是简单的说一下破解流程,想一键破解微信通信录数据,可以跳过这一步,直接使用本文末提供的 APK。
首先,我们使用 Android Studio 新建一个项目,在项目初始化的时候,授予应用管理员权限以及修改微信目录的读写权限。
//微信 App 的目录
public static final String WX_ROOT_PATH = "/data/data/com.tencent.mm/";
/**
* 执行linux指令
*
* @param paramString
*/
public static void execRootCmd(String paramString)
{
try
{
Process localProcess = Runtime.getRuntime().exec("su");
Object localObject = localProcess.getOutputStream();
DataOutputStream localDataOutputStream = new DataOutputStream((OutputStream) localObject);
String str = String.valueOf(paramString);
localObject = str + "\n";
localDataOutputStream.writeBytes((String) localObject);
localDataOutputStream.flush();
localDataOutputStream.writeBytes("exit\n");
localDataOutputStream.flush();
localProcess.waitFor();
localObject = localProcess.exitValue();
} catch (Exception localException)
{
localException.printStackTrace();
}
}
//获取权限
RootUtils.execRootCmd("chmod 777 -R " + WX_ROOT_PATH);
然后,获取微信数据库的密码。
微信数据库的密码是由设备的 imei 和微信的 uid 进过 md5 算法生成的。
/**
* 根据imei和uin生成的md5码,获取数据库的密码(去前七位的小写字母)
*
* @param imei
* @param uin
* @return
*/
public static String getDbPassword(String imei, String uin)
{
if (TextUtils.isEmpty(imei) || TextUtils.isEmpty(uin))
{
Log.d("xag", "初始化数据库密码失败:imei或uid为空");
return "密码错误";