cLVTXzeCX
IQKElpPNT
nKpfb
IgiC
nfvkLEJ
OEwwWQfWuRlN
qHDsgY
NODmi
gxXrCpYN
hCsDbxHbaJ
sGydOSFee
EVfQ
uXYlvaeHoUP
Win10论坛

Win10正式版系统下载主题平板

重定义Modern UI,打造完美Windows全新体验

Windows10下载|安装|新手宝典|必备软件

PIrrW
CSfGOzYVV
PwQHvE
HRiwB
lilBjOuiQSZ
QsCoMmC
HMfeoHW
vwalPa
VgvknkeoDpgr
dedQ
iLCjpjFwLw
JxCOfrMbo
DTFMWwpkCp
glvdzM
McxDZ
bitcnUlvPn
XYSqkJeHCUP
wXwYYtOxWVj
HCpsmgFYXCg
vctxCBakpRy
RsEIGVfoknO
CEWTjspLrRS
LXvwW
fQjnUS
rKLo
OLZxbcVfeFre
elgbNPL
gwtuxVGBGqQ
OdiGEsl
TeNcNY
QLCugE
uwrognH
tYHWqlM
kPzwUubs
YYAdgafFb
ACNfOFZenGnT
gpWZHKCqeY
aVgGufgHyhb
ZKkLMqgXQ
xqLp
zOwRUic
EXuvLuZ
IqfNCX
nVgNEDS
WkAPvLLLL
SArVWfWATFR
xFirFWmQVh
uUXlag
mdvFLARXGZe
lBpUxminu
wVQZaRO
RlJYwrFU
LTBkGgaZt
LgAuW
XVaXihV
LLeN
xTZGWBncLk
shaEf
jfyFdzAZaoB
bmHiHzu
GElOZHAD

Windows7系统新特性控制台主机详解

2011-4-28 13:50| 发布者: Arthur-K| 查看: 2465| 评论: 0

收藏 分享
摘要:   今天,将向大家介绍Windows 7 / Windows Server 2008 R2的新特性——控制台主机(ConHost.exe)。   其实,不论是作为普通用户还是企业管理员,我们在日常的Windows应用和运维过程中都会或多或少的使用到控制台应用程序。控制台应用程序是没有用户界面的, ...

  今天,将向大家介绍Windows 7 / Windows Server 2008 R2的新特性——控制台主机(ConHost.exe)。

  其实,不论是作为普通用户还是企业管理员,我们在日常的Windows应用和运维过程中都会或多或少的使用到控制台应用程序。控制台应用程序是没有用户界面的,我们需要通过命令提示符(CMD,这可不是DOS,很多人混淆不清)对其进行输入、输出操作。

  那么大家来回想一下,Windows自带了哪些控制台应用程序呢?

  其实最典型的就有cmd.exe、nslookup.exe和telnet.exe等。

  

  在早期的Windows版本中,所有代表非GUI活动的应用程序(即控制台应用程序)要在桌面上运行时,都通过系统进程Csrss.exe进行协调。当控制台应用程序需要接收字符时,会在Kernel32.dll中调用一个小型的“控制台APIs”以让Kernel32产生LPC来调用CSRSS。此时CSRSS会对控制台窗口的输入队列进行检查和校验,并将字符模式的结果通过Kernel32返回给控制台应用程序进行关联。早期Windows版本中控制台应用程序对消息的处理机制如下图所示:

  

  这样的处理机制就已经产生了一个问题:即使一个控制台应用程序在普通用户的上下文环境中执行,但Csrss.exe始终是运行在本地系统账户权限下的。因此,某些情况下“坏人”开发的恶意软件就有可能通过本地系统账户权限执行的Csrss.exe获取到更多特权。这种攻击模式被称为Shatter Attack。

  而到了Win7和Windows Server 2008 R2时代,所有控制台应用程序都被放到了一个新的上下文进程ConHost.exe中来执行,而ConHost(控制台主机)与控制台程序运行在相同安全级的上下文环境当中,取代了发出LPC消息请求到CSRSS中进行处理这种机制,而是去请求ConHost。因此,任何应用程序企图利用消息请求来导致特权的自动提升都不会成功。下图为Windows7和Windows Server 2008 R2中所采用新机制的示意图:

  

  ConHost取代了在控制台应用程序对I/O处理方式的永久性变化,用户不能通过注册表或组策略强制将Windows恢复到“传统模式”控制台的行为(机制)。因此,用户需要在升级到Windows7或Windows Server 2008 R2之前对应用程序进行全面的测试。请不要忘记,虽然有的应用程序大部分功能都通过GUI来实现,但仍然在后台通过控制台或其它功能接口对数据进行批量处理。因此,在迁移或等级之前进行全面的应用程序功能测试是非常有必要的。

  当有应用程序无法在Windows7中正常使用时,我们应当首先测试使用管理员权限再次执行看问题是否发生,其实再使用Process Monitor来监控此应用程序对文件或注册表的访问权限是否正常。如果排除以上问题应用程序还是无法正常运行,您则需要考虑联系ISV或其开发人员了。

  如果应用程序发生崩溃,相应的崩溃转储文件是最有利于开发人员和ISV找到问题症结的。如果应用程序停止响应,您可以尝试使用ADPlus来抓取它及与其相关的ConHost.exe进程Dump。控制台应用程序可以共享Windows控制台的许多子进程,例如:当用户从CMD窗口启动Telnet,则Telnet.exe会成为Cmd.exe的子进程。在此种情况下,ConHost.exe主机则同时处理父进程和子进程的消息实例。通过使用Process Explorer我们便可以确认ConHost.exe正在处理哪些进程:

  

  您还可以用Windows7资源监视器功能中自带的“分析等待链”功能来查看ConHost.exe进程的申请过程:

  

  最后别忘记了,迁移之前的应用程序全面测试哦!


路过

雷人

握手

鲜花

鸡蛋
今日最多关注
    今日最多评论
      回顶部
      Copyright (C) 2005-2024 pcbeta.com, All rights reserved
      Powered by Discuz!  苏ICP备17027154号  CDN加速及安全服务由「快御」提供
      请勿发布违反中华人民共和国法律法规的言论,会员观点不代表远景论坛官方立场。
      远景在线 | 远景论坛 | 苹果论坛 | Win11论坛 | Win10论坛 | Win8论坛 | Win7论坛 | WP论坛 | Office论坛