因为工作的原因,接触了按键精灵。这令我回想起了大学时玩网游,有人买了外挂挂机打怪,明白了以前外挂的制作方法。
按键精灵是对系统脚本语言的封装,让很多不懂编程的人,通过阅读汉字就能开发一些辅助脚本。除了游戏,还能做自动化办公。简而言之,脚本能替代人力的鼠标和键盘操作。按键精灵官方为了显得高大上,引进了一个国外概念,RPA(Robotic Process Automation),机器人流程自动化。
我在网上了解了一些相关内容,Windows有vbs,苹果有AppleScript,Linux上Bash脚本,可以做同样的事。按键精灵对于目前主流的平台都有版本,Windows(vbs)、Mac(AppleScript)、Android、IOS。对于自动化来说,在灰色地带是有很大市场的。比如网购里的抢购,微信、QQ里自动往群发营销消息。大多数是减轻人重复烦劳的体力活。
Web开发里,有一个很出名的插件,油猴,英文名TamperMonkey。通过这个插件可以写一些自定义脚本,开发方式是使用JavaScript调用浏览器的BOM和DOM。可以引入现有的类库,比如jQuery。有公开的脚本仓库,不少常用的网站能找到增强脚本。
比如以前很火的百度网盘下载工具,安装之后,能在网盘资源原有的按钮上增加一些额外的按钮,提供脚本分析出的下载链接。使用IDM工具下载,不限速,与之相对的是,如果不开百度网盘VIP,它的客户端会给你很低的速率,通常要下几天。
油猴上有很多好玩的东西,比如有的博客网站会堆砌很多推荐、广告,用一个脚本就能让界面清爽。或者网站的背景色没有艺术感,可以自己来调整。油猴的工作方式说到底和按键精灵是类似的,一个是调用浏览器接口,一个是操作系统提供的接口。
很多桌面应用程序是提供给人操作的,比如Office、微信。这些应用是没有什么开放接口的,如何操作呢?按键精灵上流行一款很好用的插件,大漠插件。通过进程注入的方式,让你写的工具能获取到某个应用的数据信息。比如尺寸、鼠标的形状、鼠标的位置。
按键精灵能模拟人的鼠标和键盘操作,如果识别到固定的特征就执行相应的操作,进而代替人。打个比方,网游里的角色有红条和蓝条,分别代表生命和魔法值。当角色掉血过多,红条右边会变成其他的颜色。只要定时检测这个颜色不是红色,就可以判断是否需要加血。游戏里通常有快捷键,脚本自动触发键盘快捷键能自动加血。挂机打怪类似,角色头像的颜色通常和怪物脑袋颜色不一样,可以通过颜色拿到对应的坐标,模拟鼠标点击操作,实现自动打怪。
除了找颜色,还有找图,比对应用里是否出现特定的图像。更厉害的是文字识别,识别应用里出现的文字,这个更高效。能拿来处理复杂的逻辑。
从某种角度来说,按键精灵属于软件中的hacking范畴。不少人靠它赚钱,做一些摸棱两可的事。手机上自动抢红包,自动抢购,自动回复都有它的身影。它并不需要去破解应用的协议,了解应用app的底层开发技术。所见即所得,通过分析应用的操作,界面长啥样就能做出不错的工具。从时间成本上来说,它需要的时间比去破解一款应用短很多,使用的脚本语言方便上手,这成了不少羊毛党的利器。
目前很多app采用了加壳混淆技术,流量使用PIN证书加密,要破解实属不易。但是按键精灵的手法却是模拟一个正常用户的操作,让开发者防止这一手法的难度加大。对开发者而言,需要识别用户操作的频率、行为,判断当前操作的主体是人还是脚本。从我所了解的情况,目前国内大多数应用并没有成熟的框架来应对这种操作。
上手极快的脚本语言,有兴趣就学一下吧,一两天就掌握。