我学习逆向工程2年多了,调试过很多软件和游戏。 前段时间我遇到了麻烦。 我看到盒友讨论最多的就是“插件”。 我也想谈谈我的经历。 我会尽力谈论它。 由于水平有限,有不当之处还请盒友批评指正。
1、插件原理及对策
由于FPS追求快速响应以满足游戏体验,很多关键数据都存储在本地,因此“外挂”程序可以逆向查找这些数据的内存地址(即基地址和偏移量),从而达到修改FPS的目的。记忆。 。
而开发者在编写游戏程序时,会将这些数据声明为结构体(),比如角色属性。 这是一个结构体,里面包含了血量、坐标、速度等,该结构体的指针就是基地址。 通过基地址和偏移量相加就可以轻松得到数量、坐标等数据,而且基地址在程序编译的那一刻就已经固定了。 无论在哪台计算机上运行它都不会改变。 只能重新编译了。 变化时有发生,所以一旦游戏更新,“秘籍”也得更新。 一旦找到了存储数据的地址,就可以通过对该地址进行读写操作来改变游戏内容,比如加速、锁血等。 透视原理也很简单。 找到角色坐标的地址后,就可以使用外部绘图(常见的d3d9、dx11、imgui等)进行屏幕坐标转换,实现游戏屏幕上的框架或骨骼的透视效果。 当然,还有一种内部dll注入的方法。
以上都是在游戏没有保护的情况下很容易实现的,但是目前大多数网络游戏,包括绝地求生,都有很多游戏保护。
①驱动保护,这是反调试保护,它会导致很多逆向工程软件无法正常附加游戏,找不到数据。 当然,现在有专门的游戏驱动保护,可以轻松调试游戏;
②第三方反作弊。 目前比较著名的第三方反作弊系统有BE、EAC、TP等,绝地求生采用的是BE反作弊系统,主动攻击性较强(当然与国内TP相比,太弱了) ,BE可以有效防止未授权程序非法读取游戏内存并在关键代码段钩子处检测到。 因此插件会通过驱动进入R0层读写数据,与插件程序进行通信。 BE 还区分版本。 绝地求生使用普通版本,逃离塔科夫使用BE高级定制版本。 因此,《绝地求生》的BE很容易被绕过;
③功能检测,这个是对游戏自身代码的检测,比如验证数据是否被改变,是否有第三方窗口覆盖等。由于绝地求生的BE比较容易绕过,所以大部分ban都是目前已被开发商禁止。
当然,在实际工作中,技术对抗远没有上面所说的那么简单。 技术对抗也永无休止。 作弊与反作弊的斗争可能会因硬件升级而消失,但在可预见的将来,作弊手段无法从技术上从根本上消除。
建议:①增加游戏成本,增加作弊成本;
② 使用更高级别的第三方反作弊系统,例如EAC或TP;
③ 不时远程更新游戏,完善数据加密方式。 目前,蓝洞的前两点并不容易实现,因为这会影响它的收入。 从经济角度来看,98的价格非常合理,很吸引人购买。 至于第三点,我想说,只要勤奋,就不会有什么大问题。
2. 如何判断玩家是否使用过作弊软件
据我所知,目前绝地求生的插件类型有很多种。 基本的是透视自瞄,比较变态的是跟踪穿墙飞车,稍微轻一点的有热透视、无后座、分屏雷达、压枪等。 芯片等。识别这些穿墙追踪的变态插件很容易,但是透视自瞄准呢? 如果别人的演技更好,你怎么知道?
① 自我瞄准最大的特点是枪跟踪。 自我瞄准是通过API函数mouse-event来实现的。 枪的追踪非常准确。 鼠标中心的移动是根据屏幕像素来计算的,就好像粘在敌人身上一样,所以除了一些职业玩家或者确实是大师之外,普通人确实很难做到。 即使是职业选手也不可能每次都失手,而自瞄则可以保证每次都不失手。
该怎么办? 游戏检测枪械中的钩子、角色数据段和调用CALL的代码段,隐藏链表,禁止作弊者。 还可以像现在一样添加手动检测。 说是人工检测,其实是人为操作异常检测,利用系统功能进行劫持。 鼠标的运动轨迹很有规律。 如果发现大量非常有规律的鼠标移动数据,基本可以判断为自瞄。
②透视,包括绘图透视、分屏雷达、热透视。 除非他不演戏,否则演戏的时候真的很难发现。 目前我还不知道如何发现游戏行为中的纯视角玩家。
该怎么办? 绘制透视图其实很简单,扫描窗口句柄和特征或者截图检测,实现角色坐标的多层加密。 分屏雷达怎么样? 在数据包中添加一个心跳包,它是一个不规则的心跳包。 如果发现数据包被劫持,则判定存在分屏操作。
③压枪芯片,这个是讨论最多的一种。 压枪有两种类型。 一种是通过改装带有重定向驱动器的pak实现的后座无座型。 特点非常明显,上下幅度最小,左右无偏移。 无论什么情况,各种放大倍数的镜头几乎都是一分一毫。 当然,没有后座,目前很难发现,也容易封号; 另一种是具有图像和颜色识别功能并与微控制器相结合的硬件压枪。 常见的有飞来、易键盘和鼠标等,压枪效果不是很理想,但稳定。
压枪宏芯片怎么办? 目前没有好的解决方案,不是出于技术原因,而是出于法律原因。 国外游戏公司虽然会对个人电脑流程进行扫描,但并不彻底。 可以像企鹅工厂一样,在内核层进行扫描。 如果发现异常进程,请立即上传至服务器。 。
我只是因为时间原因才写这篇文章。 如果你有兴趣的话,有时间的话我再多聊聊。 游戏本身很好玩,但是作弊真的很无聊。 另外,BE和开发者绝对不会误封号,也不会封号所谓的其他乱七八糟的软件(因为如果不是专门用于绝地求生的软件,是不会获取游戏进程和句柄的) 。 只要你的账号一直被你使用,只要出现BE或者开发者,就一定是你作弊或者用这个账号作弊的。
最后绝地求生无后座,欢迎大家和我一起组队。 我是个坏人,但我很有趣。
有谁知道鼠标宏设置在绝地求生:大逃杀中是否有用? 今天小编给大家带来了绝地求生中鼠标宏概念的科普。 让我们来看看!
下载地址:《PUBG:大逃杀》
鼠标宏观概念科普
计算机中的宏可以理解为一系列命令的启动按钮。
目前游戏行业使用两种类型的宏:鼠标宏和键盘宏。 两者本质上没有区别。
功能:使用一系列有序按键来激活一个按键。 比如LOL中,盲僧Q、Q、眼睛、W、眼睛、R,这一系列动作用于一个随机按钮,按下时这一系列动作就会自动完成。
在魔兽世界、剑网3等键盘休闲游戏中,宏是简化繁琐操作的好工具。 这些游戏甚至有自己的游戏编程宏。
在键盘竞技游戏中,宏可以说是作弊行为,因为它们将原本反映玩家竞技水平的操作一键显示出来,破坏了键盘竞技的平衡,比如LOL、DNF等。
在 FPS(射击)游戏中,宏的作用微乎其微。 为什么? 因为在FPS游戏中,影响最大的因素就是后坐力、瞄准、听觉、反应。 听觉和反应是人为因素,但后坐力和瞄准呢? 所以请注意,如果有玩家说:我是高级宏绝地求生无后座,我可以做到无后坐力,目标也不会变大。 请务必举报他,因为它是插件,不是宏。
目前还没有可以在FPS游戏中自动压枪、无后坐力、无心跳的宏。
那么宏在 FPS 中有用吗? 答案是肯定的,关键位置修改,以及如何让你的动作看起来像跳舞一样,而你专注于压枪和射击。 当然是你负责拍摄,而洪则负责跳舞。