首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >我需要通过挂钩一些windows API来防止一些黑客修改游戏内存。

我需要通过挂钩一些windows API来防止一些黑客修改游戏内存。
EN

Stack Overflow用户
提问于 2020-11-27 07:16:42
回答 1查看 1K关注 0票数 0

看到简单的钩子示例,我为openProcessMemory创建了一个钩子,以防止一些游戏被黑客攻击。我面临的情况是,一些黑客做的太快,我不能及时注射。例如:进程A(黑客)进程B(游戏)过程C(反欺骗)

A的进程打开游戏的进程内存,将所需的数据写入其中,自闭,不给C进程时间,注入A,用于钩子openProcessMemory捕捉黑客试图打开游戏进程的瞬间。这一过程工作良好,而黑客等待用户的输入,因为,给时间的反欺骗做他的工作。

因此,这里有一些问题:是否有一种方法,通过c# easy钩子,知道什么时候游戏内存将被黑客修改?当前连接openProcessMemory (opm)、writeProcessMemory (wpm)或readProcessMemory (rpm),但有描述的问题。

当一些相关的方法(opm、rpm或wpm)在目标过程中执行某些操作时,该目标进程是否能够在相关方法的基础上激活另一个winApi函数?

总结:我在用喷射器的方法。当反欺骗有时间钩住它的时候,它就起作用了。我想在游戏过程中制造钩子,这让我进入了注射器的过程。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-02-05 04:54:21

我建议不要连接你不拥有的过程,这不是你的问题的正确解决方案。

正确的解决方案是提供一个驱动程序,该驱动程序使用ObRegisterCallbacks阻止对进程的访问。每次请求进程句柄时,都使用ObRegisterCallbacks创建回调。当OpenProcess()是调用时,当请求游戏/反欺骗进程的句柄时,您将取消句柄权限(读和写)。这是您可以创建的最有效的防欺骗解决方案,它将立即阻止99%的黑客,他们甚至无法附加欺骗引擎。虽然让驱动程序听起来可能很复杂,但是这个相对来说是直接的,需要有限的编辑。

这是Microsoft示例源代码

有没有一种方法,通过c#易用钩子,知道什么时候游戏内存将被修改为黑客?当前连接openProcessMemory (opm)、writeProcessMemory (wpm)或readProcessMemory (rpm),但有描述的问题。

您无法从您自己的进程中检测到ReadProcessMemory或WriteProcessMemory。

您可以在每个进程(我不推荐)中全局地将它们连接起来,并通过针对您自己的进程的句柄进行筛选,如果它们确实针对您的流程,则返回。

或者,您可以遍历系统上所有打开的进程句柄,查找那些对您的游戏过程具有写权限的进程,并终止这些进程。人们通常认为这在用户模式下是不可能的,但它是源代码,它向您展示了如何实现可用的这里

我在接注射器的过程。当反欺骗有时间钩住它的时候,它就起作用了。我想在游戏过程中制造钩子,这让我进入了注射器的过程。

采用导向黑客喷射器的注入器方法:

您可以挂钩LoadLibrary,LdrLoadDLL,LdrpLoadDLL在您的游戏过程中停止注入,但您将有一个困难的时间阻塞手动映射,因为它没有使用正常的DLL加载API。您可以将VirtualAllocate()和VirtualProtect()挂钩以检测手动映射,但这需要大量定制。直接使用Syscalls可以绕过这个问题。

所有的用户模式保护都很容易被绕过,这就是为什么我推荐使用ObRegisterCallbacks驱动程序。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/65033375

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档