通俗一点来说,自瞄是在FPS射击游戏中最为常见的作弊手段之一,当下最火爆的CSGO也深受其扰,在此我说些我自己的看法,欢迎大家在下方留言讨论;
(1)软件层面
在神经网络方面的视觉AI应用流行之前,WG作者只能使用应用层或驱动层标准的Windows API来实现,例如keybd_event、mouse_event、SendInput、NtSendInput等接口,而游戏中的人物坐标数据通常需要注入或远程读取来获取,而在AI后时代这些将逐渐远离,让反作弊系统直接失明......
在写这篇文章时,与很多硬件和软件大佬做过一些深入交流,本文标题所指的“后时代”并不是说#ChatGPT的时代,而是在那些神经网络AI出现之后,在这个AI出现之前,一些作弊器都需要在应用层或驱动层实现模拟键鼠操作,这里是有极大概率被当下的检测封杀的。
通常一些自瞄都非常依赖Windows API来模拟键盘鼠标操作,我这里说一种新型更隐蔽的手段 —— STM32伪造键鼠,这种方法在目前TB上面也有大量模块化的售卖。它的原理其实也非常简单,利用STM32单片机在系统模拟出一个罗技鼠标(VID、PID全部伪造),再开放一个其他USB或串口等提供给应用层远程模拟,这种键鼠模拟会相当于隐蔽,反作弊系统会非常难捕获。
之前在B站看到过一个神经网络方面的大佬林亦LYi用Python+神经网络算法写了一个通杀所有FPS游戏自瞄的效果,大致原理是利用试时的游戏截屏+神经网络视觉AI再去分析出来人物肢体部位,最后再模拟键鼠射击,效果如下图:
【亦】警惕AI外挂!我写了一个枪枪爆头的视觉AI,又亲手“杀死”了它_CSGO
(2)硬件层面
不禁想起在2018年阿莫电子论坛一位大佬利用FPGA+Python+OpenCV+STM32做出来一个硬件级的纯物理自瞄WG,他在2018年就有这样的思路已经是非常超前了!
因为他的整套系统完全不在Windows上运行,也不需要截取游戏画面,也不需要读写游戏数据,甚至连一个多余的进程、文件都不需要;他的原理是彻底不接触物理游戏主机,而是直接从HDMI读取画面数据用FPGA开发板上的Python+OpenCV来识别出游戏人物位置,如果当前他了解神经网络方面的视觉AI,也许他会打开新世界的大门!咦,不过当时好像并没有流行这方面技术;
如果我要在这位硬件大佬的基础改进的话,首先在Python中不要只是单纯的用OpenCV,而使用目前比较火爆易用的YOLO V8目标检测算法,先不断强化训练学习从而做到更精准,如果训练得足够强悍,这将对所有FPS射击游戏来说是噩梦。
这个在开发板中有现成的YOLO算法完整例程代码:
GitHub - fpgadeveloper/pynq-ncs-yolo: YOLO object detector for Movidius Neural Compute Stick (NCS)
整体思路原理框架如下:
如果这篇文章看到现在,还有小伙伴蠢蠢欲动的话,我建议你三思,毕竟如果你只懂PC软件工程的话,硬件这一块会够呛的。
借用我司硬件总工跟我讲过的一个地狱笑话:“那些当年在某宝卖开发板的人,如果看到收货地址是学校的,人家直接劝你退货......”
为啥?因为他们大多啥基础水平没有反而问题一大堆,这哪有空给他讲?就相当于卖给你一个数码相机和PS软件,你得教会如何P出一个赵丽颖?再通俗一点,相当于我卖你一套xxx代码,你自己消化不了它,还天天来问我C语言语法函数问题这换谁能受得了?人家卖块板子赚个几十块,得教你几千块的知识,这也不太实际,大家还是要讲良心!所以现实是即使你在某宝买了人家的开发板,也许人家哪怕收到差评也根本不会鸟你任何非质量的问题....
即使你买了开发板,整个架构对软件、硬件、神经网络等综合水平要求有点高,另外还有一个劝退点:
看到这个美刀的价格如果你还有购买的冲动,那当我上面的没说过......
(3)对抗硬件自瞄G的思路
在说了这么多之后,我大致总结了一下它的对抗思路:
1、检测非法的键鼠VID、PID设备批量拉黑;
2、检测玩家某个时间段内的键鼠记录,比如W按下10毫秒|W松开10毫秒|S按下1毫秒|S按开1毫秒等等,再用AI分析出异常的
3、检测键鼠视野抖动范围,这些也是在正常情况下非常人能达到的;
最后,相信不久的将来,这种硬件WG将会成为“主流”。在这个WG肆意横行的时代,为此我们唯一能做的是回归游戏初心,坚决抵制任何游戏WG,同时希望平台也要不断完善反作弊机制!