2011-02-07 2 views
3

가능한 중복 :
Hide a C# program from the task manager?방법 작업 관리자 또는 서비스 목록에 표시되지 않는 프로세스를 생성하는

나는 엔터프라이즈 수준의 활동 모니터 프로세스를 생성해야하는 사용자에 작업 관리자 또는 다른 방법을 사용하여 죽일 수 없어야합니다. 아마도 그것은 숨겨진 프로세스 여야합니다. 이것이 가능한가? 해결 방법이 있습니까? C# 다음에 C++ (Visual C++ 컴파일러 사용)을 사용하는 것을 선호합니다.

감사 SO

+4

바이러스 나 스파이웨어가 죽이지 않으면 어떻게합니까? –

+5

사용자가 서비스를 숨기려고 시도하는 대신 해지 할 수있는 권한이없는 서비스로 실행하십시오. 그러나 컴퓨터에 물리적으로 접근 할 수 있고, 손에 충분한 시간을 할애하고, 지식이 조금이라도있는 사용자는 시도하는 것을 우회 할 수 있습니다. "VC++"는 프로그래밍 언어가 아닙니다. –

+0

Fred : Visual C++로 컴파일 된 C++의 방언은 무엇이라고 부릅니까? 나는 이것을 "VC++"라고 부를 것입니다. – Gabe

답변

6

관련 :

Hide a C# program from the task manager?

https://stackoverflow.com/questions/759466/is-it-possible-to-hide-console-c-application-from-task-manager

짧은 답변입니다 : 당신이 그것을 포장하지 않는 한, 당신은 (법적으로), 작업 관리자에서 그것을 숨길 수 없습니다 Windows 서비스. 응용 프로그램을 닫지 못하도록하는 다양한 방법이 있습니다.

+2

Windows Vista 이상에서는 Windows 서비스가 메시지 상자 표시를 포함하여 모든 유형의 사용자 인터페이스를 가질 수 없음을 기억하십시오. 사람들은 지금 OP를 제외한 모든 것을 심각하게 보안합니다. –

2

"사용자가 X를 수행하는 것을 막을 수있는 방법"이라는 주제에서 대답은 보안입니다. 사용자가 자신의 컴퓨터에 대한 모든 권한을 가지기를 원하면 사용자를 제한 할 수 없습니다. 사용자를 제한하려면 그에 따라 보안 정책을 변경하십시오.

"그렇지만 내 직원은 우리가 전체 관리자 권한으로 신뢰할 수 없다는 생각을 좋아하지 않을 것입니다."- 음, 솔직히, 당신은 그들을 신뢰하지 않습니다. 그래서 이것을 구현하는 것입니다. 직원들이 당신을 속이는 것을 원하지 않으며, 당신도 똑같이 기대해야합니다.

다른 사람들이 말하는 것 외에도 더 간단한 해결책은 두 개의 프로세스, 즉 하나의 실제 프로세스와 하나의 "센티넬"을 만드는 것입니다. 기본적으로 100ms마다, 다른 프로세스가 살아 있고 건강하다는 것을 확인하기 만하면됩니다. 그렇지 않다면 실행하십시오. 예를 들어 kill.exe을 사용하면이 문제를 쉽게 해결할 수 있지만 사용자가 전체 관리자라고 생각하는 다른 모든 솔루션도 마찬가지입니다.

실제로 응용 프로그램을 죽이는 것을 막을 수있는 합법적 인 해결책은 일반적인 Windows 보안을 통해 액세스를 제한하는 것입니다. 즉, 프로세스에 대한 사용자 액세스를 제한하는 것입니다. 싼 은신처와 난독 화가 아닙니다.

관련 문제