精易论坛

标题: FPS游戏子弹追踪(静默自瞄)原理分析(转) [打印本页]

作者: 肥蛋仔    时间: 2020-9-20 21:35
标题: FPS游戏子弹追踪(静默自瞄)原理分析(转)
前言:
    想必正在电脑前看此帖的你,已经非常了解了FPS游戏是外挂重灾区。其中最臭名昭著的就属透视自瞄了。今天我们大概来分析一下众多自瞄类中的静默自瞄实现原理,希望能给热爱学习的你提供一些帮助。同时也希望游戏厂商的反外挂能力愈来愈强!
测试图:

简介:
普通自瞄、外部自瞄:
    读取敌人游戏内坐标XYZ,通过D3DXVec3Project等函数计算出敌人在屏幕上的坐标XY,然后使用mouse_event鼠标移动函数来驱动鼠标移动到敌人所在位置。这种自瞄一般游戏无检测。反外挂做的比较好的游戏厂商可能会对mouse_event进行hook检测等。再有就是行为检测(例如鼠标移动很平滑,在一条线上再或者就是没发子弹都打在同一个位置)(下来补发一份
mouse_event学习自瞄模板
内存自瞄:
    一样是通过敌人坐标和自己坐标计算出准心的角度,然后把角度写入鼠标X、Y的内存地址即可实现内存自瞄(表现为准心瞬移到敌人的身体上),这种自瞄检测移动前后位置一对比就能知道是否是外挂了。例如:我的鼠标准心从敌人A经过敌人B转到到敌人C的身上,那么就算我鼠标移动的再快,那么准心也是会经过敌人B的身体的,而内存自瞄不会,内存自瞄是准心直接瞬移到敌人C上,这种自瞄非常明显,检测起来容易。

子弹追踪:
    通过修改子弹弹道、敌人受打击的面积、敌人被打击的CALL等来实现子弹追踪,这种子弹追踪比较变态。上面的普通自瞄、内存自瞄以及子弹追踪,我们放到下期再来讲解,本期主讲静默自瞄;

静默自瞄:
    这个怎么说呢,就是长得跟子弹跟踪一样,实际的作用却跟内存自瞄一样。不多解释,下面开始分析,然后自行理解吧。

环境:
    请准备好 fps游戏以及 内存修改器"cheat engine" 这里不提供下载地址了,百度很多,自行搜索。

实战:首先我们做个假设:射击是否击中敌人是依靠判断准心的位置是不是在敌人的身体上。如果假设成立,那么开枪时肯定是要获取准心的位置的,这个时候我们只要用CE查找是什么访问了准心地址(其实准心位置跟鼠标位置是一样的)。如下图,找到一些相关正在访问准心位置的汇编指令,这时我们开始进行测试!

1.找出鼠标X,Y也就是准心的地址;(这里搜索方法估计大家应该都会,不做复述)
2.找出是哪些指令访问了准心地址;


3.因为之前分析过,实测这条命令nop后,不管你的鼠标如何上下移动,子弹始终都是打在一条横线上,也就是Y坐标0,因为准心赋值操作被我们nop掉了,所以子弹获取不到准心的位置就直接默认为0了,所以子弹只会左右散开,不会上下散开;如果将访问准心X的那条命令也Nop掉的话,你会发现你不管如何晃动鼠标,就算你的鼠标准心朝向天花板或者地板,那么子弹都是打在一个点上。

4.然后我们可以将敌人所在的位置计算成鼠标的XY并通过hook或者修改fadd dword ptr [esi+000005C4]命令的方式实现,不管如何晃动鼠标,那么子弹都会打在我们写入的XY的位置。


检测建议:通过针对这条命令fadd dword ptr [esi+000005C4]附近进行CRC代码检测,以及嵌套多层CRC。再者对多个鼠标X和鼠标Y的变量地址进行校验,对比X和Y的值是否一致等。只要我们明白了这种自瞄实现的原理,那么即可以实现各种各样的检测,当然还得注意不要影响游戏性能,例如可以在敌人被击杀后在触发检测,不要在开枪时检测。前者与后者的触发频率不同。

声明:分享此帖是为了让大家可以更好的理解FPS游戏的特色,以及针对FPS游戏安全做出调整,希望大家可以用在正路,切勿走歪路!

本帖面向学习人群为有编程基础的,对游戏安全方面有兴趣的。


作者: 小志威武    时间: 2020-9-20 22:31
牛逼学到了
作者: Controlself    时间: 2020-9-20 23:56
看不太懂,就当拓展一下新知识了
作者: fyh505099    时间: 2020-9-21 00:11
好牛逼  支持支持!喜欢HOOK 可惜不会
作者: simpledas    时间: 2020-9-21 00:48
TX靠抓辅助赚钱呢
作者: kai741101314    时间: 2020-9-21 01:51
楼主 请加我QQ  有问题请教
作者: 意思    时间: 2020-9-21 09:18
牛批牛批 没的说
作者: PIV]Sㄅ    时间: 2020-9-21 13:06
大佬是牛B但是看不懂
作者: wuqingg    时间: 2020-9-21 13:37
TX不请你也算可惜了
作者: wjswzj0    时间: 2020-9-21 13:37
感谢分享,很给力!~
作者: kuangshen1    时间: 2020-9-21 20:07
卧槽大神膜拜
作者: 491363060    时间: 2020-9-21 23:13
内容是好的,但是,,发错地方了
作者: xklm    时间: 2020-9-23 00:49
简单来说,视角静默就是在自己视角不转动的情况下实现自瞄,找xy视角地址,写字节为0,或者nop掉就行了
作者: 空竹    时间: 2020-10-2 11:50
好多年前的教程
作者: 402134891    时间: 2020-10-5 16:46
厉害老铁
作者: 华立小萌神    时间: 2020-10-10 10:33
感觉之前在哪看过
作者: 华立小萌神    时间: 2020-11-22 21:40
我怎么感觉在哪看过
作者: gc2517984    时间: 2021-8-13 23:22
楼主能不能继续转?下一集没有了?
作者: file1314    时间: 2021-10-26 19:51
6666666看看
作者: FWS569    时间: 2022-4-5 00:53
子弹追踪和静默自瞄压根不是一个东西
作者: boke1113    时间: 2022-11-3 10:50
666666666666666666
作者: 海南丿阿神    时间: 2022-11-13 18:11
有编程基础的,对游戏安全方面有兴趣
作者: tyfy120    时间: 2023-2-23 10:26

好多年前的教程
作者: 饭团蛛丝马迹    时间: 2023-4-22 18:39
不错不错,有收获
作者: LUOXINGWANG    时间: 2023-5-21 19:55
0000000000000
作者: dj999    时间: 2024-6-21 08:05
666666666666666666
作者: Z8D8C8    时间: 2025-1-29 00:38
好厉害,看看怎么实现
作者: 阿东adong    时间: 2025-3-2 17:35
666
66666666666666666666666666666666




欢迎光临 精易论坛 (https://125.confly.eu.org/) Powered by Discuz! X3.4