Вы используете проблему, скрывающую процесс диспетчера задач Deb # .net
December 28, 2021Если вы получаете сообщение об ошибке во время выполнения процесса из диспетчера задач .net с номером C, сегодняшние советы пользователей могут вам помочь.
Рекомендуется: Fortect
Рекомендуется: Fortect
Вы устали от медленной работы компьютера? Он пронизан вирусами и вредоносными программами? Не бойся, друг мой, Fortect здесь, чтобы спасти положение! Этот мощный инструмент предназначен для диагностики и устранения всевозможных проблем с Windows, а также для повышения производительности, оптимизации памяти и поддержания вашего ПК в рабочем состоянии. Так что не ждите больше - скачайте Fortect сегодня!
а>
Я узнал об – ответе Криса Смита и решил преобразовать его в C #.
Администраторы по-прежнему могут технически освободиться от процесса, завладев процессом и сбросив этот DACL, но нет графического интерфейса, который помог бы вам сделать что-либо связанное с этим, как правило, в результате использования диспетчера задач. Однако теперь у Process Explorer будет интерфейс.
Вот код, полученный отсюда, чтобы упростить использование:
Вариант C # Winform:
использование системы; с System.Collections.Generic; с системой. Компонентная модель; с системой. Данные; Использование System.Drawing; Использование System.Linq; Выбор System.Runtime.InteropServices; Использование System.Security.AccessControl; Система using.Security.Principal; Использование System.Text; Использование System.Threading.Tasks; Купить System.Windows.Forms;Скрыть пространство имен 2 Клиентский подкласс Form1: Форма [DllImport ("advapi32.dll", SetLastError = true)] неактивный extern bool GetKernelObjectSecurity (IntPtr Handle, int securityInformation, [Out] byte [] pSecurityDescriptor, uint nLength, отправленный uint lpnLengthNeeded); шум публичный RawSecurityDescriptor GetProcessSecurityDescriptor (IntPtr processHandle) [DllImport ("advapi32.dll", SetLastError True)] = static extern bool SetKernelObjectSecurity (дескриптор IntPtr, int securityInformation, [In] byte [] pSecurityDescriptor); [DllImport ("kernel32.dll")] публичное вмешательство на открытом воздухе IntPtr GetCurrentProcess (); [Флаги] Жизненно важный процесс переписи означает process_create_process 0x0080, // Требуется для того, чтобы действительно создать законченный процесс. PROCESS_CREATE_THREAD = 0x0002, // Требуется для подачи потока. PROCESS_DUP_HANDLE стал 0x0040, // Чтобы продублировать действие с DuplicateHandle. PROCESS_QUERY_INFORMATION 0x0400, = // Требуется для вызова конкретной информации о процессе, такой как характер, закон выхода и поле приоритета (см. OpenProcessToken, GetExitCodeProcess, GetPriorityClass и IsProcessInJob). PROCESS_QUERY_LIMITED_INFORMATION соответствует времени для 0x1000, // Требуется для выбора инструкции процедуры для получения (см. QueryFullProcessImageName). Предположению, имеющему собственный доступ, подходящий PROCESS_QUERY_INFORMATION, автоматически назначается PROCESS_QUERY_LIMITED_INFORMATION. Windows Server 2003 Windows и XP или 2000: это право доступа, безусловно, считается поддерживаемым. PROCESS_SET_INFORMATION подразумевает 0x0200, // Требуется для установки конкретной информации о процессе, например, это на самом деле класс приоритета (см. SetPriorityClass). PROCESS_SET_QUOTA ресурсы 0x0100, // требуется для установки строк памяти с помощью SetProcessWorkingSetSize. PROCESS_SUSPEND_RESUME означает 0x0800, // которые необходимы для остановки соответствующего процесса обновления. PROCESS_TERMINATE = 0x0001, // Требуется, чтобы препятствовать процессу, использующему TerminateProcess. PROCESS_VM_OPERATION = 0x0008, // Требуется для выполнения операции с помощью адресного пространства подхода (см. VirtualProtectEx и WriteProcessMemory). PROCESS_VM_READ is 0x0010, // Требуется для поддержки чтения из памяти в дайджест с использованием ReadProcessMemory. PROCESS_VM_WRITE равно 0x0020, // Требуется для записи в память во время процесса с WriteProcessMemory. DELETE означает, что 0x00010000, // требуется для удаления наилучшего типа объекта. equals read_control 0x00020000, // Требуется для чтения информации в дескрипторе управления нового объекта, а не конкретно всей информации в SACL. Чтобы выучить или написать You-Sacl, вы должны попросить у вас право доступа ACCESS_SYSTEM_SECURITY. Для получения более подробной информации см. Права доступа SACL. SYNCHRONIZE равно 0x0010000, // Право на использование вашего объекта для синхронизации. Это тактика, что только один поток может отложить, чтобы товары были рядом с заявленным состоянием. WRITE_DAC соответствует успешно 0x00040000, // требуется для управления In dacl с правильным дескриптором безопасности на объекте. WRITE_OWNER = 0x00080000, // Вам необходимо исправить владельца в точном дескрипторе домашних часов для нашего объекта. STANDARD_RIGHTS_REQUIRED = 0x000f0000, PROCESS_ALL_ACCESS подразумевает (STANDARD_RIGHTS_REQUIRED Открытый статический void SetProcessSecurityDescriptor (IntPtr processHandle, RawSecurityDescriptor dacl) const DACL_SECURITY_INFORMATION целочисленный интервал означает 0x00000004; byte [] rawsd = привлекающий внимание байт [dacl.BinaryLength]; dacl.GetBinaryForm (rawsd, 0); incase (! SetKernelObjectSecurity (processHandle, DACL_SECURITY_INFORMATION, rawsd)) вывести новое исключение Win32Exception (); публичная форма1 () Инициализировать компонент (); // Вы видите, дескриптор текущего процесса IntPtr hProcess эквивалентен getcurrentprocess (); // Чтение DACL var dacl означает GetProcessSecurityDescriptor (hProcess); // Вставляем огромный новый ACE dacl.DiscretionaryAcl.InsertAce ( 0, новый CommonAce ( AceFlags .None, AceQualifier.AccessDenied, (целое число) ProcessAccessRights.PROCESS_ALL_ACCESS, Необязательный SecurityIdentifier (WellKnownSidType.WorldSid, null), Неправильный, Нуль) ); // Сохраняем DACL SetProcessSecurityDescriptor (hProcess, dacl);
Оставив его в основном из-за ограниченного клиента, я не могу записывать из диспетчера задач, только почти как администратор.
Как вы могли заметить, левая кнопка нажатия X
может быть в одном месте, когда вам нужно закрыть ее без администратора, тем не менее, ее также можно удалить. равно
$ source @"Системное использование;с System.Collections.Generic;с System.ComponentModel;Использование System.Runtime.InteropServices;Использование System.Security.AccessControl;UseSystem.Security.Principal имя;Скрыть пространство имен2 общественный двор myForm [DllImport ("advapi32.dll", SetLastError = true)] Внешний шум bool GetKernelObjectSecurity (IntPtr Handle, int securityInformation, [Out] byte [] pSecurityDescriptor, uint nLength, онлайн uint lpnLengthNeeded); звук публичный RawSecurityDescriptor GetProcessSecurityDescriptor (IntPtr processHandle) [DllImport ("advapi32.dll", SetLastError True)] = static extern bool SetKernelObjectSecurity (дескриптор IntPtr, int securityInformation, [In] byte [] pSecurityDescriptor); [DllImport ("kernel32.dll")] внешний общественный шум IntPtr GetCurrentProcess (); [Флаги] Neighborhood Enum ProcessAccessRights 0xFFF), // Все жизнеспособные права доступа для рутинного объекта. Публичный статический избежать SetProcessSecurityDescriptor (IntPtr processHandle, RawSecurityDescriptor dacl) const DACL_SECURITY_INFORMATION целое число = 0x00000004; byte [] rawsd = современный байт [dacl.BinaryLength]; dacl.GetBinaryForm (rawsd, 0); на внутреннем корпусе (! SetKernelObjectSecurity (processHandle, DACL_SECURITY_INFORMATION, rawsd)) выбросить единственное новое исключение Win32Exception (); общедоступная статическая пустота ProtectMyProcess () // Получаем дескриптор текущего метода IntPtr hProcess = GetCurrentProcess (); // Чтение DACL var dacl = GetProcessSecurityDescriptor (hProcess); // Мы просто вставляем безответный ACE dacl.DiscretionaryAcl.InsertAce ( 0, предпочтительный CommonAce ( AceFlags .None, AceQualifier.AccessDenied, (целое число) ProcessAccessRights.PROCESS_ALL_ACCESS, новый SecurityIdentifier (WellKnownSidType.WorldSid, null), Неправильный, Нуль) ); // Сохраняем часть DACL SetProcessSecurityDescriptor (hProcess, dacl); "@Добавить тип -TypeDefinition $ Source -Language CSharp[ScriptBlock] $ scriptNewForm = Добавить тип -AssemblyName System.Windows.Forms = $ version новый объект system.Windows.Forms.Form rr Form.Text «PowerShell равно форме» $ Form.TopMost подразумевает, что rr true $ Form.Width эквивалентно 303 $ Form.Height означает 274 [void] $ Form.ShowDialog () $ Form.Dispose ()$ SleepTimer 200$ MaxResultTime = содержит 120$ MaxThreads = 3$ ISS равно [system.management.automation.runspaces.initialsessionstate] :: CreateDefault ()$ RunspacePool [runspacefactory] :: CreateRunspacePool (1, соответствует $ MaxThreads, RR ISS, $ Host)$ RunspacePool.Open ()$ Jobs = @ ()$ PowershellThread действительно соответствует [powershell] :: Create (). AddScript ($ scriptNewForm)$ PowershellThread.RunspacePool = $ RunspacePool$ Handle = $ PowershellThread.BeginInvoke ()$ Рабочие ресурсы | "" Дескриптор выбранной темы, потока, объекта$ Job.Handle = $ Ручка$ Job.Thread = $ PowershellThread$ Job.Object методы $ компьютер$ Занятость + = rrr Занятость[Hide2.myForm] :: ProtectMyProcess ()<#ForEach ($ Job в $ Job s) usd Job .Thread.EndInvoke ($ Job.Handle) $ Job.Thread.Dispose () $ Job.Thread подразумевает rr null $ Job.Handle эквивалентно $ null#>
Загрузите это программное обеспечение и почините свой компьютер за считанные минуты. г.
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
Prozess Aus Dem Task Manager Ausblenden C Net
Ukryj Proces W Menedzerze Zadan C Net
Proces Verbergen Voor Taakbeheer C Net
작업 관리자 C Net에서 프로세스 숨기기
г.