擅长:python、mysql、java
<p>你的问题问一件事(是一个程序“正在运行”),而你的代码检查另一件事(你能成功地打开一个文件来读取它吗),你的错误消息和你的问题文本正在讨论另一件事(是一个给定的可执行文件“已安装”)。在</p>
<p>在你理解这些不同问题之间的区别之前,你不可能编写一个程序来做你想做的事情(不管实际上是什么)。在</p>
<p>打开文件会告诉您给定位置是否存在具有允许您访问该文件的权限的给定名称的文件。当你的程序/游戏正在运行时,这对于阻止“作弊”工具的使用是没有用的。在</p>
<p>通过检查路径查看作弊.exe“程序就在上面的任何地方。然而,那将是相当蹩脚的。重新命名程序并将其保存在某个不在路径上的目录中的智能和教育门槛非常低。我估计,平均10岁的孩子在微软Windows上玩游戏,大概能在5分钟或更少的时间内解决这个难题(破解这个策略)(“成就解锁!”)。在</p>
<p>像“魔兽世界”这样的程序有相当复杂的“守护者”技术,它们试图阻止程序(如“滑翔机”或“暗影机器人”)在魔兽世界打开时运行。当然,这样的程序可以安装在任何目录下,以任何名称安装,并且可以在运行时在进程列表中重命名自己。这些“作弊”程序使用的操作系统工具与调试器基本相同(MacOSX下的ptrace接口和MS Windows下的任何模拟接口)。这些允许像gdb和strace这样的程序“窥视”另一个程序的地址空间并“戳”出其中的值。因此,他们通过窥视程序存储有关用户界面的某些模型信息的位置(例如,基本上是目标所在的位置),并将事件插入操作系统通常放置键盘和鼠标事件的缓冲区(从而模拟用户交互并使其自动化)。在</p>
<p>可以想象,“管理员”可以尝试扫描进程表中的某些签名(类似于反病毒),甚至可以尝试使用类似的“调试”接口来查找冗长程序的痕迹。在</p>
<p>然而,最终这不是一款没有硬件支持的游戏(比如臭名昭著的TPM可信平台模块),而目前在商品消费市场(例如,通用PC和Mac)中,游戏作者无法获得硬件的支持。在</p>
<p>但是嘿,试着玩得开心。在</p>