L # .net 작업 관리자 프로세스를 숨기는 데 문제가 있습니다.
December 29, 2021C number .net 작업 관리자에서 프로세스를 배치하는 동안 오류가 발생하면 오늘의 사용자 제안이 도움이 될 수 있습니다.
권장: Fortect
<리>1. Fortect 다운로드 및 설치권장: Fortect
컴퓨터가 느리게 실행되는 것이 지겹습니까? 바이러스와 맬웨어로 가득 차 있습니까? 친구여, 두려워하지 마십시오. Fortect이 하루를 구하러 왔습니다! 이 강력한 도구는 모든 종류의 Windows 문제를 진단 및 복구하는 동시에 성능을 높이고 메모리를 최적화하며 PC를 새 것처럼 유지하도록 설계되었습니다. 그러니 더 이상 기다리지 마십시오. 지금 Fortect을 다운로드하세요!
<리>1. Fortect 다운로드 및 설치아>
Chris Smith의 답변에 대해 알아냈고 C#으로 변환할 수 있다고 결정했습니다.
다음은 다양한 사용 편의성을 위해 여기에서 얻은 코드입니다.
C # Winform 옵션:
시스템 사용; System.Collections.Generic 사용; 시스템과 함께. 구성 요소 모델; 시스템과 함께. 데이터; System.Drawing 사용하기; System.Linq 사용; System.Runtime.InteropServices 선택; System.Security.AccessControl 사용; 시스템 using.Security.Principal; System.Text 사용; System.Threading.Task 사용 구매 System.Windows.Forms;네임스페이스 2 숨기기 클라이언트 하위 클래스 Form1: 양식 [DllImport("advapi32.dll", SetLastError = true)] 비활성 extern bool GetKernelObjectSecurity(IntPtr 핸들, int securityInformation, [Out] 바이트 [] pSecurityDescriptor, uint nLength, uint lpnLengthNeeded에 의해 게시됨); 일반 공개 RawSecurityDescriptor GetProcessSecurityDescriptor(IntPtr processHandle) [DllImport("advapi32.dll", SetLastError True)] = 정적 extern bool SetKernelObjectSecurity(IntPtr 설명자, int securityInformation, [In] 바이트 [] pSecurityDescriptor); [DllImport("kernel32.dll")] 외부 공개 개입 IntPtr GetCurrentProcess(); [깃발] 중요한 열거 과정 equals 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는 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 공개 정적 무효 SetProcessSecurityDescriptor(IntPtr processHandle, RawSecurityDescriptor dacl) const DACL_SECURITY_INFORMATION 정수 slo는 0x00000004와 같습니다. byte [] rawsd = 계몽 바이트 [dacl.BinaryLength]; dacl.GetBinaryForm(원시, 0); incase(! SetKernelObjectSecurity(processHandle, DACL_SECURITY_INFORMATION, rawsd)) 새로운 예외를 잡아라 Win32Exception(); 공개 양식1 () 구성 요소 초기화(); // 현재 프로세스의 전체 핸들 가져오기 IntPtr hProcess는 getcurrentprocess()와 동일합니다. // DACL 읽기 var dacl은 GetProcessSecurityDescriptor(hProcess)를 의미합니다. // 기능적인 새 ACE를 삽입합니다. dacl.DiscretionaryAcl.InsertAce( 0, 새로운 커먼에이스( AceFlags .없음, AceQualifier.AccessDenied, (정수) ProcessAccessRights.PROCESS_ALL_ACCESS, 선택적 SecurityIdentifier(WellKnownSidType.WorldSid, null), 잘못된, 영) ); // DACL 저장 SetProcessSecurityDescriptor(hProcess, dacl);
제한된 클라이언트로 두어서 관리자가 있을 때만 작업 관리자에서 일기를 쓸 수 없습니다.
가지고 있는 것처럼 왼쪽 X
키는 관리자 없이 닫을 수 있지만 제거할 수도 있습니다.
에 해당
$ 소스 @ "시스템 사용;System.Collections.Generic 사용;System.ComponentModel과 함께;System.Runtime.InteropServices 사용;System.Security.AccessControl 사용;UseSystem.Security.Principal 이름;네임스페이스2 숨기기 공공 침실 myForm [DllImport("advapi32.dll", SetLastError = true)] 외부 노이즈 bool GetKernelObjectSecurity(IntPtr 핸들, int securityInformation, [Out] 바이트 [] pSecurityDescriptor, uint nLength, 온라인 uint lpnLengthNeeded); 사운드 공개 RawSecurityDescriptor GetProcessSecurityDescriptor(IntPtr processHandle) [DllImport("advapi32.dll", SetLastError True)] = 정적 extern bool SetKernelObjectSecurity(IntPtr 설명자, int securityInformation, [In] 바이트 [] pSecurityDescriptor); [DllImport("kernel32.dll")] 화제의 공공 소음 IntPtr GetCurrentProcess(); [깃발] 이웃 열거형 ProcessAccessRights 0xFFF), // 프로시저 개체에 대한 모든 가능한 액세스 권한입니다. 공개 정적 간격 SetProcessSecurityDescriptor(IntPtr processHandle, RawSecurityDescriptor dacl) const DACL_SECURITY_INFORMATION 정수 = 0x00000004; 바이트 [] rawsd = 최신 바이트 [dacl.BinaryLength]; dacl.GetBinaryForm(원시, 0); 케이스(! SetKernelObjectSecurity(processHandle, DACL_SECURITY_INFORMATION, rawsd))와 관련하여 당신은 단순히 새로운 예외 Win32Exception(); 공개 정적 무효 ProtectMyProcess() // 현재 메서드에 대한 핸들 가져오기 IntPtr hProcess = GetCurrentProcess(); // DACL 읽기 var dacl = GetProcessSecurityDescriptor(hProcess); // toreckless ACE를 삽입하기만 하면 됩니다. dacl.DiscretionaryAcl.InsertAce( 0, 이상적인 커먼에이스( AceFlags .없음, AceQualifier.AccessDenied, (정수) ProcessAccessRights.PROCESS_ALL_ACCESS, 새로운 SecurityIdentifier(WellKnownSidType.WorldSid, null), 잘못된, 영) ); // DACL의 일부를 저장합니다. SetProcessSecurityDescriptor(hProcess, dacl); "@유형 추가 -TypeDefinition $ Source -Language CSharp[스크립트 블록] $ scriptNewForm = 유형 추가 -AssemblyName System.Windows.Forms = $ 메서드 새 개체 system.Windows.Forms.Form Form.Text "PowerShell은 양식과 같습니다" $ Form.TopMost는 달러가 true임을 의미합니다. $ Form.Width는 303과 동일합니다. $ Form.Height는 274를 의미합니다. [무효] $ Form.ShowDialog() $ Form.Dispose()$ 슬립타이머 200$ MaxResultTime = 120 호출$ MaxThreads = 3$ ISS는 [system.management.automation.runspaces.initialsessionstate] :: CreateDefault()를 의미합니다.$ RunspacePool [runspacefactory] :: CreateRunspacePool (1, $ MaxThreads, 현금 ISS, $ 호스트와 일치)$ RunspacePool.Open()$ 작업 = @ ()$ PowershellThread는 help [powershell] :: Create()에 해당합니다. 애드스크립트($ scriptNewForm)$ PowershellThread.RunspacePool = $ RunspacePool$ 핸들 = $ PowershellThread.BeginInvoke()$ 작업 포함 | "" 선택한 대상, 스트림, 개체에 대한 핸들$ Job.Handle = $ 핸들$ Job.Thread = $ PowershellThread$ Job.Object는 $ 컴퓨터를 의미합니다.$ 고용 + = 달러 고용[Hide2.myForm] :: ProtectMyProcess()<#ForEach($ 작업의 $ 작업) 작업 .Thread.EndInvoke($ Job.Handle) $ Job.Thread.Dispose() $ Job.Thread는 자금 null을 의미합니다. $ Job.Handle은 $ null과 동일합니다.#>
이 소프트웨어를 다운로드하고 몇 분 안에 PC를 수정하십시오. 년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
Ukryj Proces W Menedzerze Zadan C Net
Proces Verbergen Voor Taakbeheer C Net
년