知物由学 | “群控软件”助长黑灰产套利的零和游戏,硬核技术打击隐秘的不公

文|李伊洋 易易盾 Android 安全工程师

群控功能:区别于模拟点击工具,群控系统一般由多个部分组成,例如在手机端运行的服务、在手机端用于模拟输入的输入法、在 PC 端用来对所有设备操作与监控的中控台、在服务器中运行的连接所有设备的服务端等。

群控系统的组成:作为一个系统,群控系统由 PC 中控模块、手机通信模块、功能实现模块三部分组成,但是不一定每个模块都是独立或是独一的,用某智控产品举例,只有 PC 中控软件与一个 APK 安装包两个软件,而某助手软件包含 PC 中控软件、输入法 APK、通信 APK、UIAutomator 功能 APK 四个软件。

一、PC 中控模块

PC 中控软件是整个系统的核心。核心功能可以分为对设备的监控与控制、对脚本的编写与控制两个部分。

对设备的监控是指会有大量的设备屏幕在这里被展示,通过颜色或是一些小标志,可以看到对应设备的手机通信模块是否正常运转。当指令下发时,没有正确执行指令的设备,由于屏幕不一致就会显现出来。黑灰产厂商能够快速排查问题,保证设备墙正常运转。这部分功能依赖于 adb 或是 络通信,做法可以根据手机内的通信模块而改变。

同时部分中控软件也支持脚本市场的功能,可以直接编写脚本开发人员已经编写好的脚本。

二、手机通信模块

主要用于对 PC 中控软件的指令进行解析,以及将屏幕图像传递给 PC 中控软件。以某老牌群控软件为例。

接受指令:

三、功能实现模块

每个群控系统都有他们特有的做法用来实现具体的功能。在整个群控系统中,这个模块是最接近被保护应用的,目前的检测思路主要也是围绕功能模块进行。下文会对这里提到的各个功能进行更具体的分析。

获取 Activity 结构:脚本开发和使用中,都需要获取到 View 的信息。为了获取这个信息,需要手机内的功能模块辅助完成。

功能模块原理

模拟点击:模拟点击的具体内容可以查看之前发过的 Android 模拟点击研究相关文章。

控件查找:控件查找对于任何一个群控系统与自动点击工具来说都是必备功能。除开通过 opencv 库做到的找图和 OCR 找字之外,对于控件查找更重要的能力在于对其属性的获取。例如一个界面中若是有两个都是长得一模一样的按钮,那么不论是找图还是 OCR 都只会返回第一个值,后一个按钮就失效了。

于是出于脚本稳定性考虑,群控系统和自动点击工具都会想方设法去获得控件的属性,例如唯一标识的 ID。

以现有的样本为例,群控系统获得控件属性的办法有两种,分别是类 Auto.js 做法与类 UIAutomator 做法。

类 Auto.js :该做法依赖于无障碍服务,所以需要注册无障碍服务,但并非所有软件都需要注册该服务

*/com.stardust.autojs.core.accessibility.AccessibilityService

优点:开发容易且稳定。缺点:依赖无障碍服务,通过获取无障碍服务列表可以检测。

大致思想是将 UIAutomator 调试桥植入设备,然后可以通过 adb shell uiautomator dump 命令,将当前的 activity 的树状结构 dump 成一个 xml 形式,然后解析该 xml,就可以得到 activity 中的所有控件属性。

可以看到在没有使用无障碍服务的情况下,获得了所有的 View 信息。

模拟点击:模拟点击方式通过 adb 权限,MotionEcent.obtain 模拟,injectInputEvnet 注入,易盾 Android 反外挂能力已经拥有了对这种模拟行为的检测能力。点击免费试用 易易盾反外挂产品

知物由学 | “群控软件”助长黑灰产套利的零和游戏,硬核技术打击隐秘的不公

安装包:在上文中提到过的相关模块,都可以作为检测的依据。

声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2022年7月19日
下一篇 2022年7月19日

相关推荐