Masz Problem Z Ukryciem Procesu Brokera Zadań C # .net

December 29, 2021 By Lucas Nibbi Off

Jeśli pojawia się błąd podczas ukrywania procesu w Menedżerze zadań C# .net, dzisiejszy podręcznik użytkownika komputera może ci pomóc.

Zalecane: Fortect

  • 1. Pobierz i zainstaluj Fortect
  • 2. Otwórz program i kliknij „Skanuj”
  • 3. Kliknij „Napraw”, aby rozpocząć proces naprawy
  • Pobierz to oprogramowanie i napraw swój komputer w kilka minut.

    Zalecane: Fortect

    Czy masz dość powolnego działania komputera? Czy jest pełen wirusów i złośliwego oprogramowania? Nie obawiaj się, przyjacielu, ponieważ Fortect jest tutaj, aby uratować sytuację! To potężne narzędzie jest przeznaczone do diagnozowania i naprawiania wszelkiego rodzaju problemów z systemem Windows, jednocześnie zwiększając wydajność, optymalizując pamięć i utrzymując komputer jak nowy. Więc nie czekaj dłużej — pobierz Fortect już dziś!

  • 1. Pobierz i zainstaluj Fortect
  • 2. Otwórz program i kliknij „Skanuj”
  • 3. Kliknij „Napraw”, aby rozpocząć proces naprawy

  • Dowiedziałem się o odpowiedzi @ Chrisa Smitha i zdecydowałem się przekonwertować ją na numer C.

    Administratorzy mogą nadal technicznie pozbyć się procesu, przejmując własność procesu i dodatkowo resetując DACL, ale nie ma żadnego interfejsu, który pomoże ci zrobić prawie wszystko w wyniku, w tym Menedżera zadań. Jednak Process Explorer może teraz mieć interfejs.

    Oto kod uzyskany z właściwego dla łatwości użycia:
    Numer C Winform Opcja:

      użycie aranżacji;    z System.Collections.Generic;    z systemem. Model komponentu;   z mechanizmem. Dane;   Korzystanie z systemu.Rysunek;   Korzystanie z System.Linq;    Wybór System.Runtime.InteropServices;    Korzystanie z System.Security.AccessControl;    System wykorzystujący.Bezpieczeństwo.Principal;    Korzystanie z System.Text;    Korzystanie z System.Threading.Tasks;    Kup System.Windows.Forms;Ukryj przestrzeń nazw 2   Podklasa klienta Form1: Form            [DllImport ("advapi32.dll", SetLastError = prawda)]        lazy extern bool GetKernelObjectSecurity (IntPtr Handle, int securityInformation, [Out] byte [] pSecurityDescriptor,        uint nLength, wysłane przez uint lpnLengthNeeded);        staromodny publiczny RawSecurityDescriptor GetProcessSecurityDescriptor (IntPtr processHandle)                [DllImport ("advapi32.dll", SetLastError True)] = static extern bool SetKernelObjectSecurity (deskryptor IntPtr, int securityInformation, [In] byte [] pSecurityDescriptor);        [DllImport ("kernel32.dll")]        interwencja publiczna strony trzeciej IntPtr GetCurrentProcess ();        [Flagi]        Istotny proces wyliczania                    = process_create_process 0x0080, // Wymagane do utworzenia kompletnego procesu.           PROCESS_CREATE_THREAD równa się 0x0002, // Wymagane do podania aktualnego przepływu.            PROCESS_DUP_HANDLE to 0x0040, // Aby zduplikować funkcjonalny proces za pomocą DuplicateHandle.            PROCESS_QUERY_INFORMATION 0x0400 oznacza // Wymagane do wywołania określonych informacji o procesie, takich jak znak, kod Salir i pole priorytetu (zobacz OpenProcessToken, GetExitCodeProcess, GetPriorityClass i IsProcessInJob).            PROCESS_QUERY_LIMITED_INFORMATION odpowiada 0x1000, // Wymagane do wybrania informacji o operacjach do pobrania (zobacz QueryFullProcessImageName). Uchwyt, który ma własne prawo łatwego dostępu PROCESS_QUERY_INFORMATION, jest automatycznie przypisywany PROCESS_QUERY_LIMITED_INFORMATION. Windows Server 2003 Windows i XP / 2000: To prawo dostępu zwykle nie jest obsługiwane.            PROCESS_SET_INFORMATION implikuje 0x0200, // Wymagane do ustawienia informacji o procesie, dla Instancji, jego klasie priorytetu (zobacz SetPriorityClass).            PROCESS_SET_QUOTA sposób 0x0100, // wymagane do ustawienia limitów przechowywania przy użyciu SetProcessWorkingSetSize.            PROCESS_SUSPEND_RESUME oznacza 0x0800, // zmuszony do zatrzymania odpowiedniego procesu przywracania.            PROCESS_TERMINATE = 0x0001, // Wymagane, aby zakończyć proces przy użyciu TerminateProcess.           PROCESS_VM_OPERATION oznacza 0x0008, // Wymagane do wykonania zabiegu przez otwarcie adresu podejścia (zobacz VirtualProtectEx i WriteProcessMemory).            PROCESS_VM_READ wynosi 0x0010, // Wymagane do obsługi odczytu ze wspomnień w streszczeniu przy użyciu ReadProcessMemory.            PROCESS_VM_WRITE jest równe 0x0020, // Wymagane do zapisu do pamięci podczas procesu z WriteProcessMemory.            DELETE oznacza 0x00010000, // wymagane do usunięcia typu obiektu.            równa się read_control 0x00020000, // Wymagane, aby odczytać informacje z deskryptora kontrolnego obiektu, nie zagrażając informacjom w SACL. Aby czytać lub pisać You-Sacl, musisz poprosić o prawo dostępu ACCESS_SYSTEM_SECURITY. Aby uzyskać więcej informacji, zobacz Prawa dostępu SACL.            SYNCHRONIZE = 0x0010000, // Prawo do korzystania z obiektu do synchronizacji. Oznacza to, że tylko jeden wątek bez wysiłku czeka na zakończenie towaru w zgłoszonym stanie.            WRITE_DAC odpowiada za pomoc 0x00040000, // wymagane do zarządzania w dacl z poprawnym deskryptorem dla obiektu.           WRITE_OWNER = 0x00080000, // Musisz poprawić właściciela wokół deskryptora zegara domowego dla obiektu.            STANDARDOWE_PRAWA_WYMAGANE = 0x000f0000,            PROCESS_ALL_ACCESS sugeruje (STANDARD_RIGHTS_REQUIRED        Public static void SetProcessSecurityDescriptor (IntPtr processHandle, RawSecurityDescriptor dacl)                    const DACL_SECURITY_INFORMATION liczba całkowita slo = 0x00000004;            byte [] rawsd oznacza interesujący bajt [dacl.BinaryLength];            dacl.GetBinaryForm (rawsd, 0);            w przypadku (! SetKernelObjectSecurity (processHandle, DACL_SECURITY_INFORMATION, rawsd))                wyrzuć nowy wyjątek Win32Exception ();                formularz społeczności1 ()                    Zainicjuj komponent ();            // Pobierz uchwyt ostatnio dostępnego procesu            IntPtr hProcess jest odpowiednikiem getcurrentprocess ();           // Przeczytaj DACL            var dacl oznacza GetProcessSecurityDescriptor (hProcess);            // Wstaw nowy ACE            dacl.DiscretionaryAcl.InsertAce (            0,            nowy CommonAce (           AceFlags .Brak,            AceQualifier.Odmowa dostępu,            (liczba całkowita) ProcessAccessRights.PROCESS_ALL_ACCESS,            Opcjonalny identyfikator bezpieczeństwa (WellKnownSidType.WorldSid, null),            Zło,            Zero)            );            // Zapisz ten DACL            SetProcessSecurityDescriptor (hProcess, dacl);             

    Pozostawiając to jako klient z ograniczeniami, nie mogę wylogować się z Menedżera zadań, ale jako administrator.
    Jak widać, lewy przycisk X może znajdować się w jednym mieście, aby zamknąć go bez menedżera, ale można to również wyeliminować. =

      $ source - "korzystanie z systemu;z System.Collections.Generic;z System.ComponentModel;Korzystanie z System.Runtime.InteropServices;Korzystanie z System.Security.AccessControl;UseSystem.Security.Nazwa główna;Ukryj przestrzeń nazw2    pojemność publiczna myForm            [DllImport ("advapi32.dll", SetLastError = prawda)]        Zewnętrzny bool szumu GetKernelObjectSecurity (IntPtr Handle, int securityInformation, [Out] byte [] pSecurityDescriptor,        uint nLength, online uint lpnLengthNeeded);        statyczny publiczny RawSecurityDescriptor GetProcessSecurityDescriptor (IntPtr processHandle)                [DllImport ("advapi32.dll", SetLastError True)] = static extern bool SetKernelObjectSecurity (deskryptor IntPtr, int securityInformation, [In] byte [] pSecurityDescriptor);        [DllImport ("kernel32.dll")]        zewnętrzny hałas publiczny IntPtr GetCurrentProcess ();        [Flagi]        Otoczenie Enum ProcessAccessRights         0xFFF), // Wszystkie możliwe prawa dostępu do obiektu akcji.                Nieważne zakłócenia publiczne SetProcessSecurityDescriptor (IntPtr processHandle, RawSecurityDescriptor dacl)                    const DACL_SECURITY_INFORMATION liczba całkowita oznacza 0x00000004;            byte [] rawsd = nowoczesny bajt [dacl.BinaryLength];            dacl.GetBinaryForm (rawsd, 0);            w przypadku (! SetKernelObjectSecurity (processHandle, DACL_SECURITY_INFORMATION, rawsd))                odrzuć nowy wyjątek Win32Exception ();                public static void ProtectMyProcess ()                    // Pobierz regulację bieżącej metody            IntPtr hProcess implikuje GetCurrentProcess ();            // Przeczytaj DACL            var dacl oznacza GetProcessSecurityDescriptor (hProcess);            // Uwzględniamy tylko toreckless ACE            dacl.DiscretionaryAcl.InsertAce (            0,            najlepszy CommonAs (           AceFlags .Brak,            AceQualifier.Odmowa dostępu,            (liczba całkowita) ProcessAccessRights.PROCESS_ALL_ACCESS,            nowy SecurityIdentifier (WellKnownSidType.WorldSid, null),            Zło,            Zero)            );            // Zapisz część zwykle DACL            SetProcessSecurityDescriptor (hProcess, dacl);            „@Dodaj typ -TypeDefinition Source -Język CSharp[ScriptBlock] $ scriptNewForm =    Dodaj typ -AssemblyName System.Windows.Forms    = pieniądze z nowego systemu obiektów.Windows.Forms.Form    $ Form.Text "PowerShell to forma"    $ Form.TopMost oznacza $ true     Form.Width odpowiada 303    $ Form.Wysokość obejmuje 274    [void] $ Form.ShowDialog ()    $ Formularz.Pozbyć się ()$ Wyłącznik czasowy 200$ MaxResultTime = pochodzi z 120$ Maksymalna liczba wątków = 3$ ISS równa się [system.management.automation.runspaces.initialsessionstate] :: CreateDefault ()$ RunspacePool [runspacefactory] :: CreateRunspacePool (1, odpowiada $ MaxThreads, $ ISS, $ Host)$ RunspacePool.Open ()$ Praca = @ ()$ PowershellThread porównuje do [powershell] :: Utwórz (). AddScript ($ scriptNewForm)$ PowershellThread.RunspacePool = $ RunspacePool$ Handle = $ PowershellThread.BeginInvoke ()$ Praca oznacza | "" Uchwyt do używanego obiektu, strumienia, obiektu$ Job.Handle = dochód Handle$ Job.Thread = $ PowershellThread$ Job.Object oznacza $ komputer$ Zatrudnienie + równa się $ Zatrudnienie[Ukryj2.myForm] :: ChrońMójProces ()<#ForEach ($ praca w $ praca s)   $ Job .Thread.EndInvoke ($ Job.Handle)    $ Praca.Wątek.Utylizacja ()    $ Job.Thread oznacza to, że $ null    rr Job.Handle jest równoważne buck null#> 

    ukryj proces z dala od menedżera zadań c#.net

    Pobierz to oprogramowanie i napraw swój komputer w kilka minut.

    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
    Prozess Aus Dem Task Manager Ausblenden C Net
    Proces Verbergen Voor Taakbeheer C Net
    작업 관리자 C Net에서 프로세스 숨기기