我们在做自动化脚本的过程中,经常会遇到风控问题,比如游戏脚本,视频脚本等。有些app会检测手机是否root、是否开启调试模式。如果我们使用的平台有开启这些就有可能被检测到,我们可以使用蓝牙HID硬件来模拟外接键盘、鼠标、触摸板等来操作,也就是相当于外接了一个鼠标、键盘,目前这是防风控比较有效的方式之一。下面给个实际的例子详细教下大家如何操作。
一、准备开发环境
- 去冰狐智能辅助官网下载冰狐并安装
- 根据文档设置手机,防止冰狐在运行过程中被杀掉
- 不要开启无障碍功能,其他所有功能都开启
- 蓝牙HID硬件插上电源(usb接口)
- 手机打开蓝牙,并配对蓝牙HID设备(默认没有密码,成本非常便宜,不到10块钱)
二、操控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硬件来模拟键盘鼠标,从而实现自动化脚本是一门全新的技术,因为手机本身就支持蓝牙鼠标和蓝牙键盘,所以app无法一刀切直接屏蔽所有带有蓝牙鼠标和键盘的手机。其次蓝牙硬件的成本非常低,不到10块钱(市面上动辄大几十、上百的可以完全不用考虑哈)。从效果和成本上来说蓝牙HID是自动化脚本非常好的选择之一。