首页
论坛
专栏
课程

[推荐]FPS游戏自瞄爆头原理

gslab实验室 2018-2-5 15:19 4442
众所周知只要是射击类FPS类游戏都有自瞄爆头的功能有的人会说,既然大家都知道,游戏公司也必然知道那么为什么不把这个BUG修复掉呢实际上并不是不修复,而是这个根本不算是BUG

为什么这么说呢?原因很简单,手动可以射击,外挂也可以射击,手动射击是受肉眼影响准确度的,而外挂辅助射击,是经过敌我坐标精确射击的,并不是什么BUG只是电脑计算比肉眼准确。那么具体原理是怎么实现的呢这里以<逆战>为例子

我们有射击准星,只要把准星和敌人的质点完全重合即可精准射击把准星往敌人质点上移一定距离就是爆头的位置,当然如果敌人是蹲着的,这个距离是有所变化的,那么我们还需要通过CE来回搜索人物状态,来区分敌人是哪一种状态,来计算质点上移的距离,来确保100%爆头。
逆战中也有骨骼射击爆头的,这个需要找到敌人骨骼的数据,就是不再只是分析敌人坐标了,而是找到敌人每一块骨骼模型的位置,搜索是比较复杂的,这样就不需要计算什么位置爆头了,而是直接射击到头部骨骼即可怎么让准星完全和敌人质点重合呢?
第一步,CE扫描出准星的坐标,并且跟踪出其偏移表达式,这个过程不是容易的,但是也没有特殊,完全的正常逆向追踪寄存器而已
第二步,计算出敌人的坐标位置
第三步,把敌人的坐标位置填写到准星坐标地址中计算的过程中涉及到2个关键问题一个是人物坐标和屏幕坐标的转换,这个一般游戏内部有计算函数,但是能够完全逆向出来自己实现是最好的,也就是所谓的偷功能第二个就是角度的计算,需要一定的数学知识逆战这个游戏里是用的航空角度计算方法,俯冲角,摇摆角和旋转角其实说起来并不难,俯冲角  就是你枪抬高还是放低,摇摆角就是你水平位置的摆动角度,至于旋转角完全可以忽略,你不需要大头朝下射击吧,,,,
,当然你如果修改也有可能实现畸形人设计,像之前吃鸡游戏里的畸形一样。
有了这些,计算出准确的坐标以供填写坐标便不再是问题了FPS游戏自瞄爆头反外挂原理既然知道了


实现的原理那么反外挂也就是针对实现的原理而做的
第一,对坐标进行复杂的加密等严格的处理,这可以阻拦一些逆向新手,但是不会起到太大的作用,但是这不是根本目的,对于逆向人员如果不能完全逆向出算法,自己实现的话,就要调用游戏中自带的加解密算法,也就是调CALL,这样就可以在CALL的内部对其进行调用检测以及堆栈检测等等。
第二,既然是写入的地址,那么内存地址数值变化必然不是均匀的,也是非连续的,这对于人手动是不可能的,那么就可以针对这个特性进行检测处理第三,既然要写入到准星坐标内,那么就有写内存的操作,对该地址进行数据检测



文章已获原作者——公众号《通化程序员》同意转载,如需转载请联系原作者
*转载请注明来自游戏安全实验室(GSLAB.QQ.COM)

快讯:看雪智能设备漏洞挖掘公开课招生中!

最新回复 (6)
taizhong 2018-2-13 03:28
2
顶个tx安全实验室的帽子,理直气壮的卖外挂教程?
阿東 2018-2-13 09:13
3
顶个tx安全实验室的帽子,我想问招不招扫地的..
毒药与世无争 2018-2-13 22:57
4
maomaolk 2018-2-20 10:44
5
Mark
manyhelp 2018-2-24 14:59
6
理直气壮
一只大笨熊 2018-9-14 20:10
7
你确定 你这样可以 枪枪爆头= +!    是取到敌人  骨骼坐标 通常是头部骨骼 这样 敌人蹲下或者  跳起来  头部 骨骼坐标是变化的    然后取自己的坐标 通过三角函数来算出  角度  写到游戏的内存中      如果你要计算出 敌人在你屏幕的什么位置 (二维坐标)    来实现前台  鼠标 mov_mouse  或者  鼠标_移动   可以通过三角函数来算但是不是很准确  可以通过  矩阵来算  当然方框透视也是这样的
返回