如果有人对在线FPS游戏中的目标机器人有任何经验/知识,比如Counter-Strike,我很好奇.我很好奇,想了解更多关于光标如何知道如何锁定对方玩家的信息.显然,如果我想作弊,我可以下载一些作弊,所以这更像是一个学习的东西.什么都参与其中?他们是否挂钩用户鼠标/键盘以将光标移动到正确的位置?作弊应用程序如何知道准确指向光标的位置?作弊应用程序必须能够访问游戏应用程序中的数据,这是如何实现的?
编辑:对于sids回答,人们如何获取那些已知的内存位置来从中获取数据?EDIT2:假设我使用调试程序或其他方法在位置0xbbbbbbbb找到了我想要的一些值.我现在如何访问和使用存储在应用程序内该位置的数据,因为我没有拥有该内存,游戏就是这样.或者我现在可以访问它,因为我注入了进程并且可以使用memcpy或其他东西复制该地址的内存?
其他人有什么要补充的吗?尽可能多地了解这一点!
Ron*_*lic 70
游戏记忆中的某个位置是每个玩家的X,Y和Z位置.游戏需要知道这些信息,因此它知道在哪里渲染玩家的模型等等(尽管你可以通过仅向玩家发送玩家信息来限制游戏客户可以知道多少).
一个目标机器人可以扫描已知的存储位置以获取此信息并将其读出,使其可以访问两个位置 - 玩家和敌人.减去两个位置(作为矢量)给出两者之间的矢量,并且从那里简单地计算从玩家的当前外观矢量到期望角度矢量的角度.
通过直接向游戏发送输入(这是微不足道的)并使用一些常量进行微调,您可以让它自动快速瞄准.这个过程中最难的部分是确定位置存储在内存中的位置,并调整任何动态数据结构,让玩家在你周围移动(例如视锥体剔除).
注意,当使用地址随机化时,这些更难写,尽管并非不可能.
编辑:如果您想知道程序如何访问其他程序内存,那么典型的方法是通过DLL注入.
编辑:由于这仍然有一些点击,有更多的方法,目标机器人现在更受欢迎; 即直接覆盖(或就地修补)Direct3D或OpenGL DLL并检查函数调用以绘制几何图形并插入自己的几何图形(用于墙壁黑客)或获取目标机器人的模型位置.
小智 13
有趣的问题 - 不完全是你的答案,但我记得在反恐精英的早期人们过去常常用拙劣的一个替换他们的opengl32.dll,这会使多边形变得透明,这样他们就能透过墙壁看到.
黑客攻击得到改善,变得更加烦人,人们变得更有创意.现在Valve/Steam似乎在去除它们方面做得很好.如果您打算玩这些东西,只需要一点警告,Steam会扫描"黑客",如果找到任何东西,他们会永久禁止你
Dre*_*rew 10
很多"目标机器人"根本不是瞄准机器人,而是触发机器人.它们是后台进程,等待您的标线实际超过目标并自动触发.这可以通过多种不同的方式实现,但是许多游戏通过在目标覆盖它们时显示某人的名字或者触发机器人可以指向的内存中的某些其他数据来轻松实现.
通过这种方式,您可以通过向目标挥动鼠标进行游戏,只要将鼠标放在目标上,它就会触发一次射击而无需实际射击.
他们仍然必须能够在内存中找到那种东西,并且具有与"Aim bot"相同的问题.
过去使用的另一种方法是对网络数据包格式化进行反向工程.对数据包流的中间人攻击(可以在游戏运行的同一系统上完成)可以提供玩家位置和其他有用的相关信息.伪造的包可以被发送到服务器以移动玩家,射击或根据游戏做各种各样的事情.
编辑:我知道这个离题,抱歉但我认为这会帮助提问者。
黑客行业还没有尝试过但我一直在尝试的东西是套接字劫持。这听起来可能比实际情况要多得多,但基本上它使用 WinPCap 驱动程序通过 TCP(套接字)连接到进程的 Internet 连接,甚至没有接近进程的偏移量。
然后,您只需了解 TCP 信号的传输方式并将它们存储到哈希表或多人(数据包)类中。然后在检索信息并将信息覆盖在窗口上(未挂钩)后,只需在窗口游戏的屏幕上放置透明标签和 2D 框即可。
我一直在《使命召唤 4》上对其进行测试,我已经通过 TCP 获取了 4 个玩家的位置,但正如 Ron Warholic 所说:如果游戏开发人员编写了一个游戏服务器,所有的黑客方法都将不起作用当当前用户应该看到播放器时输出播放器。
并且在切断该玩家位置的传输后,对于 XYZ 和玩家将不再被存储,也不会在那里渲染以阻止墙黑客。瞄准机器人会在某种程度上停止工作,但效率不高。所以无论如何,如果你正在考虑制作一个wallhack,不要进入这个过程,试着学习WinPCap并连接到互联网信号。至于游戏,不要搜索互联网传输的进程列表。如果您需要一个利用此功能的示例,请搜索 Rust Radar,该雷达会在地图上输出玩家的位置,并输出您周围的其他玩家,这些信息通过 Internet 传输 TCP 发送且未连接到游戏中。