使用低成本的蓝牙HID硬件模拟鼠标和键盘来实现自动化脚本

news2024/11/22 14:16:14

做过自动化脚本的都知道,现在很多传统的自动化脚本方案几乎都可以被检测,比如基于root,adb等方案。用外置的带有鼠标和键盘功能集的蓝牙HID硬件来直接点击和滑动是非常靠谱的方案,也是未来的趋势所在。

一、使用蓝牙HID硬件的优势

  1. 不会被检测到,因为现在的手机本身支持蓝牙鼠标,蓝牙键盘,蓝牙游戏柄等。我们实现的也是一种标准蓝牙外部设备。app总不能完全禁止使用手机蓝牙外设吧,所以是非常靠谱的。
  2. 成本低,我们选用国产esp32c3芯片,成本不足10块钱。
  3. 兼容性好,只要支持蓝牙的手机都可以,不挑手机。
  4. 支持冰狐智能辅助,可以直接在冰狐上使用js编写脚本逻辑,做到完全随心所欲。

二、代码实战

冰狐智能辅助官方支持使用蓝牙HID硬件,非常方便。我们可以使用冰狐官方提供的BleClient来和蓝牙HID硬件通信,将各种指令发送给蓝牙硬件,让蓝牙硬件执行点击,滑动等操作。

function main() {
    var ble = new BleClient('sssss-xxxx-344-xxx-fffff', 'ffff-xxx-xxx-xxxx-ffff');
    if (1 == ble.connect()) {
        // 点击
        bleClick(ble, 400, 400);
        // sleep(3000);

        // // 滑动
        // bleSwipe(ble, rsScreenWidth / 2, rsScreenHeight / 3 * 2, rsScreenWidth / 2, rsScreenHeight / 3, 1000)
    }
}

// 点击
function bleClick(ble, x, y) {
    x = parseInt(x * 10000 / rsScreenWidth);
    y = parseInt(y * 10000 / rsScreenHeight);
    var cmd = `c${x},${y}`;
    console.log('cmd:' + cmd)
    var ret = ble.send(cmd)
    console.log('send ret:', ret)
}

// 滑动
function bleSwipe(ble, x1, y1, x2, y2, duration) {
    x1 = parseInt(x1 * 10000 / rsScreenWidth);
    y1 = parseInt(y1 * 10000 / rsScreenHeight);
    x2 = parseInt(x2 * 10000 / rsScreenWidth);
    y2 = parseInt(y2 * 10000 / rsScreenHeight);
    var cmd = `m${x1},${y1},${x2},${y2},${duration}`;
    console.log('cmd:' + cmd)
    var ret = ble.send(cmd)
    console.log('send ret:', ret)
}

// 输出文本
function bleOutput(ble) {
    var ret = ble.send('z:ab12')
    console.log('send ret:', ret)
}

// 全选
function bleSelectAll(ble) {
    var ret = ble.send('s')
    console.log('send ret:', ret)
}

// 拷贝
function bleCopy(ble) {
    var ret = ble.send('o')
    console.log('send ret:', ret)
}

// 剪切
function bleCut(ble) {
    var ret = ble.send('t')
    console.log('send ret:', ret)
}

// 粘贴
function blePaste(ble) {
    var ret = ble.send('p')
    console.log('send ret:', ret)
}

// 最近应用
function bleRecentApps(ble) {
    var ret = ble.send('r')
    console.log('send ret:', ret)
}

// 亮屏
function bleWakeup(ble) {
    var ret = ble.send('w')
    console.log('send ret:', ret)
}

// 锁屏
function bleLock(ble) {
    var ret = ble.send('l')
    console.log('send ret:', ret)
}

// 按home键
function bleHome(ble) {
    var ret = ble.send('h')
    console.log('send ret:', ret)
}

// 按返回键
function bleBack(ble) {
    var ret = ble.send('b')
    console.log('send ret:', ret)
}

三、总结

综上所述,蓝牙HID硬件在实现自动化脚本方面具有独特的优势和应用前景。通过合理地编写脚本和配置硬件,可以高效地实现各种自动化任务。具有很强的防检测、防风控能力,具有超强的性价比。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2245367.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

VideoCrafter模型部署教程

一、介绍 VideoCrafter是一个功能强大的AI视频编辑和生成工具,它结合了深度学习和机器学习技术,为用户提供了便捷的视频制作和编辑体验。 系统:Ubuntu22.04系统,显卡:4090,显存:24G 二、基础…

#渗透测试#SRC漏洞挖掘#Python自动化脚本的编写05之多线程与多进程

免责声明 本教程仅为合法的教学目的而准备,严禁用于任何形式的违法犯罪活动及其他商业行为,在使用本教程前,您应确保该行为符合当地的法律法规,继续阅读即表示您需自行承担所有操作的后果,如有异议,请立即停…

C++多继承:一个子类继承多个父类的情况

C的类继承大家还算比较了解。它主要包括单继承、多继承、虚继承这几方面。 单继承就是一个子类只继承一个父类,多继承就是一个子类继承多个父类。 其实在C中,一个子类继承多个父类的情况还是比较常见的。比如,一个子类需要同时继承两个父类…

在windows电脑上安装docker服务

以下是在 Windows 电脑上安装 Docker 服务的详细步骤: 一、下载 Docker Desktop for Windows 系统要求:Windows 操作系统需要是 Windows 10(64 位)专业版、企业版或教育版,或者是 Windows 11。并且系统要开启了硬件虚…

单片机UART协议相关知识

概念 UART(Universal Asynchronous Receiver/Transmitter,通用异步收发传输器) 是一种 异步 串行 全双工 通信协议,用于设备一对一进行数据传输,只需要两根线(TX,RX)。 异步&…

XXL-JOB执行任务的SpringBoot程序无法注册到调度中心

文章目录 1. 问题呈现2. 问题产生的原因2.1 原因一:执行器和调度中心部署在不同的机器上2.2 原因二:调度中心部署在云服务器上 3. 解决方法3.1 方法一:将执行器和调度中心部署在同一台机器上3.2 方法二:手动指定执行器的ip地址&am…

Ettus USRP X410

总线连接器: 以太网 RF频率范围: 1 MHz 至 7.2 GHz GPSDO: 是 输出通道数量: 4 RF收发仪瞬时带宽: 400 MHz 输入通道数量: 4 FPGA: Zynq US RFSoC (ZU28DR) 1 MHz to 7.2 GHz,400 MHz带宽,GPS驯服OCXO,USRP软件无线电设备 Ettus USRP X410集…

哋它亢SEO技术分析:如何提升网站在搜索引擎中的可见性

文章目录 哋它亢SEO技术分析:如何提升网站在搜索引擎中的可见性网站的基本情况SEO优化分析与建议1. 元数据优化2. 关键词优化3. URL结构4. 图像优化5. 移动端优化6. 网站速度7. 结构化数据(Schema Markup)8. 内链与外链9. 社交分享 哋它亢SEO…

将网站地址改成https地址需要哪些材料

HTTPS(安全超文本传输协议)是HTTP协议的扩展。它大大降低了个人数据(用户名、密码、银行卡号等)被拦截的风险,还有助于防止加载网站时的内容替换,包括广告替换。 在发送数据之前,信息会使用SSL…

mongodb多表查询,五个表查询

需求是这样的,而数据是从mysql导入进来的,由于mysql不支持数组类型的数据,所以有很多关联表。药剂里找药物,需要药剂与药物的关联表,然后再找药物表。从药物表里再找药物与成分关联表,最后再找成分表。 这里…

端到端的专线管理与运维:实时掌握专线的运行状态

在当今高度信息化的时代,专线服务已成为企业数据传输的重要组成部分。为了确保专线服务的高效、稳定运行,我们采用了先进的端到端管理模式,对专线的运行状态和质量进行全面监控。本文将从专线管理的必要性、端到端管理模式的优势、实施步骤以…

SpringBoot(8)-任务

目录 一、异步任务 二、定时任务 三、邮件任务 一、异步任务 使用场景:后端发送邮件需要时间,前端若响应不动会导致体验感不佳,一般会采用多线程的方式去处理这些任务,但每次都需要自己去手动编写多线程来实现 1、编写servic…

PostgreSQL常用字符串函数与示例说明

文章目录 coalesce字符串位置(position strpos)字符串长度与大小写转换去掉空格(trim ltrim rtrim)字符串连接(concat)字符串替换简单替换(replace)替换指定位置长度(overlay)正则替换(regexp_replace) 字符串匹配字符串拆分split_part(拆分数组取指定位置的值)string_to_array…

深入剖析Java内存管理:机制、优化与最佳实践

🚀 作者 :“码上有前” 🚀 文章简介 :Java 🚀 欢迎小伙伴们 点赞👍、收藏⭐、留言💬 深入剖析Java内存管理:机制、优化与最佳实践 一、Java内存模型概述 1. Java内存模型的定义与作…

【论文速读】| RobustKV:通过键值对驱逐防御大语言模型免受越狱攻击

基本信息 原文标题:ROBUSTKV: DEFENDING LARGE LANGUAGE MODELS AGAINST JAILBREAK ATTACKS VIA KV EVICTION 原文作者:Tanqiu Jiang, Zian Wang, Jiacheng Liang, Changjiang Li, Yuhui Wang, Ting Wang 作者单位:Stony Brook University…

css使用弹性盒,让每个子元素平均等分父元素的4/1大小

css使用弹性盒,让每个子元素平均等分父元素的4/1大小 原本: ul {padding: 0;width: 100%;background-color: rgb(74, 80, 62);display: flex;justify-content: space-between;flex-wrap: wrap;li {/* 每个占4/1 */overflow: hidden;background-color: r…

图像处理 之 凸包和最小外围轮廓生成

“ 最小包围轮廓之美” 一起来欣赏图形之美~ 1.原始图片 男人牵着机器狗 2.轮廓提取 轮廓提取 3.最小包围轮廓 最小包围轮廓 4.凸包 凸包 5.凸包和最小包围轮廓的合照 凸包和最小包围轮廓的合照 上述图片中凸包、最小外围轮廓效果为作者实现算法生成。 图形几何之美系列&#…

徒手从零搭建一套ELK日志平台

徒手从零搭建一套ELK日志平台 日志分析的概述日志分析的作用主要收集工具集中式日志系统主要特点采集日志分类ELK概述初级版ELK终极版ELK高级版ELKELK收集日志的两种形式 搭建ELK平台Logstash工作原理Logstash核心概念环境准备安装部署docker添加镜像加速器安装部署Elasticsear…

【论文阅读】Poison Forensics: Traceback of Data Poisoning Attacks in Neural Networks

Poison Forensics: Traceback of Data Poisoning Attacks in Neural Networks 核心原理前提条件方法第一个问题第二个问题 核心原理 有毒样本会使模型更接近参数空间中的最佳位置,良性样本会使该模型向其随机初始化状态移动 前提条件 最重要的: 可以…

递归算法专题一>反转链表

题目: 解析: 也可以把链表看作一棵树,后续遍历这棵树然后和上图一样,改变指针即可 代码: public ListNode reverseList(ListNode head) {if(head null || head.next null) return head;ListNode newHead revers…