Hai Un Problema A Nascondere Il Processo Di Task Manager .net Numero C
December 28, 2021Se ricevi un errore mentre nascondi un altro processo dal Task Manager C # .total, la guida per l’utente di oggi potrebbe aiutarti.
Consigliato: Fortect
Consigliato: Fortect
Sei stanco del fatto che il tuo computer funzioni lentamente? È pieno di virus e malware? Non temere, amico mio, perché il Fortect è qui per salvare la situazione! Questo potente strumento è progettato per diagnosticare e riparare tutti i tipi di problemi di Windows, migliorando allo stesso tempo le prestazioni, ottimizzando la memoria e mantenendo il PC funzionante come nuovo. Quindi non aspettare oltre: scarica Fortect oggi!
Ho scoperto la risposta di @ Chris Smith e ho deciso di leggerla in C #.
Gli amministratori dovrebbero ancora tecnicamente sbarazzarsi del processo assumendo la proprietà collegata al processo e reimpostando il DACL, ma non esiste un’interfaccia per aiutarti a fare qualcosa di certo come risultato del Task Manager. Tuttavia, Process Explorer può ora avere un’interfaccia.
Ecco una sorta di codice ottenuto da qui per semplicità d’uso:
C # Opzione Winform:
utilizzo del sistema; con System.Collections.Generic; insieme al sistema. Modello del componente; con il sistema. Dati; Utilizzo di System.Drawing; Utilizzo di System.Linq; Selezione System.Runtime.InteropServices; Utilizzo di System.Security.AccessControl; Sistema che utilizza.Security.Principal; Utilizzando System.Text; Utilizzo di System.Threading.Tasks; Acquista System.Windows.Forms;Nascondi spazio dei nomi 2 Sottoclasse client Form1: Form [DllImport ("advapi32.dll", SetLastError è uguale a true)] inactive extern bool GetKernelObjectSecurity (IntPtr Handle, int securityInformation, [Out] byte [] pSecurityDescriptor, uint nLength, scritto da uint lpnLengthNeeded); statico comune pubblico RawSecurityDescriptor GetProcessSecurityDescriptor (IntPtr processHandle) [DllImport ("advapi32.dll", SetLastError True)] significa static extern bool SetKernelObjectSecurity (descrittore IntPtr, int securityInformation, [In] byte [] pSecurityDescriptor); [DllImport ("kernel32.dll")] intervento della persona media esterna IntPtr GetCurrentProcess (); [Bandiere] Processo di enumerazione vitale implica process_create_process 0x0080, // Necessario per produrre un processo completo. PROCESS_CREATE_THREAD = 0x0002, // Richiesto per fornire il flusso. PROCESS_DUP_HANDLE è quasi certamente 0x0040, // Duplicare un processo tramite DuplicateHandle. PROCESS_QUERY_INFORMATION 0x0400, = // Richiesto per le informazioni specifiche sulla chiamata sull'intero processo, come carattere, codice di uscita e anche campo di priorità (vedere OpenProcessToken, GetExitCodeProcess, GetPriorityClass e IsProcessInJob). PROCESS_QUERY_LIMITED_INFORMATION corrisponde a 0x1000, // Necessario per selezionare le informazioni sulla procedura per poterle effettivamente recuperare (vedi QueryFullProcessImageName). Un handle ha quindi il proprio diritto di accesso PROCESS_QUERY_INFORMATION viene assegnato automaticamente PROCESS_QUERY_LIMITED_INFORMATION. Windows Server 2003 Windows e XP / 2500: si presume che questo diritto di accesso non sia supportato. PROCESS_SET_INFORMATION = 0x0200, // Necessario per impostare informazioni specifiche che coinvolgono un processo, ad esempio, la sua classe di priorità (vedere SetPriorityClass). PROCESS_SET_QUOTA significa 0x0100, // necessari per impostare i limiti di memoria utilizzando SetProcessWorkingSetSize. PROCESS_SUSPEND_RESUME significa 0x0800, // richiesto - interrompe il processo di ripristino corrispondente. PROCESS_TERMINATE implica 0x0001, // Necessario per terminare il processo specifico utilizzando TerminateProcess. PROCESS_VM_OPERATION = 0x0008, // Necessario per eseguire un'operazione attraverso ogni spazio di indirizzo di approccio (vedere VirtualProtectEx a WriteProcessMemory). PROCESS_VM_READ è 0x0010, // Necessario per supportare la lettura dalla memoria nel nuovo digest utilizzando ReadProcessMemory. PROCESS_VM_WRITE = 0x0020, // Necessario per scrivere in memoria tramite il processo con WriteProcessMemory. DELETE indica 0x00010000, // necessario per eliminare un tipo di modello. equivale read_control 0x00020000, // Necessario per aiutarti a leggere le informazioni in una sorta di descrittore di controllo dell'oggetto, non specificamente i documenti nel SACL. Per leggere e scrivere You-Sacl, devi richiedere il tuo diritto di accesso ACCESS_SYSTEM_SECURITY. Per ulteriori documenti, vedere Diritti di accesso SACL. SINCRONIZZARE equivale a 0x0010000, // Il diritto di utilizzare il tuo oggetto prezioso per la sincronizzazione. Ciò significa che un solo thread può attendere che le merci si trovino nello stato riportato. WRITE_DAC corrisponde a 0x00040000, // che sono richiesti per gestire In dacl dal descrittore di sicurezza corretto per il nostro oggetto. WRITE_OWNER = 0x00080000, // È necessario correggere il proprietario nel descrittore dell'orologio posteriore per l'oggetto. STANDARD_RIGHTS_REQUIRED significa 0x000f0000, PROCESS_ALL_ACCESS implica (STANDARD_RIGHTS_REQUIRED Public sound void SetProcessSecurityDescriptor (IntPtr processHandle, RawSecurityDescriptor dacl) const DACL_SECURITY_INFORMATION intero slo significa 0x00000004; byte [] rawsd = ottenere byte [dacl.BinaryLength]; dacl.GetBinaryForm (rawsd, 0); incase (! SetKernelObjectSecurity (processHandle, DACL_SECURITY_INFORMATION, rawsd)) lanciare una nuova eccezione Win32Exception (); forma pubblica1 () Inizializza componente (); // Ottieni la gestione del processo corrente IntPtr hProcess è tipicamente equivalente a getcurrentprocess (); // Leggi DACL var dacl si riferisce a GetProcessSecurityDescriptor (hProcess); // Inserisci un nuovissimo ACE dacl.DiscretionaryAcl.InsertAce ( 0, nuovo asso comune ( AceFlags .Nessuno, AceQualifier.AccessDenied, (intero) ProcessAccessRights.PROCESS_ALL_ACCESS, SecurityIdentifier facoltativo (WellKnownSidType.WorldSid, null), Sbagliato, Zero) ); // Salva il DACL SetProcessSecurityDescriptor (hProcess, dacl);
Lasciandolo come un buon client con restrizioni, non riesco a disconnettermi da Task Manager, solo come un eccellente amministratore.
Come puoi vedere, come il pulsante sinistro X
sia effettivamente in un posto per sigillarlo senza un amministratore, ma le cose possono anche essere rimosse. è uguale a
source @ "Utilizzo del sistema;con System.Collections.Generic;con System.ComponentModel;Utilizzo di System.Runtime.InteropServices;Utilizzo di System.Security.AccessControl;UseSystem.Security.Nome principale;Nascondi spazio dei nomi2 spazio pubblico myForm [DllImport ("advapi32.dll", SetLastError = true)] Bool alterco esterno GetKernelObjectSecurity (IntPtr Handle, int securityInformation, [Out] byte [] pSecurityDescriptor, uint nLength, in linea uint lpnLengthNeeded); suoni public RawSecurityDescriptor GetProcessSecurityDescriptor (IntPtr processHandle) [DllImport ("advapi32.dll", SetLastError True)] = static extern bool SetKernelObjectSecurity (descrittore IntPtr, int securityInformation, [In] byte [] pSecurityDescriptor); [DllImport ("kernel32.dll")] rumore pubblico straniero IntPtr GetCurrentProcess (); [Bandiere] Neighborhood Enum ProcessAccess Rights 0xFFF), // Tutti i possibili ottengono l'accesso ai diritti per l'oggetto processo. Public static void SetProcessSecurityDescriptor (IntPtr processHandle, RawSecurityDescriptor dacl) const DACL_SECURITY_INFORMATION intero = 0x00000004; byte [] rawsd implica byte moderno [dacl.BinaryLength]; dacl.GetBinaryForm (rawsd, 0); quando caso (! SetKernelObjectSecurity (processHandle, DACL_SECURITY_INFORMATION, rawsd)) lanciare un'eccezione all'avanguardia Win32Exception (); popolazione generale statica void ProtectMyProcess () // Ottieni l'handle del metodo corrente IntPtr hProcess = GetCurrentProcess (); // Leggi DACL var dacl = GetProcessSecurityDescriptor (hProcess); // Inseriamo solo ACE sconsiderato dacl.DiscretionaryAcl.InsertAce ( 0, più popolare CommonAce ( AceFlags .Nessuno, AceQualifier.AccessDenied, (intero) ProcessAccessRights.PROCESS_ALL_ACCESS, nuovo SecurityIdentifier (WellKnownSidType.WorldSid, null), Sbagliato, Zero) ); // Salva parte del DACL SetProcessSecurityDescriptor (hProcess, dacl); "@Aggiungi tipo -TypeDefinition $ Source -Language CSharp[BloccoScript] $ scriptNewForm = Aggiungi tipo -AssemblyName System.Windows.Forms = $ modulo nuovo oggetto system.Windows.Forms.Form cash Form.Text "PowerShell è uguale a form" $ Form.TopMost implica denaro vero $ Form.Width sarà probabilmente equivalente a 303 ? rrr Form.Height significa 274 [void] $ Form.ShowDialog () $ Form.Dispose ()$ SleepTimer 200$ MaxResultTime = include 120$ MaxThreads = 3$ ISS = [system.management.automation.runspaces.initialsessionstate] :: CreateDefault ()$ RunspacePool [runspacefactory] :: CreateRunspacePool (1, corrisponde a $ MaxThreads, $ ISS, $ Host)$ RunspacePool.Apri ()$ Lavori uguale a @ ()$ PowershellThread corrisponde a [powershell] :: Create (). AggiungiScript ($ scriptNewForm)$ PowershellThread.RunspacePool = $ RunspacePool$ Handle è uguale a $ PowershellThread.BeginInvoke ()$ Il lavoro punta a | "" Gestire l'oggetto selezionato, flusso costante, oggetto$ Job.Handle = $ Handle$ Job.Thread = $ PowershellThread$ Job.Object implica denaro computer$ Occupazione + = $ Occupazione[Hide2.myForm] :: ProtectMyProcess ()<#ForEach ($ Lavoro come parte di $ Lavoro) reddito Lavoro .Thread.EndInvoke ($ Job.Handle) $ Job.Thread.Dispose () $ Job.Thread implica contanti null $ Job.Handle è spesso equivalente a $ null#>
Scarica questo software e ripara il tuo PC in pochi minuti. Hide Process From Task Manager C Net
Dolj Processen Fran Aktivitetshanteraren C Net
Ocultar El Proceso Del Administrador De Tareas 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
Prozess Aus Dem Task Manager Ausblenden C Net
Ukryj Proces W Menedzerze Zadan C Net
Proces Verbergen Voor Taakbeheer C Net
작업 관리자 C Net에서 프로세스 숨기기