繁体   English   中英

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

[英]How to detect if current process is suspended?

您好,我正在为游戏制作启动器/防盗器,昨天我发现用户可以使用Process Explorer来简单地挂起anticheat线程并注入hack,然后清理使用过的dll,然后将其取消悬浮并进行hack。 我试图找到任何方法来检测它,但是只发现了如何暂停一个进程,而没有找到它的检测方法。我也查看了Application和Process事件,但是没有发现任何可用的方法。现在,我在其中添加了一个“计时器”如果3秒钟内没有进程/模块扫描,将关闭游戏的anicheat线程,但是当游戏加载时,它花费了将近100%的CPU时间(对于我来说大约是2秒),但是在某些较旧的处理器上没有扫描可能长达10秒,因此根本无法选择。

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

没有任何好的选择可以做...但是有3种可能可行

  1. 创建2个过程

    • 第一个是包含所有代码的主进程,将扫描第二个进程
    • 第二个进程将扫描主进程(例如@paxdiablo说)

    如何绕过呢? 一次选择两个进程并将其挂起。

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

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

    如何绕过? 使用具有挂起选项的其他任务管理器

    坏处? 您的AntiCheat-Launcher可以被Anti-Virus检测到。

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM