【发布时间】:2016-08-08 04:45:47
【问题描述】:
您好,我正在为游戏制作启动器/反作弊程序,昨天我发现用户可以简单地使用 Process Explorer 挂起反作弊线程并注入 hack,然后清理使用过的 dll,然后取消挂起并进行 hack。 我试图找到任何方法来检测它,但只发现如何暂停进程,而没有发现如何检测它我还查看了应用程序和进程事件,但没有发现任何可用的.. 现在我在反作弊线程中添加了一个“计时器”,如果 3 秒内没有进程/模块扫描,它将关闭游戏,但是当游戏加载时,它会在一段时间内占用几乎 100% 的 cpu,对于我来说它大约2 秒,但在一些较旧的处理器上可能长达 10 秒没有扫描,所以它根本不是一个选项..
那么这个事件是否记录在任何地方?或者我该怎么做?我知道我可以找到进程或线程状态,但当我的所有线程都挂起时却找不到
【问题讨论】:
-
什么意思?挂起的进程或线程就是这样:挂起。您的代码没有执行。它如何“知道”它已被暂停?如果没有一个很好的minimal reproducible example 可以清楚地显示您正在尝试做什么,那么您的问题充其量就太宽泛了。有太多可能的场景与您的描述相匹配,并且有太多的答案无法与之相匹配。但实际上,你似乎在你的追求中选择了一条弄巧成拙的路线。
-
您可以随时尝试 RobinHood/FriarTuck 策略(请参阅 catb.org/jargon/html/meaning-of-hack.html) - 让两个进程相互监控可疑行为 :-)
-
彼得我的问题应该是是否有任何进程状态日志,或者我可以在进程被取消暂停时引发事件?我也在考虑让两个应用程序相互检查,但如果可能的话,我想避免这种情况..
标签: c# multithreading process suspend