Windows-Prozesse beobachten

Status
Nicht offen für weitere Antworten.

JPKI

Top Contributor
Tag Leute, ich hätt da ne ganz Windows-spezifische Frage.

Gibt es irgendeine Möglichkeit, um die Prozessliste von Windows 2000, bzw. Windows XP
über eine Java-eigene Klasse oder Methode zu beobachten??

Ich will folgendes machen:

Ich möchte ein Programm schreiben, dass man nicht über den Taskmanager bzw. über den DOS-Befehl
"taskkill" beenden kann. Also will ich die Prozessliste überwachen und die Prozesse "taskmgr.exe" bzw.
"taskkill.exe" ( :meld: ) beenden, wenn sie in der Liste auftauchen.

Bisher hab ich's auf diese Art und Weise probiert:

Code:
public void run() {

  while (true) {

   try { Thread.sleep(500); } catch (InterruptedException ex) {}
   try { Runtime.getRuntime().exec("cmd /c taskkill /IMG taskmgr.exe");
           Runtime.getRuntime().exec("cmd /c taskkill /IMG taskkill.exe"); } catch (Exception ex) {}
 }
}

Ein Thread schickt also jede halbe Sekunde den "Beenden"-Befehl an Windows, egal ob der Prozess aktiv ist
oder nicht.

Ich würd's aber gern so haben wie oben beschrieben.
Wenn mir jemand helfen könnte, wär ich froh.

Danke schonmal im vorraus.

JPKI
 
google ma nach rootkit, dann kannste deinen prozess so verstecken, dass der gar nicht erst im taskmgr auftaucht 🙂
 
Das man damit gleich tief ins System eingreift und nen schönes Hintertürchen aufmacht, stört dich nicht oder?
 
JPKI hat gesagt.:
Ich möchte ein Programm schreiben, dass man nicht über den Taskmanager bzw. über den DOS-Befehl
"taskkill" beenden kann. Also will ich die Prozessliste überwachen und die Prozesse "taskmgr.exe" bzw.
"taskkill.exe" ( :meld: ) beenden, wenn sie in der Liste auftauchen.

Und wenn ich taskmgr.exe einfach umbenenne und dann ausführer? Oder einen ganz anderen Taskmanager nehme? Genauso gibt es auch Nicht-Microsoft-Tools, welche von der Kommandozeile aus Prozesse beenden können. (bzw. wäre es auch nicht zu schwer, sich so eins in C++ zu schreiben und dann über die WinAPI deinen Prozess zu killen 😀 )

Besonders interessant ist die Möglichkeit, Prozesse zu pausieren... dann kann man dein Programm einschläfern und dann in Ruhe mit einem Tool seiner Wahl abschiessen 😀

Was soll das überhaupt für ein Programm werden, was man nicht mal beenden dürfen soll?
 
Oder einen ganz anderen Taskmanager nehme? Genauso gibt es auch Nicht-Microsoft-Tools

richtig...


Das man damit gleich tief ins System eingreift und nen schönes Hintertürchen aufmacht, stört dich nicht oder?
für mich macht das keinen unterschied, ob man ein programm versteckt, oder ob man den taskmgr immer killt.

wer kommt eigentlich auf solche ideen?
 
Was das werden soll??

Naja, ich will für nen Kollegen ein Programm schreiben, dass den PC zu einer gewissen Uhrzeit herunterfährt,
und ihn danach nicht mehr hochfahren lässt (genauer: das Programm wird in der Registry unter Run eingetragen, startet daher immer mit, überprüft die Uhrzeit und fährt den PC gegebenenfalls gleich wieder runter :meld: ).

Besagter Kollege ist nämlich (fast) computersüchtig und hat mich um Hilfe gebeten, weil er für's Abitur lernen muss :### , und den PC in dieser Zeit nur für's Nötigste benutzen will. Naja, und eben darum soll das Programm nicht zu beenden sein.
 
Aber mal zurück zu meinem Problem: Weiss irgendwer Rat (wenn's geht ohne dass ich viel googeln muss) ;-)
 
Klar, klau den Lüfter von seinem Prozessor. dann geht das ding sicher nach ner gewissen Zeit aus...


Ne, mal ohne Quatsch, soviel Disziplin muss er schon haben, sonst wird das mit dem Lernen eh nix weil er sich dann mit was andrem von Lernen abhält. Aber das mit dem Timer ist schon ne gute Idee, nur sollte die dann nicht den Rechner runterfahren, sondern nach ner gewissen Zeit einfach mit ner Auditiven oder Visuellen Mitteilung rumnerven.

Alles andre hat nur den Effekt das er sich wie oben schon genannt die Zeit damit vertreibt ein nicht-Win-Tool zu suchen oder das sonst irgendwie von seinem rechner zu kratzen.
 
Das is natürlich auch ne gute Idee... ;-) mit dem Prozessorlüfter...

Ich dachte auch schon dran mit nem Magneten über die Festplatte zu gehen oder ein paar Tröpfchen Wasser ins Netzteil zu tröpfeln (*BRUTZEL*) ;-)...

Trotzdem würd's mich ma interessieren, wie (überhaupt OB) man die Prozessliste überwachen kann.
 
Hobbit_Im_Blutrausch hat gesagt.:
Das man damit gleich tief ins System eingreift und nen schönes Hintertürchen aufmacht, stört dich nicht oder?
Wie kommst du darauf??? Ein Rootkit ist nur eine Ansammlung von Werkzeugen. Was er davon benutzt ist seine Sache. Nur weil er einen Prozess versteckt hat er damit keinerlei "Hintertürchen" für irgendwen "aufgemacht".
 
glaub ab Win2k gibts die WMIC-Konsole
start ausführen wmic

da kommste dann auch an ne liste mit prozessen ran und kannst sie darüber abschiesen

WMIC PROCESS kriegste ne Liste aller Prozesse


WMIC PROCESS WHERE(name="abc.exe") DELETE /NOINTERACTIVE

kannste den prozess killen
 
Geiles kleines Programm, das kennich ja noch gar nicht...

Damit klappts, danke, is viel besser als taskkill.exe,
außerdem kann ich Prozessen das neu starten untersagen.
 
Eldar hat gesagt.:
Hobbit_Im_Blutrausch hat gesagt.:
Das man damit gleich tief ins System eingreift und nen schönes Hintertürchen aufmacht, stört dich nicht oder?
Wie kommst du darauf??? Ein Rootkit ist nur eine Ansammlung von Werkzeugen. Was er davon benutzt ist seine Sache. Nur weil er einen Prozess versteckt hat er damit keinerlei "Hintertürchen" für irgendwen "aufgemacht".

Hintertürchen für Viren die sich mithilfe des Rootkits tarnen 😉
 
Das is natürlich super.
Dummerweise kann ich nur Java als Programmiersprache, sonst
hätt ich auch über JNI was drehen können... ???:L :### 😳

Aber der Tipp ist gut, funktionieren tut's auch und die 3 Sekunden Wartezeit nehm ich gerne in Kauf. Danke. 😀
 
Übrigens: Hab mir natürlich die WMIC-Befehle genauer angesehen, bei mir kam nämlich auch die Fehlermeldung ;-)
 
kleine Anmerkung, unter Windows XP Home gibts WMIC (sofern ich mich recht erinnere) nicht! Mit vorhergehenden Versionen (Win 2000 könnte noch funktionieren) gibt es das ebenfalls nicht.
 
Naja @JPKI: du kannst ja meines nehmen, dafür brauchst du ja keine C++ Kenntnisse 😉

Einfach die java sourcen einbauen (packages müssen gleich bleiben) und die dll runterladen und schon gehts!
 
Hab ich schon getan, danke.
Ich werd mich bald auch mal an C++ wagen... (mal ganz nebenbei bemerkt)
 
Status
Nicht offen für weitere Antworten.

Zurück
Oben