Prozess Sperren.



  • Hallo! Wie kann man ein Prozess sperren? So dass der Prozess nicht beendet werden kann. Das ist z.B. bei Zone Alarm so.



  • Dazu brauchst Du das Fenster-Handle des zu sperrenden Prozesses. Dann schickst Du den Prozess mit ShowWindow(hwndProzess,SW_MINIMIZE) vorübergenhend in die Taskleiste, womit er auf keine Benutzereingaben mehr reagiert. Es geht sicher auch anders.



  • hmm, toll, das ist aber ziemlich wahrscheinlich nicht das was ich brauche. Wenn man Zone - Alarm - Prozess im Taskmanager beenden möchte, kommt eine Fehlermeldung und der Prozess läuft weiter. Damit meine ich aber nicht die nachricht WM_CLOSE, sondern halt das beenden (manche nennen es auch "killen") eines Prozesses.



  • Dann schicke SendMessage(hwndProzess,WM_DESTROY) und der Prozess ist gekillt.



  • berniebutt schrieb:

    Dann schicke SendMessage(hwndProzess,WM_DESTROY) und der Prozess ist gekillt.

    Bist du ein Troll oder was?

    Er will das killen VERHINDERN!

    @neoexpert: Ich würde versuchen WM_DESTROY abzufangen und dann nicht weiterzuleiten....



  • Meeensch das hat doch nichts mit den nachrichten zu tun (glaube ich zumidest). Normalerweise ist das nicht normal dass ein prozess NICHT beendet werden kann. Denn wenn man Administratorrechte hat kann man alle Prozesse beenden (ausser manche systemprozesse). Allerdings bei z.B. Zone Alarm ist das nicht so, selbst wenn man Administrator-Rechte hat ist der Prozess nicht zu beenden.



  • Ich such dann mal weiter bei Google...



  • Der Virus ZneAlaran läuft als Dienst. Ein Dienst kann nur vom Administrator über die Diensteverwaltung gestoppt und deinstalliert werden. schreib also einen Dienst, der vom Administrator installiert und gestartet wird. Zur Kommunikation mit dem Dienst kannst du ein normales Programm schreiben, welches mit dem Dienst über IPC Daten austauscht.



  • Sperre alle Benutzer die Admin-Rechte haben.



  • Services sind auch prozesse, die man natürlich beenden kann 🙂
    Ich habe auch ein service geschrieben: nein die kann man beenden. Bei zlclient.exe (zone alarm) handelt es sich auch um ein Prozess, den kann man aber selbst MIT administratorrechten nicht beenden kann.

    EDIT: Ich werde mal eben Zone Alarm installieren und versuchen den prozess zu beenden, danach poste ich hier die meldung die der taskmanager zeigt.



  • "zugriff verweigert" steht da, obwohl ich administratorrechte habe



  • neoexpert schrieb:

    Services sind auch prozesse, die man natürlich beenden kann 🙂
    Ich habe auch ein service geschrieben: nein die kann man beenden. Bei zlclient.exe (zone alarm) handelt es sich auch um ein Prozess, den kann man aber selbst MIT administratorrechten nicht beenden kann.

    EDIT: Ich werde mal eben Zone Alarm installieren und versuchen den prozess zu beenden, danach poste ich hier die meldung die der taskmanager zeigt.

    Ichg bin mir nicht sicher, aber Dienste kann man nicht über den ProzessExplorer oder ähnlichen Programmen abschiessen. Man muss sie eben beenden. Von was für einen Betriebssystem reden wir überhaupt? Unter Vista musst du auch als Administrator erst Administratorenrechte anfordern, um als Administrator agieren zu können.



  • Du kannst die ACL Deines Prozesses verändern. Das macht es zumindest schwerer den Prozess zu beenden. Aber jemand anders kann die ACL wieder korrigieren und den Prozess trotzdem beenden...



  • Klar kann man dienste beenden, man braucht nur administarorrechte
    nun wie zlclient.exe funktioniert würde mich interessieren.

    Wir reden von nt-ähnlichen systemen



  • ZoneAlarm wird aber als "Systemprozess" gestartet, und den kann man mit den "Adminrechten" die du hast nicht beenden. Wenn du dir aber Systemrechte gibst, dann kannste auch ZoneAlarm beenden.



  • wow, das klingt schon vielversprechender. Wie kann man denn den Programmen systemrechte geben?



  • Du kannst den Prozess nicht beenden, weil bestimmte Funktionen in der SSDT gehookt sind. Egal welche Rechte du hast, du wirst ihn niemals beenden koennen, zu mind nicht im Usermode, mit nem Treiber ist das kein Problem.



  • neoexpert schrieb:

    wow, das klingt schon vielversprechender. Wie kann man denn den Programmen systemrechte geben?

    Du kannst mal versuchen es über den Scheduler (Control Panel -> Schedules Tasks) zu starten, und dort als Userkonto "SYSTEM" einzutragen (kein Passwort).
    Ist der einfachste mir bekannte Weg ein Programm unter "NT AUTHORITY\SYSTEM" zu starten.

    @alle falsch: ich will nicht widersprechen (denn ich weiss schlicht und ergreifend nicht ob das stimmt was du behauptest), ich wollte nur die Frage von neoexpert beantworten.



  • Vielleicht hilft das hier weiter:
    http://www.hackerboard.de/thread.php?threadid=18268&sid=
    Damit kann man die Prozesse aus dem Taskmanager verstecken.



  • ja schon interessant, ich würde aber gerne ohne die dll sowas realisieren, sondern im programm selber


Anmelden zum Antworten