public static void IntegrityCheck() { if (instance == null || !instance.IsAlive) { Utilities.cleanup(); Networking.Alert(ExitReason); Environment.Exit(1337); } }
private static void Thread() { new Thread(() => { }).Start(); InitalizeAntis(); IntPtr ProcessHandle = Process.GetCurrentProcess().Handle; bool isDebuggerPresent = false; while (true) { if (Exit) { Networking.Alert(ExitReason); Environment.Exit(ExitCode); } CheckRemoteDebuggerPresent(ProcessHandle, ref isDebuggerPresent); if (isDebuggerPresent) { Utilities.cleanup(); Exit = true; ExitCode = 0; ExitReason = "Remote debugger detected."; Networking.Alert(ExitReason); Environment.Exit(1337); } Process[] processlist = Process.GetProcesses(); foreach (Process process in processlist) { try { if (String.IsNullOrEmpty(process.MainWindowTitle)) { continue; } bool isForbiddenProcessName = false, isForbiddenWindowTitle = false; isForbiddenProcessName = ProcessNames.Contains(process.ProcessName); foreach (string forbiddenTitle in WindowTitles) { if (process.MainWindowTitle.Contains(forbiddenTitle)) { isForbiddenWindowTitle = true; break; } } bool isForbidden = isForbiddenProcessName || isForbiddenWindowTitle; if (isForbidden) { Utilities.cleanup(); Exit = true; ExitCode = process.Id; ExitReason = "Blacklisted process detected.\n" + "Name: " + process.ProcessName + "\nWindow Title: " + process.MainWindowTitle; Networking.Alert(ExitReason); Environment.Exit(1337); } } catch (Exception) { } } System.Threading.Thread.Sleep(500); } }