开启辅助访问 切换到宽版

精易论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

用微信号发送消息登录论坛

新人指南 邀请好友注册 - 我关注人的新帖 教你赚取精币 - 每日签到


求职/招聘- 论坛接单- 开发者大厅

论坛版规 总版规 - 建议/投诉 - 应聘版主 - 精华帖总集 积分说明 - 禁言标准 - 有奖举报

查看: 29232|回复: 25
收起左侧

[易语言纯源码] FPS游戏子弹追踪(静默自瞄)原理分析(转)

[复制链接]
发表于 2020-9-20 21:35:55 | 显示全部楼层 |阅读模式   甘肃省天水市
分享源码
界面截图: -
是否带模块: 纯源码
备注说明: -
前言:
    想必正在电脑前看此帖的你,已经非常了解了FPS游戏是外挂重灾区。其中最臭名昭著的就属透视自瞄了。今天我们大概来分析一下众多自瞄类中的静默自瞄实现原理,希望能给热爱学习的你提供一些帮助。同时也希望游戏厂商的反外挂能力愈来愈强!
测试图:
151521a7krkhz87c7yzr75.gif
简介:
普通自瞄、外部自瞄:
    读取敌人游戏内坐标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.找出是哪些指令访问了准心地址;

142600nmz6ssrbzfdibmoz.png
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游戏安全做出调整,希望大家可以用在正路,切勿走歪路!

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

评分

参与人数 4好评 +4 精币 +6 收起 理由
qwejjk + 1 + 2 新技能已get√
kuangshen1 + 1 + 2 给力老铁
熬夜 + 1 感谢分享,很给力!~
司徒西 + 1 + 2 精彩文章希望继续努力

查看全部评分


结帖率:100% (2/2)

签到天数: 3 天

发表于 2020-9-20 22:31:51 | 显示全部楼层   安徽省滁州市
牛逼学到了
回复 支持 反对

使用道具 举报

结帖率:88% (60/68)
发表于 2020-9-20 23:56:30 | 显示全部楼层   广东省揭阳市
看不太懂,就当拓展一下新知识了
回复 支持 反对

使用道具 举报

签到天数: 20 天

发表于 2020-9-21 00:11:08 | 显示全部楼层   云南省昆明市
好牛逼  支持支持!喜欢HOOK 可惜不会
回复 支持 反对

使用道具 举报

结帖率:100% (1/1)
发表于 2020-9-21 00:48:48 | 显示全部楼层   海南省海口市
TX靠抓辅助赚钱呢
回复 支持 反对

使用道具 举报

签到天数: 20 天

发表于 2020-9-21 01:51:17 | 显示全部楼层   安徽省合肥市
楼主 请加我QQ  有问题请教
回复 支持 反对

使用道具 举报

发表于 2020-9-21 09:18:05 | 显示全部楼层   广东省珠海市
牛批牛批 没的说
回复 支持 反对

使用道具 举报

结帖率:0% (0/1)
发表于 2020-9-21 13:06:57 | 显示全部楼层   广西壮族自治区梧州市
大佬是牛B但是看不懂
回复 支持 反对

使用道具 举报

结帖率:80% (57/71)

签到天数: 19 天

发表于 2020-9-21 13:37:36 | 显示全部楼层   广东省深圳市
TX不请你也算可惜了
回复 支持 反对

使用道具 举报

结帖率:100% (7/7)

签到天数: 16 天

发表于 2020-9-21 13:37:47 | 显示全部楼层   湖北省武汉市
感谢分享,很给力!~
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则 致发广告者

发布主题 收藏帖子 返回列表

sitemap| 易语言源码| 易语言教程| 易语言论坛| 易语言模块| 手机版| 广告投放| 精易论坛
拒绝任何人以任何形式在本论坛发表与中华人民共和国法律相抵触的言论,本站内容均为会员发表,并不代表精易立场!
论坛帖子内容仅用于技术交流学习和研究的目的,严禁用于非法目的,否则造成一切后果自负!如帖子内容侵害到你的权益,请联系我们!
防范网络诈骗,远离网络犯罪 违法和不良信息举报电话0663-3422125,QQ: 793400750,邮箱:wp@125.la
Powered by Discuz! X3.4 揭阳市揭东区精易科技有限公司 ( 粤ICP备12094385号-1) 粤公网安备 44522102000125 增值电信业务经营许可证 粤B2-20192173

快速回复 返回顶部 返回列表