【发布时间】:2019-11-19 11:37:50
【问题描述】:
我已经用 C# 编写了代码来检测所有以作弊开头的程序,方法类似于下面的代码块。但是,即使我在运行项目时启动了像 cheatengine 这样的程序,我编写的代码也不会检测到它:( 可能是什么问题?
保存新副本并仅编辑文本
static void Hello(string[] args)
{
//Konsol ac
Console.WriteLine("Anti Hile");
for (; ;)
{
Console.Write("*");
foreach (Process clsProcess in Process.GetProcesses())
{
if (clsProcess.ProcessName.ToLower().Contains("cheat"))
{
Console.WriteLine("HILE BULUNDU.");
Process[] Fivem = Process.GetProcessesByName("Fivem");
foreach (Process hope in Fivem)
hope.Kill();
clsProcess.Kill();
break;
}
if (clsProcess.ProcessName.ToLower().Contains("cheatengine"))
{
Console.WriteLine("HILE BULUNDU.");
Process[] Fivem = Process.GetProcessesByName("Fivem");
foreach (Process hope in Fivem)
hope.Kill();
clsProcess.Kill();
break;
}
if (clsProcess.ProcessName.ToLower().Contains("inject"))
{
Console.WriteLine("HILE BULUNDU.");
Process[] Fivem = Process.GetProcessesByName("Fivem");
foreach (Process hope in Fivem)
hope.Kill();
clsProcess.Kill();
break;
}
//icinde injector gecen butun uygulamaları bul.
if (clsProcess.ProcessName.ToLower().Contains("injector"))
{
Console.WriteLine("HILE BULUNDU.");
Process[] Fivem = Process.GetProcessesByName("Fivem");
foreach (Process hope in Fivem)
hope.Kill();
clsProcess.Kill();
break;
}
//icinde lynx gecen butun uygulamaları bul.
if (clsProcess.ProcessName.ToLower().Contains("lynx"))
{
Console.WriteLine("HILE BULUNDU.");
Process[] Fivem = Process.GetProcessesByName("Fivem");
foreach (Process hope in Fivem)
hope.Kill();
clsProcess.Kill();
break;
}
}
}
}
【问题讨论】:
-
尝试将您的方法名称重命名为“Main”
-
一旦您处理了名称包含
cheat的所有进程,您就已经处理了名称包含cheatengine的所有进程,因为cheat是cheatengine的子字符串。inject和injector相同。 -
您的第二个和第四个
if()语句是多余的。 -
在代码块的开头,我让他在循环开始之前写“Anti Cheat”,但是当我开始我的项目时,控制台中没有任何消息