Android Accessibility实践 程序检查微信被删好友

原理

通过Android 无障碍辅助功能实现模拟点击控件来实现
检查被删好友有两种方法:


  1. 向好友发送一条消息,如果对方已经把你删除,则消息发送失败。

  2. 建群法:新建一个不大于40人的群,如果其中有好友已经把你删除,微信会有条消息提示

  3. 整体执行步骤:启动微信->点击+号->发起群聊->选择35个联系人->点击确定->点击群里详情->删除并退出,依次轮询执行,知道所有好友轮询结束




本文采用建群的方式进行检查。


本人微信有300好友,全部检测一遍只需3分钟即可,亲测已经成功,
但是建群没有超过40人 会有个别好友会受到打扰消息,可能是微信哪里的bug,具体原因未知。


说明和app预览

此软件通过无障碍辅助进行模拟点击,无任何外挂木马,无封号风险






使用方法

  1. Android 手机一部,登录微信账号

  2. 安装辅助软件apk下载地址请点击这里(https://raw.githubusercontent.com/wlj32011/InspectWechatFriend/master/app-release.apk)

  3. 打开辅助软件-点击打开辅助功能按钮,跳转到无障碍辅助设置把辅助开关打开。

  4. 点击开始检查按钮,开始一系列的模拟点击,检查完成后会跳转到一个列表会把被删好友列表展示出来。


2

实现步骤

   

新建Android Studio 工程,新建一个Services类集成AccessibilityService,实现对应方法,详细介绍见代码注释




在manifests.xml文件中注册此服务:




新建res/xml/inspect_wechat_friend.xml文件




实现对某个控件的点击


通过getRootInActiveWindow方法获取当前窗口信息,通过findAccessibilityNodeInfosByText方法找到当前对应控件进行模拟点击


在当前页面查找文字内容并点击




检查viewId进行点击




在当前页面查找对话框文字内容并点击




监听窗口事件


获取当前窗口的classname 通过classname进行判断当前手机处于某个界面
下面代码逻辑:

  1. 如果当前为微信主页面,则点击+号然后点击发起群聊

  2. 如果当前页面为创建群聊选择联系人界面,则开启一个while循环模拟滚动时间以及点击选择框,当选择用户到39人时,则模拟点击确定按钮发起群聊。

  3. 发起群聊后,微信会返回哪些用户不是你的好友,这个时候,取到当前控件的字符串并截取用户列表保存到本地。

  4. 获取到不是好友的用户后,点击右上角进入群聊详情,点击删除并退出

  5. 退出后又回到微信主页面,依次执行1 2 3 4步骤,直到滚动到联系人最底部为止。

  6. 当所有用户执行完成后,则启动检查结果界面,列出所有被删好友。


下面为对应逻辑代码:


监听手机当前窗口状态改变 比如 Activity 跳转,内容变化,按钮点击等事件




模拟创建群组步骤




退出群组步骤




模拟获取被删好友列表步骤




3

ui automator viewer的使用

   

uiautomatorviewer可以检查当前手机的布局结构,如果想更精确的找到控件位置,uiautomatorviewer必不可少!


使用方法:

  1. 搭建Android开发环境,并设置环境变量,这里就不说了。

  2. 在Android Studio 中打开 terminal 窗口,或者在终端直接执行命令


$uiautomatorviewer


整体效果图:




项目源码github地址:

  • https://github.com/wlj32011/InspectWechatFriend

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值