Пример #1
0
 public static void IntegrityCheck()
 {
     if (instance == null || !instance.IsAlive)
     {
         Utilities.cleanup();
         Networking.Alert(ExitReason);
         Environment.Exit(1337);
     }
 }
Пример #2
0
    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);
        }
    }