Sie Haben Ein Szenario, In Dem Der C#.net-Rollenmanagerprozess Verborgen Ist
December 29, 2021Wenn beim Ausblenden eines Prozesses im C# .net Task-Manager ein Fehler auftritt, könnte Ihnen das heutige Benutzerhandbuch dies ermöglichen.
Empfohlen: Fortect
Empfohlen: Fortect
Sind Sie es leid, dass Ihr Computer langsam läuft? Ist es voller Viren und Malware? Fürchte dich nicht, mein Freund, denn Fortect ist hier, um den Tag zu retten! Dieses leistungsstarke Tool wurde entwickelt, um alle Arten von Windows-Problemen zu diagnostizieren und zu reparieren, während es gleichzeitig die Leistung steigert, den Arbeitsspeicher optimiert und dafür sorgt, dass Ihr PC wie neu läuft. Warten Sie also nicht länger - laden Sie Fortect noch heute herunter!
Ich habe von der Antwort von @ Chris Smith erfahren und beschlossen, sie zu konvertieren, wenn Sie C# benötigen.
Administratoren können bleiben, um den Digest technisch loszuwerden, indem sie die Verantwortung für den Ansatz übernehmen und die DACL zurücksetzen, aber normalerweise ist dies keine Schnittstelle, die jemandem dabei hilft, dies als Ergebnis des Task-Managers zu tun. Process Explorer kann jedoch jetzt eine großartige Benutzeroberfläche haben.
Hier ist der Code, der hier zur Vereinfachung verwendet wird:
C # Winform-Option:
Konsolennutzung; ausgestattet mit System.Collections.Generic; mit seinem System. Komponentenmodell; vom System begleitet. Daten; Verwenden von System.Drawing; Verwenden von System.Linq; System.Runtime.InteropServices-Auswahl; Verwenden von System.Security.AccessControl; System using.Security.Principal; Verwenden von System.Text; Verwenden von System.Threading.Tasks; Kauf von System.Windows.Forms;Namensraum ausblenden 2 Client-Unterklasse Form1: Form [DllImport ("advapi32.dll", SetLastError = true)] weniger aktiv extern bool GetKernelObjectSecurity (IntPtr Handle, int securityInformation, [Out] byte [] pSecurityDescriptor, uint nLength, geschrieben im Grunde uint lpnLengthNeeded); static public RawSecurityDescriptor GetProcessSecurityDescriptor (IntPtr processHandle) [DllImport ("advapi32.dll", SetLastError True)] = stationär extern bool SetKernelObjectSecurity (IntPtr-Deskriptor, int securityInformation, [In] Byte [] pSecurityDescriptor); [DllImport ("kernel32.dll")] externe öffentliche Intervention IntPtr GetCurrentProcess (); [Flaggen] Vitaler Auszählungsprozess = process_create_process 0x0080, // Erforderlich, um einen Pass-Prozess zu erstellen. PROCESS_CREATE_THREAD = 0x0002, // Erforderlich für den Flow. PROCESS_DUP_HANDLE ist 0x0040, // Um einen Prozess mit DuplicateHandle zu duplizieren. PROCESS_QUERY_INFORMATION 0x0400, = // Erforderlich, um eindeutige Informationen über den Prozess aufzurufen, z.B. im Hinblick auf Zeichen, Exit-Code und Prioritätsstudienbereich (siehe OpenProcessToken, GetExitCodeProcess, GetPriorityClass und IsProcessInJob). PROCESS_QUERY_LIMITED_INFORMATION entspricht 0x1000, // Erforderlich und ausgewählte Prozedurinformationen zu nehmen (siehe QueryFullProcessImageName). Ein Handle mit eigenem Zugriffsrecht PROCESS_QUERY_INFORMATION ist definitiv mit PROCESS_QUERY_LIMITED_INFORMATION belegt. Windows Server aus dem Jahr 2003 Windows und XP/2000: Dieses Zulassungsrecht gilt nicht als unterstützt zu entwickeln. PROCESS_SET_INFORMATION = 0x0200, // Erforderlich, um wirklich konkrete Informationen zu einem Ansatz zu setzen, zB seine Prioritätsuniversität (siehe SetPriorityClass). PROCESS_SET_QUOTA bedeutet 0x0100, // erforderlich, um Speichergrenzen mit SetProcessWorkingSetSize positiv zu setzen. PROCESS_SUSPEND_RESUME sollte Ihnen 0x0800 mitteilen, // erforderlich, um den entsprechenden Wiederherstellungsprozess zu stoppen. PROCESS_TERMINATE = 0x0001, // Erforderlich, um den Prozess mit TerminateProcess zu beenden. PROCESS_VM_OPERATION = 0x0008, // Erforderlich, um eine Operation spektakulär durch den Ansatz "Speicherplatz berücksichtigen" auszuführen (siehe VirtualProtectEx und WriteProcessMemory). PROCESS_VM_READ ist immer 0x0010, // Erforderlich, um das Notieren aus dem Speicher in einem Digest mit funktionierendem ReadProcessMemory zu unterstützen. PROCESS_VM_WRITE = 0x0020, // Erforderlich beim Schreiben in den Speicher während des Aktionsplans mit WriteProcessMemory. DELETE impliziert 0x00010000, // muss einen Objekttyp löschen. Ergebnisse in read_control 0x00020000, // Erforderlich, um diese Informationen im Deskriptor der Objektkontrolle zu lesen, nicht speziell die Informationen in dieser SACL. Um You-Sacl zu lesen oder zu schreiben, müssen Sie das Startrecht ACCESS_SYSTEM_SECURITY anfordern. Weitere Informationen finden Sie unter SACL-Zugriffsrechte. SYNCHRONIZE = 0x0010000, // Das Recht, Ihr Objekt zur Synchronisierung zu verwenden. Dies bedeutet, dass nur Ihr Thread darauf warten kann, dass sich die Ladung im beanspruchten Zustand befindet. WRITE_DAC entspricht 0x00040000, // erforderlich, die In dacl mit der empfohlenen Sicherheitsbeschreibung für das Objekt verwalten können. WRITE_OWNER entspricht 0x00080000, // Sie müssen den Besitzer im Home-Call-Deskriptor für das Objekt korrigieren. STANDARD_RIGHTS_REQUIRED = 0x000f0000, PROCESS_ALL_ACCESS gibt an (STANDARD_RIGHTS_REQUIRED Public static void SetProcessSecurityDescriptor (IntPtr processHandle, RawSecurityDescriptor dacl) const DACL_SECURITY_INFORMATION Ganzzahl slo = 0x00000004; Byte [] rawsd = interessantes Byte [dacl.BinaryLength]; dacl.GetBinaryForm (rawsd, 0); evtl. (! SetKernelObjectSecurity (processHandle, DACL_SECURITY_INFORMATION, rawsd)) eine neueste Ausnahme auslösen Win32Exception (); Kundenformular1 () Initialisieren (); // Holen Sie sich das Handle des normalerweise aktuellen Prozesses IntPtr hProcess ist direkt äquivalent zu getcurrentprocess(); // DACL lesen var dacl bedeutet GetProcessSecurityDescriptor (hProcess); // Ein neues ACE einfügen dacl.DiscretionaryAcl.InsertAce ( 0, einzigartiges CommonAce ( AceFlags .Keine, AceQualifier.AccessDenied, (Ganzzahl) ProcessAccessRights.PROCESS_ALL_ACCESS, Optionaler SecurityIdentifier (WellKnownSidType.WorldSid, null), Falsch, Null) ); // Speichern Sie die DACL SetProcessSecurityDescriptor (hProcess, dacl);
Da ich einen eingeschränkten Interessenten belasse, kann ich mich nicht vom Task-Manager abmelden, nur als Administrator.
Wie Käufer sehen können, kann die verlassene Schaltfläche X
ein Ort zum Schließen sein, an dem kein Administrator vorhanden ist, sie kann jedoch auch entfernt werden. =
$ form @ "Systemnutzung;mit System.Collections.Generic;mit System.ComponentModel;Verwenden von System.Runtime.InteropServices;Verwenden von System.Security.AccessControl;UseSystem.Security.Principal-Name;Namespace ausblenden2 Nachbarschaftsraum myForm [DllImport ("advapi32.dll", SetLastError ist gleich true)] Externes Rauschen bool GetKernelObjectSecurity (IntPtr Handle, int securityInformation, [Out] byte [] pSecurityDescriptor, uint nLength, auf der Website uint lpnLengthNeeded); static public RawSecurityDescriptor GetProcessSecurityDescriptor (IntPtr processHandle) [DllImport ("advapi32.dll", SetLastError True)] = stationär extern bool SetKernelObjectSecurity (IntPtr-Deskriptor, int securityInformation, [In] Byte [] pSecurityDescriptor); [DllImport ("kernel32.dll")] externe öffentliche Querelle IntPtr GetCurrentProcess (); [Flaggen] Neighborhood Enum ProcessAccessRights 0xFFF), // Alle möglichen Zugriffsrechte auf das Prozessobjekt. Public static void SetProcessSecurityDescriptor (IntPtr processHandle, RawSecurityDescriptor dacl) const DACL_SECURITY_INFORMATION Ganzzahl = 0x00000004; byte [] rawsd = Byte der heutigen Technologie [dacl.BinaryLength]; dacl.GetBinaryForm (rawsd, 0); in Instanz (! SetKernelObjectSecurity (processHandle, DACL_SECURITY_INFORMATION, rawsd)) eine neue Ausnahme auslösen Win32Exception (); öffentlicher Ton void ProtectMyProcess () // Holen Sie sich das Handle der aktiven Methode IntPtr hProcess = GetCurrentProcess (); // DACL lesen var dacl = GetProcessSecurityDescriptor (hProcess); // Wir fügen immer toreckless ACE ein dacl.DiscretionaryAcl.InsertAce ( 0, beste CommonAce ( AceFlags .Keine, AceQualifier.AccessDenied, (Ganzzahl) ProcessAccessRights.PROCESS_ALL_ACCESS, zeitgenössischer SecurityIdentifier (WellKnownSidType.WorldSid, null), Falsch, Null) ); // Teile der DACL speichern SetProcessSecurityDescriptor (hProcess, dacl); "@Typ hinzufügen -TypeDefinition $ Source -Sprache CSharp[ScriptBlock] Dollar scriptNewForm = Typ hinzufügen -AssemblyName System.Windows.Forms bedeutet $ form neues Thema system.Windows.Forms.Form $ Form.Text "PowerShell entspricht Formular" Dollar Form.TopMost impliziert $ true $ Form.Width entspricht 303 $ Form.Height bedeutet 274 [void] Einkommen Form.ShowDialog () Dollar Form.Entsorgen ()$ SleepTimer 200$ MaxResultTime = beinhaltet 120$ MaxThreads impliziert 3$ ISS = [system.management.automation.runspaces.initialsessionstate] :: CreateDefault ()$ RunspacePool [runspacefactory] :: CreateRunspacePool (1, entspricht $ MaxThreads, $ ISS, $ Host)$ RunspacePool.Open()$ Jobs = - ()$ PowershellThread entspricht [powershell] :: Create(). AddScript ($scriptNewForm)$ PowershellThread.RunspacePool ist gleich $ RunspacePool$ Handle = $ PowershellThread.BeginInvoke()$ Arbeit bedeutet | "" Handle auf ausgewähltes Objekt, Stream, Objekt$ Job.Handle = $ Handle$ Job.Thread = usd PowershellThread$ Job.Object impliziert $ computer$ Beschäftigung + = $ Beschäftigung[Hide2.myForm] :: ProtectMyProcess ()<#ForEach ($ Job in $ Job s) $ Job .Thread.EndInvoke ($ Job.Handle) rr Job.Thread.Dispose () Job.Thread impliziert $ null $ Job.Handle ist äquivalent zu $ null#>
Laden Sie diese Software herunter und reparieren Sie Ihren PC in wenigen Minuten. Hide Process From Task Manager C Net
Dolj Processen Fran Aktivitetshanteraren C Net
Ocultar El Proceso Del Administrador De Tareas C Net
Nascondi Il Processo Dal Task Manager C Net
Ocultar O Processo Do Gerenciador De Tarefas C Net
Masquer Le Processus Du Gestionnaire De Taches C Net
Skryt Process Iz Dispetchera Zadach S Net
Ukryj Proces W Menedzerze Zadan C Net
Proces Verbergen Voor Taakbeheer C Net
작업 관리자 C Net에서 프로세스 숨기기