2009-07-31 10 views
17

Gibt es eine Möglichkeit, ein C# -Programm aus dem Windows Task-Manager auszublenden?Verstecken Sie ein C# -Programm vom Task-Manager?

EDIT: Danke für die überwältigende Antwort! Nun, ich hatte nicht die Absicht, etwas Gruseliges zu machen. Wollte nur eine Wette mit meinem Freund gewinnen, dass ich es tun kann, ohne dass er es merkt. Und ich bin kein Geek, der in der Lage ist, ein Rootkit zu schreiben, wie jemand vorgeschlagen hat, obwohl ich gerne wissen würde, wie es geht.

+13

Warum möchten Sie so etwas tun? –

+4

Ich weiß die Antwort nicht, aber wenn ich es täte, würde ich dazu neigen, nach Ihren Gründen zu fragen, bevor ich Ihnen erklären würde, wie ich das machen soll. –

+5

ja, es gibt: starte es nicht – RaYell

Antwort

28

Nicht dass ich mir dessen bewusst bin - und es sollte nicht sein. Die Aufgabe des Task-Managers ist es, Benutzern zu ermöglichen, Prozesse usw. zu untersuchen.

Wenn der Benutzer in der Lage sein sollte, das zu tun, sollten sie in der Lage sein, Ihr Programm zu finden. Wenn sie nicht im Task-Manager herumstöbern sollten, sollte die Gruppenrichtlinie das verhindern - nicht Ihr Programm.

+2

voll und ganz zustimmen. Ich sehe keinen Grund, warum ein Programm erreichen sollte. – Juri

+1

Ja, überhöhte Programme sind einfach so nervig. –

+2

Sie sind sicherlich, wenn das, was sie "erreichen", ist Spamming, wischen Ihre Festplatte etc ... es ist völlig in Ordnung, Einschränkungen, was Programme tun können. –

13

Sie könnten Ihr Programm zu einem Dienst machen und dann würde es als "Svchost" erscheinen. Es gibt ein bisschen mehr als das, aber das sollte dir einen Hinweis geben, in die richtige Richtung zu gehen.

6

Mir ist keine Möglichkeit bekannt, es vor dem Task-Manager zu verbergen, aber Sie könnten es einfach tarnen, indem Sie es als "svchost.exe" anzeigen lassen. Es wird mit allen anderen in Verbindung gebracht (es gibt normalerweise mehrere) und wird ununterscheidbar.

+0

Nicht wirklich - Sie können immer noch den Pfad der ausführbaren Datei im Task-Manager sehen. – xyz

+1

@frou: Ja, aber wenn Sie es nur svchost.exe nennen und es irgendwo unter c:/Windows ablegen, würden die meisten Leute einfach denken, dass es eine normale Windows-Anwendung ist. –

+1

Blah - wir nennen es einfach svchost.exe ist eine unordentlichere/weniger effektive Version dessen, was Samoz vorschlägt :) – xyz

18

Bedeuten nicht, dies Zombie, aber ich dachte, ich

einige nützliche Informationen beitragen könnte Wenn Sie eine Anwendung gibt es eine zwei Methoden ausblenden möchten (die ich mir vorstellen kann atm).

Beide haben ihre Höhen und Tiefen

[1] SSDT Tabelle Einhaken - im Grunde Sie die MDL der Tabelle setzen müssen beschreibbar, überschreiben die Adresse NtQuerySystemInformation (IIRC) mit der Adresse Ihres Funktion und lassen Sie die ursprüngliche Funktion nach dem Filtern der Ergebnisse aufrufen.

Diese Methode eignet sich nicht sehr gut für Ihre Anforderungen, da die Hooking-Funktion immer im Speicher vorhanden sein und einen Kernel-Modus-Treiber schreiben müsste. Es ist eine lustige Sache zu tun, aber das Debuggen ist ein Schmerz, weil eine Ausnahme eine BSOD bedeutet.

[2] Direkt Kernel Object Manipulation (DKOM) - die Liste der Prozesse ist eine doppelt verknüpfte Liste, mit einem Kernel-Mode-Treiber, um die Zeiger der Datensätze über und unter Ihrem Prozess verändern können zu Ihrem Punkt herum. Dies erfordert immer noch die Verwendung eines Kernel-Modus-Treibers, aber es gibt Rootkits wie FU, die einfach heruntergeladen werden können, die eine EXE und den Dienst enthalten. Die EXE könnte von innerhalb Ihrer Anwendung als Kind-Prozess aufgerufen werden (in der freigegebenen Version von FU, zumindest die, die ich gefunden habe, gab es einen Bug, den ich reparieren musste, wenn die versteckte Anwendung den Computer BSOD beenden würde) eine triviale Lösung).

Dies wird zum Glück von fast jedem anständigem Antivirus erwischt werden, so, wenn Sie versuchen, etwas zu tun, hinterhältig werden Sie um diesen zu bekommen lernen müssen (Hinweis: sie eine binäre Signatur verwenden)

Ich habe nicht verwendet Methode 1 überhaupt, aber Methode 2 hat für mich aus einer VB.Net-Anwendung gearbeitet.

Eine dritte mögliche Option ist nur die Anwendung als Windows-Dienst zu erstellen, dies wird standardmäßig im Task-Manager angezeigt, aber ich wette, dass es eine Möglichkeit gibt, es dort seit dort nicht zu zeigen Es gibt viele andere Dienste, die nicht im Task-Manager angezeigt werden.

Ich hoffe, ich half ein wenig, mein Rat ist, dass, wenn Sie sich für diese Art von Sachen interessiert sind, C++ zu lernen.

Verwandte Themen