conhost.exe(console window host) 프로그램은 무엇이고 또 그것은 바이러스인가?

아마 이 글을 검색해서 들어오신 분들의 대부분은 작업관리자의 conhost.exe(Console Window Host)프로그램이 무한증식하는등의 상태일 것입니다. 작업관리자에 conhost.exe 프로그램으로 도배되어 있는것을 보면 컴퓨터가 느려진거 같은 느낌이 들기도 하죠. 과연 이 conhost 프로그램은 뭐하는 놈이고 또 이놈은 바이러스일까요?

1. Console window Host 프로세스는 무엇인가요?

이 프로세스에 대해 이해하려면 Windows의 역사를 조금 알아야 할겁니다. Windows XP시절에는 명령 프롬프트(cmd라고도 줄여 말합니다)가 CSRSS(ClientServer Runtime System Service)라는 프로세스에 의해 처리되었습니다. 이름에서도 알수 있듯이 CSRSS 프로세스는 시스템상의 서비스입니다. 이로 인해 몇가지 문제점이 발생하는데요, 첫번째 문제는 CSRSS프로그램의 충돌이 시스템 전체를 파괴시킬 수 있었습니다.  그래서 이 프로세스는 안정성은 물론 보안 취약성도 노출시켰죠. 두번째 문제는 CSRSS프로그램에 테마를 입힐 수 없다는 것이였습니다. 왜냐하면 개발자들은 테마를 시스템상에서 실행함에 따른 위험성을 감수하기 원치 않았죠. 따라서 명령 프롬프트는 항상 고전적인 테마를 사용하고 있었습니다. 

위와같이 테마설정이 달라도 항상 고전적인 테마가 적용되었죠.

그때문에 Windows Vista에서는 Desktop Window Manager 라는 서비스를 도입했습니다. 이 서비스는 각 창의 테마를 다르게 설정할 수 있게 하는 서비스입니다. 그덕분에 명령 프롬프트에서도 에어로 테마를 볼 수 있게 되었죠.


하지만 프로그램 자체는 여전히 CSRSS 내에서 돌아가므로 스크롤바와 같은 곳은 위와같이 여전히 구식 테마를 사용하고 있었습니다. 

그 문제를 해결하기 위해 Windows 7부터는 Console Window Process 서비스를 사용하게 됩니다. 이 서비스는 CSRSS와 명령 프롬프트 사이에 위치하여 스크롤바 등의 인터페이스 문제를 해결하며 이후에 나온 모든 테마를 안정적으로 적용할 수 있게 합니다. 

2. 그러면 왜 이 프로세스가 여러개 떠있는건가요?

각각의 실행중인 명령 프롬프트는 자기들만의 Console Window Process를 사용합니다. 또한 명령줄을 사용하는 프로그램은 창이 표시되지 않더라도 자신의 Console Window Process를 사용하지요.

많은 백그라운드 프로그램들이 이런 방식으로 작동되기 때문에 한번에 여러개의 프로세스를 볼 수 있습니다. 

3. 그래서 이 프로그램은 바이러스인가요?

일단 conhost.exe 프로세스 자체는 Windows의 공식 프로세스입니다. 그러므로 대부분의 경우는 바이러스라고 할 수 없습니다. 하지만 간혹가다 Conhost를 사칭한 프로세스가 발견되기도 하는데요, 의심될때에는 작업관리자에서 conhost.exe 프로세스를 찾으신 후에

우클릭을 해서 '파일 위치 열기(O)'를 클릭한 다음


파일의 위치가 위와 같으면 정식 프로세스입니다. 

그러면 이상으로 글을 마치도록 하겠습니다. 의견이나 질문 환영합니다. 감사합니다!