来研究并实现FPS的方框透视吧! 您所在的位置:网站首页 csgo什么指令可以透视敌人 来研究并实现FPS的方框透视吧!

来研究并实现FPS的方框透视吧!

2024-03-22 22:16| 来源: 网络整理| 查看: 265

FPS透视原理

FPS游戏一直都是游戏中的热门,在众多千奇百怪的外挂中,透视可以说是最基本的功能,这其中,V社热门的CS可谓被不堪其扰,从早期CS1.6的中门穿烟到现在的CSGO小陀螺大陀螺,然而其透视的原理是一脉相承的,说简单些,每个游戏客户端都必须知道敌人的位置,只是在实际游戏中按照游戏机制对玩家予以显示,但是,这些敌人的位置信息,总归是存放在客户端—玩家的电脑上,尽管各类游戏有着自己的反作弊措施,但是毕竟是在别人的主场上,不良玩家只需要找到存放的内存中的敌人的坐标,通过GDI绘制方框,便可以实现最基本的透视,因为这个过程只有读取内存,而没有写入,所以透视极难被根绝,对于CSGO,因为V社游戏中普遍都有人物高亮的控制台指令,只需要在客户端中将控制高亮的内存数值修改,甚至都省去了绘制方框的过程(如下图)——事实上,这种作弊方式在18年很普遍.

人物高亮

分析

大佬都用C++,像我这种菜鸡只配用C#,在上篇文章中通过读写内存的操作,实现了一个最基本的植物大战僵尸的修改器,这期以CSGO的方框透视为例,只涉及到读内存,不涉及写.

在这篇文章最后我会把一个单板透视的demo源码放出来,但是我肯定不是让你们拿去当神仙的,这也仅仅是一个最基本的demo而已,我全部的实践全部是在离线bot局里面,也没有对多人对局进行过干扰.所以就算你拿去多人,肯定也是会被ban掉的.首先引入我写的一个内存读写的类.上期做植物大战僵尸修改器的时候的做法是每读取/修改一次内存就获取一次程序句柄,实操下来这样子极其耗费内存.在遍历CSGO的对象链表的时候需要耗费1.5秒左右的时间,所以我将几个方法改为需要实例化再使用,也就是整个实例对象直到最后注销都只有一个句柄的存在.

然后我们开启CSGO,进行一场bot试炼,接着打开CE进行人物的坐标搜索,我是先搜索的血量,然后再用内存浏览器直接找到的人物的坐标,用程序设计的思想来想会很正常,就像让你构建一个人物类,你大概率也是坐标血量这些人物属性放同一个类里面,所以在内存中,他们离得不会太远,至于怎么用CE找血量基质这些我不做赘述,这里只是研究原理,不讨论应用.找出的人物属性基质如下

通过反复的查找比对,最终得到的了血量,三维坐标和视角矩阵和人物的阵营(图片中我遗漏了队伍属性),视角矩阵在物理中表示你的目光所及(我是文科生,也许说得不准确),在游戏里你可以单纯理解为相机视野.CSGO的视角矩阵为44,不同游戏不同引擎不同,有的可能是43或者3*4这种.

所以这里我们可以定义一个人物属性的结构体

CSGO中对象的存放是一个链表的结构,在大一的数据结构中,我们知道只需要找到任意的一个链表节点,就可以遍历出整个链表.所以现在我们已经找到了储存自己角色的节点,通过CE的结构分析,我们得到这样子的一个链表结构

实现

有了这些,可以遍历出所有节点的对象.先得到链表头,当然,你也可以找链尾或者同时找.

得到链头之后定义一个定时器,每10毫秒轮询一遍,获取最新信息.

这其中,每个对象尝试去获取它的血量,因为链表中不仅仅存放着人物,很可能还有一些不相干的东西,比方说到处跑的小鸡,枪械等等.有些对象甚至有血量,但是却不一定有人物的坐标,所以如果出现血量不为0且坐标不为(0,0,0)的,那么就可以认定这是一个存活人物(死人血量也为0,就不用显示了),认定后,获取其坐标,然后利用WorldToScreen函数转换为屏幕坐标.WorldToScreen顾名思义,获取目标对象当前的世界坐标系位置,并将其转换为屏幕坐标系的点.

得到人物在屏幕上的坐标就简单的了.最后就是使用GDI+绘制方框了,这里一定要记得绘制出所有人物的坐标后再进行下一轮,而非绘制一个人即refresh,否则即使开启了双缓冲,闪烁也会很严重.使用GDI+绘制的函数:

这两个函数的效果是,同阵营人物使用橙色描绘,敌人使用红色描绘,当然,你还可以绘制上人物血量护甲和外挂中常见的射线等等.由于GDI+的效率较低,所以一定要开启双缓冲,这样才不会有闪烁的情况出现.如果上面步骤完成顺利的话,大概可以达到如下效果:

由于CSGO只有敌人暴露位置,或者距离敌人足够近的时候,才会将其对象写入,且当其死亡或者再次隐藏位置一段时间,他的信息会保留直至下次暴露位置或者刷新状态.所以需要做足够的判断,不能达到其它游戏那种全局透视的效果.接下来,你需要做进一步的判断与调整,比如判断开镜大小来调整方框大小(因为距离位置没变但是视角矩阵变了),然后来判断停留很久没有状态刷新的人物(当然要区分老六).

由于我是不玩CSGO的,所以即使有透视打电脑也是很菜hhh.

演示视频:https://www.bilibili.com/video/av88312403/

最后附上GayHub地址:

https://github.com/SmRiley/CSGO_X/

参考

B站UP:我的小任_真 以CSGO剖析外挂原理相关视频



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有