保护生态 一对一直播 脚本 技术分析

一对一直播脚本技术实现原理。脚本所做的只是简化用户操作,实现自动化操作的一个工具。这里分析的是脚本程序:保护生态、高山流水

技术选型

一对一直播脚本,本质上是打开平台后,采用自动化技术,给平台的用户发送消息,模拟一个用户操作的过程。其中脚本需要做的大致过程如下:

  1. 找到平台的用户,并自动打开聊天窗口
  2. 从一个文件中随机找到一句话
  3. 将随机到的话发送给用户

要实现上方的功能,有多种方式,例如采用root,但平台可能会检测机器是否已经被root,从而限制某些功能。那么最保险的一种就是采用无障碍功能去实现。(实际上即便是采用无障碍,也有一定的被检测风险,平台可以判断机器无障碍是否开启)

由于平台会随时更新且会不断的调整策略,普通的Android原生开发语言,java、kotlin 就无法使用,故而只能采用能够随时、快速的更新的 Autojs ,实际上 autojs 是一款 github 开源的开发框架。优点就是可以加载执行 js 文件,通过 js 这类脚本语言,可以适应平台的更新节奏。

用户肯定不想每天都下载一个更新包去一台台机器安装

脚本执行流程

通过开启无障碍,那么 App 已经能够获取 Android 手机上所有的界面元素。

此时只需要找到指定的界面元素进行点击即可。

首先找到输入框:

if (id("input_et").findOne(5000)) {
}

查找到界面 id 为 input_et 的元素,当找到之后:

id("input_et").findOne(5000).setText(String(回复内容1[1]))

将内容自动的输入到框框中,接下来找到按钮并进行点击:

if (id("one_key_send_tv").text("一键群发").exists()) {
}

上方就是查找到界面上 id 为 one_key_send_tv 的元素。如果它的文字内容为: 一键群发 则执行后续内容。

找到按键元素后,接下来要点击这个按键:

if (id("one_key_send_tv").text("一键群发").exists()) {
                if (cj = id("one_key_send_tv").text("一键群发").findOne(5000)) {
                    try {
                        cj.click();
                        sleep(2000)
                    } catch (error) {
                    }
                }
            }

cj.click() 就是点击了这个按钮。虽然是在代码中执行的,但对于平台 app 来说,它会认为这是用户手动点击的按钮,随后会将消息进行发送

Android java层原理

脚本语言采用的是 js。js是一种动态语言,执行时,对象会和java层的对象一一映射,通过 hook,实现调用,例如,上方 js 代码的 id("xxx") ,对应 java层就是:findViewById() 方法 ,通过映射方法,从而实现功能

实现分析

前面提到了几个脚本大致的执行过程。

这里不得不提安卓无障碍服务,无障碍可以做到监听界面上的点击、拖动、更新等信息。具有极高的权限和非常丰富的功能。虽然不及 root 权限,但也比普通用户高非常非常多

如果一款病毒 app 获取无障碍服务,可以直接劫持操控你的手机

但是一个功能是好是坏,取决于怎么用。借助无障碍服务,可以给手机自动化执行某些任务

功能完善

上面伪代码是程序大致的执行过程。其中还涉及到比较多的知识点,比如执行异常怎么办?文本的读取、解析、随机发送等等。

技术交流:wx_zhibo8888

可以找我测试试用脚本

自助 JI 活

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值