Guest User

Untitled

a guest
Aug 18th, 2018
424
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 2.46 KB | None | 0 0
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Management;
  5. using System.Diagnostics;
  6.  
  7. namespace Detection
  8. {
  9.     class Program
  10.     {
  11.         static void Main(string[] args)
  12.         {
  13.             WaitForProcess();
  14.             CheckCurrentProcesses();
  15.             Console.ReadLine();
  16.         }
  17.  
  18.         private static void CheckCurrentProcesses()
  19.         {
  20.             Process.GetProcesses()
  21.             .Where(p => badPrograms
  22.             .Any(bp => p.ProcessName.ToLower().Contains(bp.ToLower()))).ToList()
  23.             .ForEach(foundP =>
  24.             {
  25.                 foundP.Kill();
  26.                 Console.WriteLine($"Process was killed: {foundP.ProcessName}");
  27.             });
  28.         }
  29.  
  30.         private static void WaitForProcess()
  31.         {
  32.             var startWatch = new ManagementEventWatcher(
  33.               new WqlEventQuery("SELECT * FROM Win32_ProcessStartTrace"));
  34.             startWatch.EventArrived
  35.                                 += new EventArrivedEventHandler(StartWatch_EventArrived);
  36.             startWatch.Start();
  37.  
  38.             var stopWatch = new ManagementEventWatcher(
  39.               new WqlEventQuery("SELECT * FROM Win32_ProcessStopTrace"));
  40.             stopWatch.EventArrived
  41.                                 += new EventArrivedEventHandler(StopWatch_EventArrived);
  42.             stopWatch.Start();
  43.         }
  44.  
  45.         private static void StopWatch_EventArrived(object sender, EventArrivedEventArgs e)
  46.         {
  47.             string processName = e.NewEvent.Properties["ProcessName"].Value.ToString();
  48.             if (badPrograms.Any(bp => processName.ToLower().Contains(bp.ToLower())))
  49.                 Console.WriteLine($"Process has closed: {processName}");
  50.         }
  51.  
  52.         private static void StartWatch_EventArrived(object sender, EventArrivedEventArgs e)
  53.         {
  54.             string processName = e.NewEvent.Properties["ProcessName"].Value.ToString();
  55.             int processId = Convert.ToInt32(e.NewEvent.Properties["ProcessId"].Value);
  56.             if (badPrograms.Any(bp => processName.ToLower().Contains(bp.ToLower())))
  57.             {
  58.                 Process.GetProcessById(processId).Kill();
  59.                 Console.WriteLine($"Process was killed: {processName}");
  60.             }
  61.         }
  62.  
  63.         private static List<string> badPrograms = new List<string>()
  64.         {
  65.             "Fiddler",
  66.             "Cheat Engine",
  67.             "Cracky",
  68.             "Notepad"
  69.         };
  70.     }
  71. }
Advertisement
Add Comment
Please, Sign In to add comment