我玩在线游戏《魔兽世界》,这是由自动机器人所困扰的,它们会检查游戏分配的内存,以读取游戏/玩家/世界状态信息,这些信息用于机械地玩游戏。据我所知,它们有时有时也直接写到游戏的内存中,而更复杂的则不会。
该游戏的供应商暴雪娱乐公司有一个名为Warden的单独应用程序,该应用程序应该能够检测并禁用此类黑客和作弊行为,但并不能捕获所有内容。
是否有可能制作一个Windows应用程序,使您成为唯一可以将已读内容读入内存的应用程序?
在运行于数百万台计算机上的大型C++应用程序中实现实用程序是否可行?
最佳答案
不能做当涉及到内存访问时,该应用程序受操作系统的支配。谁控制操作系统将控制对内存的访问。用户具有对整个计算机的完全访问权限,因此他们始终可以使用设置为允许他们从其他进程的内存空间读取的特权来启动进程。
这是假设一个“常规”环境-今天的硬件,以及一个多用途OS,该OS允许同时运行多个程序,等等。
以这种方式思考-即使是开发人员完全控制硬件,使用数字签名以及所有可能的技巧(例如XBox或PlayStation)的单一用途机器也无法设法将第三方代码拒之门外。对于多功能操作系统,难度要大10倍。
关于c++ - 在网络游戏中作弊: Is it possible to prevent one Win32 process from inspecting/manipulating another's memory?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/949064/