如何检测当前进程是否被暂停?

时间:2016-08-08 04:45:47

标签: c# multithreading process suspend

你好我正在为一个游戏制作一个启动器/反热,昨天我发现用户可以简单地用Process Explorer挂起反热线程并注入hack,然后清理用过的dll然后取消挂起并进行黑客攻击。 我试图找到任何方法如何检测它,但只发现如何暂停一个进程没有关于如何检测它我没有看过应用程序和进程事件,但没有找到任何可用的.. 现在我在反热线程中添加了一个“计时器”,如果没有进程/模块扫描3秒就会关闭游戏,但是当游戏加载时,它需要几乎100%的CPU一段时间以及我的约2秒,但在一些较旧的处理器上,没有扫描可能长达10秒,所以它根本不是一个选项..

此事件是否记录在任何地方?或者我该怎么办?我知道我可以找到进程或线程状态,但不能在我的所有线程都被挂起时

1 个答案:

答案 0 :(得分:1)

没有任何好的选择......但有3种可能性可行

  1. 创建2个流程

    • 首先是包含所有代码的主进程 将扫描第二个过程
    • 第二个进程将扫描Main 过程(如@paxdiablo说)

    如何绕过它?一次选择两个进程并暂停它们。

    有些用户会尝试一次选择2个进程。

  2. 搜索已打开的进程,如果Process Explorer正在运行,则将其终止

    如何绕过?使用具有暂停选项

    的其他任务管理器

    缺点?您可以通过Anti-Virus检测AntiCheat-Launcher。

  3. 将您的代码嵌入游戏代码中(例如修改)。

    我认为这是最好的选择......但是如果这个游戏不是用C#编写的(例如Minecraft)那么你必须学习一门新语言。