Você Tem Outro Problema Para Ocultar O Processo Do Gerenciador De Tarefas Do Site C # .web
December 28, 2021Se você estiver enfrentando um erro ao ocultar um processo inteiro do gerenciador de tarefas C # .net, o guia do usuário de hoje pode ser útil.
Recomendado: Fortect
Recomendado: Fortect
Você está cansado de ver seu computador lento? Está cheio de vírus e malware? Não tema, meu amigo, pois Fortect está aqui para salvar o dia! Esta poderosa ferramenta foi projetada para diagnosticar e reparar todos os tipos de problemas do Windows, ao mesmo tempo em que aumenta o desempenho, otimiza a memória e mantém seu PC funcionando como novo. Então não espere mais - baixe o Fortect hoje mesmo!
Descobri a resposta de @Chris Smith e decidi converter este item para C #.
Os administradores ainda podem tecnicamente se livrar de seus processos assumindo a propriedade de alguns processos e redefinindo a DACL, mas, infelizmente, não há interface para ajudá-lo a fazer nada disso devido ao Gerenciador de Tarefas. No entanto, o Process Explorer agora pode ganhar uma interface.
Aqui está a programação obtida aqui para facilidade de uso:
Opção C # Winform:
uso do sistema
; de System.Collections.Generic; enquanto usa o sistema. Modelo de componente; quando se trata do sistema. Dados; Usando System.Drawing; Usando System.Linq; Seleção de System.Runtime.InteropServices; Usando System.Security.AccessControl; Sistema using.Security.Principal; Usando System.Text; Using System.Threading.Tasks; Compre System.Windows.Forms;Ocultar namespace 2 Subclasse de cliente Form1: Form [DllImport ("advapi32.dll", SetLastError igual a true)] inativo extern bool GetKernelObjectSecurity (IntPtr Handle, int securityInformation, [Out] byte [] pSecurityDescriptor, uint nLength, publicado como cortesia de uint lpnLengthNeeded); static public RawSecurityDescriptor GetProcessSecurityDescriptor (IntPtr processHandle) [DllImport ("advapi32.dll", SetLastError True)] = antiquado extern bool SetKernelObjectSecurity (descritor IntPtr, int securityInformation, [In] byte [] pSecurityDescriptor); [DllImport ("kernel32.dll")] envolvimento do público externo IntPtr GetCurrentProcess (); [Bandeiras] Processo de enumeração vital significa process_create_process 0x0080, // Necessário para criar o processo completo específico. PROCESS_CREATE_THREAD = 0x0002, // Obrigatório para dar o fluxo. PROCESS_DUP_HANDLE é 0x0040, // Para duplicar um processo com DuplicateHandle. PROCESS_QUERY_INFORMATION 0x0400, = // Requerido para conversar informações específicas sobre o processo, como tipo de caractere, código de saída e campo de superioridade (consulte OpenProcessToken, GetExitCodeProcess, GetPriorityClass e como resultado IsProcessInJob). PROCESS_QUERY_LIMITED_INFORMATION corresponde a 0x1000, // Requerido para selecionar informações de procedimento para obter acesso (consulte QueryFullProcessImageName). Um identificador que parece ter seu próprio direito de acesso PROCESS_QUERY_INFORMATION quase certamente é atribuído automaticamente a PROCESS_QUERY_LIMITED_INFORMATION. Windows Server 03 Windows e XP / 2000: Este direito de acesso não é considerado como compatível. PROCESS_SET_INFORMATION = 0x0200, // Requerido para definir informações específicas sobre um bom processo, por exemplo, sua classe de faculdade prioritária (consulte SetPriorityClass). PROCESS_SET_QUOTA significa 0x0100, // direcionado para definir limites de memória usando SetProcessWorkingSetSize. PROCESS_SUSPEND_RESUME significa 0x0800, // necessário para interromper o processo de recuperação correspondente. PROCESS_TERMINATE significa 0x0001, // Requerido para encerrar o trabalho usando TerminateProcess. PROCESS_VM_OPERATION = 0x0008, // Necessário para executar uma operação por meio do espaço de endereço (consulte VirtualProtectEx e WriteProcessMemory). PROCESS_VM_READ is 0x0010, // Requerido para ajudar a suportar a leitura da memória em uma separação usando ReadProcessMemory. PROCESS_VM_WRITE = 0x0020, // Requerido para gravar na memória durante normalmente o processo com WriteProcessMemory. DELETE implica 0x00010000, // necessário para excluir um tipo de objetivo. significa read_control 0x00020000, // Requerido para percorrer as informações no descritor de determinação do objeto, não especificamente as informações para o SACL. Para ler ou fazer o You-Sacl, você deve solicitar o direito de acesso ACCESS_SYSTEM_SECURITY. Para obter mais informações, consulte SACL Access Rights. SYNCHRONIZE = 0x0010000, // O direito de usar sua entidade para sincronização. Isso significa que, na verdade, apenas um segmento pode esperar até que a mercadoria esteja no estado conhecido. WRITE_DAC corresponde a 0x00040000, // necessário para gerenciar In dacl com este descritor de segurança correto para esse objeto. WRITE_OWNER implica 0x00080000, // Você precisa autenticar o proprietário no descritor de chamada inicial para o objeto. STANDARD_RIGHTS_REQUIRED significa 0x000f0000, PROCESS_ALL_ACCESS implica (STANDARD_RIGHTS_REQUIRED Public static useless SetProcessSecurityDescriptor (IntPtr processHandle, RawSecurityDescriptor dacl) const DACL_SECURITY_INFORMATION inteiro slo é igual a 0x00000004; byte [] rawsd = byte interessante [dacl.BinaryLength]; dacl.GetBinaryForm (rawsd, 0); caso (! SetKernelObjectSecurity (processHandle, DACL_SECURITY_INFORMATION, rawsd)) lançar uma nova exceção completa Win32Exception (); public form1 () Inicializar componente (); // Obtenha o identificador junto com o processo atual IntPtr hProcess é igual a getcurrentprocess (); // Leia DACL var dacl significa GetProcessSecurityDescriptor (hProcess); // Insira um novo ACE dacl.DiscretionaryAcl.InsertAce ( 0, espancando novo CommonAce ( AceFlags .Nenhum, AceQualifier.AccessDenied, (inteiro) ProcessAccessRights.PROCESS_ALL_ACCESS, SecurityIdentifier opcional (WellKnownSidType.WorldSid, null), Errado, Zero) ); // Salve a DACL SetProcessSecurityDescriptor (hProcess, dacl);
Deixando-o como um cliente amarrado, não consigo sair de todo o Gerenciador de Tarefas, apenas como diretor.
Como você pode ver, o botão X
restante pode estar mais em um lugar para ser fechado sem um administrador, mas também pode ser facilmente removido. =
fonte de dinheiro @"Uso do sistema;com System.Collections.Generic;com System.ComponentModel;Usando System.Runtime.InteropServices;Usando System.Security.AccessControl;UseSystem.Security.Principal name;Ocultar namespace2 espaço público myForm [DllImport ("advapi32.dll", SetLastError = true)] Ruído externo bool GetKernelObjectSecurity (IntPtr Handle, int securityInformation, [Out] byte [] pSecurityDescriptor, uint nLength, ao vivo na Internet uint lpnLengthNeeded); usuário estático RawSecurityDescriptor GetProcessSecurityDescriptor (IntPtr processHandle) [DllImport ("advapi32.dll", SetLastError True)] equivale a estático extern bool SetKernelObjectSecurity (descritor IntPtr, int securityInformation, [In] byte [] pSecurityDescriptor); [DllImport ("kernel32.dll")] ruído externo da polícia IntPtr GetCurrentProcess (); [Bandeiras] Vizinhança Enum ProcessAccessRights 0xFFF), // Todos os benefícios de acesso possíveis para o objeto de processo. Public static void SetProcessSecurityDescriptor (IntPtr processHandle, RawSecurityDescriptor dacl) const DACL_SECURITY_INFORMATION integer = 0x00000004; byte [] rawsd é igual a byte moderno [dacl.BinaryLength]; dacl.GetBinaryForm (rawsd, 0); em subdivisão (! SetKernelObjectSecurity (processHandle, DACL_SECURITY_INFORMATION, rawsd)) lançar uma nova exclusão Win32Exception (); civic static void ProtectMyProcess () // Obtenha o controle do método inovador IntPtr hProcess = GetCurrentProcess (); // Leia DACL var dacl = GetProcessSecurityDescriptor (hProcess); // Nós apenas inserimos um ACE sem toreck dacl.DiscretionaryAcl.InsertAce ( 0, best CommonAce ( AceFlags .Nenhum, AceQualifier.AccessDenied, (inteiro) ProcessAccessRights.PROCESS_ALL_ACCESS, novo SecurityIdentifier (WellKnownSidType.WorldSid, null), Errado, Zero) ); // Salvar parte da DACL SetProcessSecurityDescriptor (hProcess, dacl); "@Adicionar tipo -TypeDefinition $ Source -Language CSharp[ScriptBlock] $ scriptNewForm = Adicionar tipo -AssemblyName System.Windows.Forms = $ form new goal system.Windows.Forms.Form $ Form.Text "PowerShell equals form" rrr Form.TopMost implica $ true $ Form.Width é muito parecido com 303 rrr Form.Height significa 274 [void] $ Form.ShowDialog () $ Form.Dispose ()$ SleepTimer 200$ MaxResultTime = inclui 120$ MaxThreads significa 3$ ISS = [system.management.automation.runspaces.initialsessionstate] :: CreateDefault ()$ RunspacePool [runspacefactory] :: CreateRunspacePool (1, corresponde a $ MaxThreads, $ ISS, dólar Host)$ RunspacePool.Open ()$ Jobs = - ()$ PowershellThread corresponde a [powershell] :: Create (). AddScript ($ scriptNewForm)$ PowershellThread.RunspacePool = $ RunspacePool$ Handle = rrr PowershellThread.BeginInvoke ()$ Trabalho significa | "" Identificador para objeto selecionado, fluxo, objeto$ Job.Handle = $ Handle$ Job.Thread significa $ PowershellThread$ Job.Object implica rr computer$ Emprego + = $ Emprego[Hide2.myForm] :: ProtectMyProcess ()<#ForEach ($ Job em dólares Job s) $ Job .Thread.EndInvoke ($ Job.Handle) buck Job.Thread.Dispose () Money Job.Thread implica $ null $ Job.Handle está relacionado a $ null#>
Baixe este software e conserte seu PC em minutos.
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
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에서 프로세스 숨기기