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