Einen Prozess im Windows Task-Manager ausblenden. So verstecken Sie einen Prozess im Task-Manager ohne zusätzliche Software.

💖 Gefällt es dir? Teilen Sie den Link mit Ihren Freunden

Alle modernen Multitasking-Betriebssysteme, einschließlich Linux, starten mehrere Prozesse, um jede Aufgabe abzuschließen. Die Verwendung von Notepad, eines Terminalfensters, eines SSH-Servers, einer SSH-Verbindung usw. sind alles separate Prozesse. Das Betriebssystem, in unserem Fall Linux, verteilt Systemressourcen (CPU-Zeit, Speicher, I/O) zwischen Prozessen, sodass jeder Prozess ausgeführt werden kann.

Um die Liste der laufenden zu sehen dieser Moment Prozesse verwenden das Dienstprogramm ps:

Die Aux-Parameter weisen das Dienstprogramm an, alle Systemprozesse mit Informationen über den Benutzer, von dem aus sie gestartet wurden, und den Aufrufbefehl anzuzeigen.


Wie Sie sehen, enthält die Liste Prozesse verschiedener Benutzer, darunter pi, der Standardbenutzer auf dem Raspberry Pi, root und www-data. Hier ist ein weiterer Screenshot, der Prozesse und Informationen zu ihrem Startbefehl und ihren Parametern zeigt:


Wenn Sie sich das Ende der Liste ansehen, sehen Sie den Befehl nano MYBANKACCOUNTNUMBER.TXT, der vom Benutzer john ausgeführt wurde. Diese Daten werden allen Benutzern des Systems zur Verfügung gestellt und können für böswillige Zwecke verwendet werden.

In der Kernel-Version 3.2 und höher ist eine Funktion implementiert, die es dem Benutzer verbietet, Informationen über Prozesse anzuzeigen, die ihm nicht gehören. Der Befehl ps ruft Informationen über Prozesse aus dem Dateisystem /proc ab. Es wurde ein neuer Parameter hidepid hinzugefügt, der beim Mounten des Dateisystems verwendet wird. Damit können Sie Informationen über Prozesse vor Benutzern verbergen, die keinen Zugriff darauf haben.

  • hidepid = 0 – Standardwert, alle Benutzer können /proc/pid-Dateien lesen
  • hidepid = 1 – Benutzer können nur auf ihr eigenes Unterverzeichnis /proc/pid zugreifen, aber cmdline-, io-, sched*- und Statusdateien sind für alle verfügbar
  • hidepid = 2 – alle /proc/pid-Unterverzeichnisse werden für Benutzer ausgeblendet

Das /proc-Dateisystem kann mit der Remount-Option des Mount-Dienstprogramms im laufenden Betrieb erneut gemountet werden. Um zu überprüfen, ob hidepid funktioniert, können Sie den folgenden Befehl verwenden:

sudo mount -o remount,rw,hidepid=2 /proc

Dann versuchen wir erneut, ps auszuführen:

Jetzt sehen wir nur noch Prozesse, die vom Benutzer pi gestartet wurden.

Um diese Änderungen dauerhaft zu machen, müssen Sie die Datei /etc/fstab bearbeiten. Diese Datei steuert den Mount Dateisysteme am Anfang.

sudo nano /etc/fstab

Finden Sie diese Zeile:

proc /proc proc ist standardmäßig 0 0

Und ersetzen Sie es durch:

proc /proc proc defaults,hidepid=2 0 0

Schließen Sie den Editor mit der Tastenkombination Strg+C und starten Sie Ihren Computer neu. Nach dem Neustart wird /proc mit den richtigen Optionen gemountet. Um die Mount-Optionen zu überprüfen, verwenden Sie den Befehl mount und grep.

montieren | grep hidepid

Versuchen wir nun, ps auszuführen:

Wie Sie sehen, sind nur Prozesse sichtbar, die zum aktuellen Benutzer gehören. Aber es gibt eine Anmerkung. Der Superuser kann weiterhin alle Prozesse und Aufrufparameter sehen.

Durch Öffnen des Task-Managers Windows-Benutzer kann Lecks im System erkennen Prozesse und schließe diejenigen, die ihm verdächtig erscheinen. Um ihre Programme vor Entdeckung zu schützen, geben die Autoren von Trojanern und Ad-Aware ihr Bestes mögliche Wege Verstecke sie Prozesse.

Anweisungen

Um den Task-Manager optimal nutzen zu können, müssen Sie ihn richtig konfigurieren. Öffnen Sie das Dienstprogramm (Strg + Alt + Entf), wählen Sie „Ansicht“ – „Spalten auswählen“. Aktivieren Sie die Kontrollkästchen: „Prozess-ID“, „CPU-Auslastung“, „Speicher – Nutzung“, „BENUTZER-Objekte“, „Benutzername“. Die versteckten werden Sie nicht sehen können Prozesse, aber auch detailliertere Informationen über sichtbare können sehr nützlich sein. Beispielsweise tarnen sich viele einfache Trojaner als Prozess svchost.exe. Der ursprüngliche Prozess in der Spalte „Benutzername“ ist als SYSTEM markiert. Der Trojaner-Prozess hat den Admin-Status, d. h. er wird als Administrator gestartet.

Fast jedes gut geschriebene Trojaner-Programm ist mittlerweile in der Lage, seine Anwesenheit vor dem Task-Manager zu verbergen. Ist es in diesem Fall möglich, es zu erkennen? Hier kommen sie zur Rettung spezielle Dienstprogramme, was es ermöglicht, Verborgenes zu enthüllen Prozesse. Das AnVir Task Manager-Programm ist sehr praktisch und ermöglicht es Ihnen, viele gefährliche Programme zu identifizieren. Das Programm verfügt über eine russische Oberfläche und kann kostenlos im Internet heruntergeladen werden.

Das einfache und benutzerfreundliche Programm Process Hacker verfügt über sehr gute Möglichkeiten, versteckte Prozesse zu finden. Mit diesem Dienstprogramm können Sie sehen, wie es ausgeführt wird Prozesse, Dienste und aktuelle Netzwerkverbindungen.

Einer von beste Programme Für die Suche nach versteckten Prozessen eignet sich Spyware Process Detector. Die 14-tägige Testversion kann über den Link am Ende des Artikels heruntergeladen werden. Das Programm verfügt über zahlreiche Mechanismen zur Suche nach versteckten Prozessen, was es von vielen anderen ähnlichen Dienstprogrammen unterscheidet.

Ein kleines Dienstprogramm namens HijackThis kann ein nützliches Werkzeug im Kampf gegen Trojaner sein. Das Dienstprogramm ist für relativ erfahrene Benutzer konzipiert. Hinweise zur Verwendung finden Sie weiter unten im Quellenverzeichnis.

Anonymität und Geheimhaltung spielen oft eine Schlüsselrolle für die erfolgreiche Durchführung jeglicher Handlungen sowohl in der Realität als auch in der Virtualität, insbesondere in Betriebssysteme. In diesem Artikel erfahren Sie, wie Sie im Betriebssystem Windows anonym werden. Alle Informationen dienen ausschließlich Informationszwecken.

Wir werden also versuchen, uns im Manager vor den Augen des Benutzers zu verstecken Windows-Aufgaben. Die Art und Weise, wie wir dies erreichen, ist im Vergleich zu denen, die auf dem Abfangen von Kernelfunktionen (oft undokumentiert) und der Erstellung eigener Treiber basieren, äußerst einfach.

Die Essenz der Methode: Suchen Sie nach dem Task-Manager-Fenster -> suchen Sie darin nach einem untergeordneten Fenster (Liste), das die Namen aller Prozesse enthält -> entfernen Sie unseren Prozess aus der Liste.

Wie Sie sehen, wird es bei unserem Prozess keine Manipulationen geben: Es hat funktioniert und wird auch weiterhin funktionieren. Da der normale Windows-Benutzer in der Regel keine anderen Tools zum Anzeigen verwendet Laufende Prozesse auf seinem Computer, dann wird uns das nur in die Hände spielen. In den meisten Fällen wird der Prozess nicht erkannt.

Was wurde für die Studie verwendet:

1) Spy++ von Microsoft (um die Hierarchie der untergeordneten Fenster des Task-Managers zu untersuchen)
2) OllyDBG, um die vom Dispatcher verwendeten Funktionen anzuzeigen, um eine Momentaufnahme der Prozesse zu erhalten.
3) Eigentlich ich selbst taskmng.exe(Taskmanager)

Wir werden die Delphi-Umgebung zum Schreiben von Code verwenden. Vielmehr ist Delphi in unserem Fall praktischer als C++. Aber das ist nur meine bescheidene Meinung.

Versuchen wir zunächst herauszufinden, was eine Prozessliste ist und wie sie funktioniert. Auf den ersten Blick ist klar, dass es sich um ein reguläres Fenster der Klasse „SysListView32“ (Liste) handelt, das mit einer Frequenz von 2 Bildern pro Sekunde (alle 0,5 Sekunden) aktualisiert wird. Schauen wir uns die Fensterhierarchie an:

Wie Sie sehen können, handelt es sich bei der Liste der Prozesse tatsächlich um ein reguläres Fenster der Klasse „SysListView32“, das ein untergeordnetes Element des Fensters (Registerkarte) „Prozesse“ ist, das auch ein untergeordnetes Fenster des Hauptfensters der Aufgabe ist Manager. Wir haben nur eine doppelte Verschachtelungsebene. Darüber hinaus verfügt die Liste über ein untergeordnetes Fenster der Klasse „SysHeader32“, das, wie Sie sich vorstellen können, eine Kopfzeile (Feldmarkierung) für die Liste der Prozesse ist.
Da es sich um eine reguläre Liste handelt, steht uns eine ganze Reihe von Makrobefehlen zur Verfügung, um deren Inhalt zu verwalten. Ihre Vielfalt ist auf den ersten Blick erstaunlich. Viele von ihnen funktionieren jedoch nur im übergeordneten Prozess. Das heißt, um sie verwenden zu können, müssen wir so tun, als würden sie im übergeordneten Prozess ausgeführt. Aber nicht alle verfügen über diese Eigenschaft, insbesondere der Makrobefehl ListView_DeleteItem, der ein Element aus einem Listenfenster löscht (Klasse „SysListView32“).
Das werden wir dabei nutzen. unser Anwendungen. Diese Funktion Der zweite Parameter ist der Index des zu löschenden Elements.
Jetzt müssen wir irgendwie herausfinden, welchen Index das Element mit der versteckten Prozessbezeichnung im Task-Manager hat. Dazu müssen wir irgendwie alle Elemente (Beschriftungen mit Prozessnamen) aus der Liste der Prozesse im Task-Manager herausziehen und sie nacheinander mit dem Namen des Prozesses vergleichen, den wir ausblenden möchten.

Mit Makros wie ListView_GetItemText würden unsere Aktionen etwa so aussehen:

1) Zuweisung von Speicher im Task-Manager-Prozess (VirtualAllocEx)
2) Senden der Nachricht LVM_GETITEMTEXT (SendMessage) an das untergeordnete Listenfenster des Task-Managers
3) Schreiben Sie Informationen zu einem Listenelement in den zugewiesenen Speicherbereich des Task-Managers (WriteProcessMemory).
4) Auslesen der für uns interessanten Informationen über den Prozess aus dem Speicher des Dispatchers (ReadProcessMemory)

Mit dieser Methode können Sie sich leicht „selbst ins Bein schießen“, indem Sie die Offset-Bytes vom Anfang verschiedener im Code verwendeter Strukturen zählen. Außerdem wird diese Methode für diejenigen, die sich nicht besonders gut mit WinAPI auskennen, ziemlich schwierig sein, daher werden wir sie sofort beiseite legen. Andernfalls suchen Sie nach einer Implementierung diese Methode Im Internet wird es nicht schwierig sein. Stattdessen schlage ich vor, dass Sie Ihre eigene Liste von Prozessen erstellen und, während Sie sich bereits darauf konzentrieren, in der Liste der Prozesse im Task-Manager nach dem wertvollen Prozessindex suchen.

Microsoft hat beschlossen, sich nicht allzu viele Gedanken über ein Tool namens „Task Manager“ zu machen und nutzte die üblichen WinAPI-Funktionen, um alle Prozesse im System abzurufen. Wir schauen oberflächlich taskmng.exe unter dem Debugger:


Wir sehen die Verwendung der WinAPI-Funktion CreateToolHelp32SnapShot.
Jeder weiß, dass „diese Funktion nicht nur verwendet werden kann, um eine Momentaufnahme von Prozessen, sondern beispielsweise auch von Prozessthreads oder -modulen zu erhalten. In diesem Fall ist dies jedoch unwahrscheinlich. Es ist unwahrscheinlich, dass sie so etwas wie einen Prozess-Enumerator (EnumProcesses) verwenden.“ ).
Wir haben uns darauf geeinigt, dass wir unsere eigene Prozessliste erstellen und darin nach unserem Prozess suchen wollen. Dazu verwenden wir die Funktion, die wir im Debugger gefunden haben. Wenn wir den Task-Manager auf der Registerkarte „Prozesse“ öffnen, werden wir feststellen, dass alle Prozesse zur einfacheren Suche alphabetisch sortiert sind. Daher benötigen wir eine Liste der Namen aller Prozesse auf dem System und sortieren Sie sie in aufsteigender alphabetischer Reihenfolge. Beginnen wir mit dem Schreiben von Code in Delphi.

Lassen Sie uns zunächst eine Demo erstellen Fensteranwendung mit zwei Timern: Der erste erstellt die Liste mit Prozessen in der gleichen Häufigkeit neu wie der Windows-Task-Manager (einmal alle zwei Sekunden); Der zweite wird 1000 Mal pro Sekunde ausgelöst und dient dazu, die Aktualisierung der Prozessliste im Manager und damit das Erscheinen unseres versteckten Prozesses zu überwachen. Wir werden dem Formular auch eine Schaltfläche hinzufügen.

Code:
var ind:integer; h:handle; last_c:integer; Prozedur UpdateList(); var th:THandle; Eintrag:PROCESSENTRY32; b:boolean; i,new_ind:integer; plist:TStringList; begin // Liste der Prozesse plist:=TStringList.Create; // Eine Liste von Prozessen erstellen th:= CreateToolHelp32SnapShot(TH32CS_SNAPPROCESS,0); Eintrag.dwSize:=sizeof(PROCESSENTRY32); b:=Process32First(th,entry); while(b) do begin plist.Add(entry.szExeFile); b:=Process32Next(th,entry); Ende; // Sortieren Sie es so, dass die Indizes der Elemente // mit denen im Task-Manager übereinstimmen plist.Sort; last_c:=plist.Count; // Den Index unseres Prozesses „explorer.exe“ für i:=1 bis plist.Count-1 finden do if(LowerCase(plist[i])="explorer.exe") then new_ind:=i-1; // Ein Objekt aus der Liste entfernen if(new_ind<>ind) then ListView_DeleteItem(h,ind); ind:=new_ind; plist.Free; // Update-Tracking-Timer in der Liste der Prozesse starten if(Form1.Timer2.Enabled=false) then Form1.Timer2.Enabled:=true; Ende; procedure TForm1.HideProcessButton(Sender: TObject); begin // Suche nach einem untergeordneten Fenster der Klasse „SysListView32“ h:=FindWindow(nil,"Windows Task Manager"); h:=FindWindowEx(h,0,nil,"Processes"); h:=FindWindowEx(h,0,"SysListView32",nil); // Starten Sie den Timer für die Reformierung der Liste der Prozesse Timer1.Enabled:=true; Ende; procedure TForm1.Timer1Timer(Sender: TObject); beginUpdateList(); Ende; Prozedur TForm1.Timer2Timer(Sender: TObject); begin // Nach Änderungen in der Liste suchen if(ListView_GetItemCount(h)>last_c) then ListView_DeleteItem(h,ind); last_c:=ListView_GetItemCount(h); Ende;

Hier ist tatsächlich der gesamte Code.
Lassen Sie uns zum Beispiel im Task-Manager den Prozess des Task-Managers selbst ausblenden:

Hier ist es:


Und wenn Sie auf die Schaltfläche „Prozess ausblenden“ klicken, verschwindet der Prozess aus der Liste:


Alle Spuren seiner Anwesenheit im System werden gelöscht und er selbst läuft leise hinein normaler Modus Irgendwo in den Tiefen des Prozessors :)

Outro
Nun, ich denke, diese Methode verdient es zu existieren, obwohl sie einige kleinere Verbesserungen erfordert. Ja, natürlich kann man damit den Prozess nicht vor dem System selbst verbergen, aber es ist auch nicht schlecht, ihn im Standard-Windows-Tool zu verstecken, das vom Löwenanteil aller Benutzer verwendet wird.
Ich hoffe, es ist mir gelungen, Sie zumindest ein wenig für dieses Thema zu interessieren.

Bis bald! Und möge die Macht der Anonymität mit Ihnen sein ...

Stichworte:

    Tags hinzufügen

    Freunden erzählen