检测进程内存是否被操纵

Detect if process memory being manipulated?

本文关键字:操纵 是否 内存 进程 检测      更新时间:2023-10-16

我想知道如何监控另一个应用程序的进程内存,看看它是否被第三方操纵。例如在特定进程上调用ReadProcessMemory, WriteProcessMemory。例如,nProtect GameGuard可以检测游戏进程内存何时被操纵。

真正的答案可能很长,所以这里有一些简短的提示给你。

首先,你需要一些系统范围的钩子来连接这些函数,以及它们的底层构建块(Zw…, Nt……,甚至系统调用)。这应该由内核驱动程序完成。

第二,您需要一种方法来安装这个驱动程序,并随意删除它。这可以通过一个服务来完成。

第三,你需要一种在内核驱动程序和游戏之间进行通信的方法。在初始化阶段,游戏将安装驱动程序,并告诉它游戏正在运行的进程ID。然后,驱动程序将阻止其他进程对该特定进程的所有访问。

第四,你需要维护一个白名单。杀毒软件之类的应用程序确实需要窥探你的游戏。您的内核驱动程序必须允许通过这些检查。这就是nProtect和类似技术失败的地方。它们只是不断地与其他软件发生冲突。

第五,也许是时候考虑其他方法来保护你的游戏了。David Aucsmith的论文"防篡改软件:一种实现"值得一读。