Kündigung geschützt antivirus-Prozess

Ich bin mit dem ESet antivirus, und vor kurzem seine GUI-front-end egui.exe aufgehängt und war unter 50% CPU (also 100% von einem Kern). Erstaunlich fand ich, dass ich nicht töten kann, selbst mit debug-Berechtigungen aktiviert.

Nun bin ich neugierig: wie sehen Sie die Umsetzung einer solchen Verteidigung, und gibt es einen Weg, um zu töten es kurz zu schreiben, einen kernel-Treiber?

Den egui.exe Prozess läuft unter einem normalen Benutzer (nicht-admin), und ich versuchen zu töten, die es in verschiedenen Möglichkeiten, mit einem administrativen Konto. Hier ist, was ich versucht habe.

  • Sie nicht töten, es aus dem task-manager
  • Sie nicht töten, es mit pskill
  • Sie nicht töten, es mit process explorer, noch kann Sie einen debugger anfügen, um es

Dann begann ich einige Programmier-und festgestellt, dass:

  • unter nicht-privilegierten Benutzer, können Sie es mit PROSESS_TERMINATE Zugang, aber die tatsächlichen Aufruf von TerminateProcess() schlägt fehl mit Fehler 5.

  • unter admin-Konto, können Sie es mit beliebigen Zugriffsrechten, die Sie möchten (nach dem aktivieren der debug-Privileg natürlich), aber dann ruft an TerminateProcess(), GetKernelObjectSecurity(), SetKernelObjectSecurity() alle fehl mit Fehler 5.

Diese definitiv Punkte, um eine Art der Geigen, die nicht nur die Einstellung der Prozess-DACL, da Sie wenn Beenden, waren nicht in der DACL, die Sie nicht in der Lage, öffnen Sie den Prozess mit PROCESS_TERMINATE rechts in den ersten Platz. Sind Sie tatsächlich abfangen Win32-API-Aufrufe? Wenn ja, dann wie? Es ist eine Weile gewesen, seit ich low-level-system-Programmierung, also verzeih meine Unwissenheit.

  • Warum wollen Sie das wissen? 🙂
  • AVs in der Regel haben die kernel-Modus-Komponenten. Wenn Sie töten könnten Sie nur, indem Sie sich höchsten Privilegien, es wäre mieser Schutz.
  • Können Sie es töten, wenn es normal läuft, oder ist es nur, wenn es aufgehängt, dass man nicht töten ?
  • vielleicht ist es mir, aber ich weiß nicht wie unsterblich Prozesse, die fressen alle meine CPU
  • Ich könnte nicht töten, wenn es normal läuft
  • Plus Plus: ich bin admin auf der Maschine. Ich kann stoppen und sogar deinstallieren, die ganze Sache. Aber das ist nicht der Punkt, ich neugierig, WIE Sie es tun.
  • Es geht nicht darum, was Nutzer tun können, es geht darum, was die software tun können.
  • Auch können Sie mit Process Hacker an processhacker.sourceforge.net um den Prozess zu beenden. Führen Sie es als administrator mit der rechten Maustaste auf den Prozess, Beenden. Es ist open source, so können Sie den code.

Schreibe einen Kommentar