问:我电脑平时都很正常,昨天玩了一下QQ堂,偶然打开任务管理器看了看,发现突然多出了很多conhost进程,百度了下也没找到结果,这到底是怎么回事啊,难道中毒了?
答:conhost全称是console host process,即命令行程序的宿主进程。大家都知道命令行程序是什么东西吧?由于命令行程序自身没有代码来显示UI,我们平时看到的命令行窗口内容都是由宿主进程来完成的,包括窗口的显示,Window message的处理等等。
原先,Win 7之前的宿主程序是由csrss.exe来完成的,所有命令行进程都使用session唯一的csrss.exe进程,而到了Win 7则改称每个命令行进程都有一个独立的conhost作为宿主了。这样当然有很多好处,比如各进程之间不会相互影响,也不会影响到csrss,毕竟csrss还有其他更重要的任务要做。当然最最重要的还是安全性的考虑,因为csrss是运行在local system账号下的,如果要处理Window message,就要承担很多威胁,比如著名的Window message shatter attack。而如果用用户权限的conhost来处理,则即使有攻击,影响的也只是低权限的宿主进程,所以不用太担心。