查看: 2845|回复: 13
收起左侧

[已解决] 关于任务管理器

 关闭 [复制链接]
rzxiaolei
发表于 2008-5-4 11:26:00 | 显示全部楼层 |阅读模式
我的xp电脑的任务管理器不知怎么了,当在任务管理器中点结束应用程序的时候,无任何反映,点所有的应用程序都一个样,在进程中点结束进程的时候,出现这样的提示:无法完成操作,访问被拒绝,点所有进程都是这个提示,哪位高手给指点一下,谢谢。
水木
发表于 2008-5-4 11:37:36 | 显示全部楼层
没在兵刃中试试
rzxiaolei
 楼主| 发表于 2008-5-4 16:24:51 | 显示全部楼层
机器没有中病毒,也没有木马,就是在用了服务优化工具之后才这样的
伊の星
发表于 2008-5-4 16:30:33 | 显示全部楼层
任务管理器的权限被限制了
禁止结束进程
- -
rzxiaolei
 楼主| 发表于 2008-5-5 19:29:31 | 显示全部楼层
那应该怎么恢复呢?
伊の星
发表于 2008-5-5 19:45:14 | 显示全部楼层
还记得你优化时关闭了哪些服务
修改了哪些策略么??
llj4862
发表于 2008-5-5 19:56:33 | 显示全部楼层
终止进程的内幕   
  首先看看一个应用程序想要强制结束另一个进程所要做的事:首先获得目标的进程ID,接着利用OpenProcess获取进程句柄(确保足够权限),最后将句柄传给TerminateProcess了结那个进程。   
          1、OpenProcess通过本机系统服务接口进入核心态,随后调用ntoskrnl的NtOpenProcess。在服务函数里,系统使用SeSinglePrivilegeCheck检查调用者是否有DEBUG权限(SeDebugPrivilege),若有,则修改AccessState使得在后面的操作中获取允许任意进程访问操作的句柄。最后通过ObOpenObjectByName或PsLookupProcess***   +   ObOpenObjectByPointer来打开进程(创建并返回进程句柄)。   
          2、TerminateProcess通过本机系统服务接口进入核心态,随后调用ntoskrnl的NtTerminateProcess。系统首先调用ObReferenceObjectByHandle获取进程执行体块,执行体块的DebugPort指出进程是否处于调试状态,若处于调试状态且传入的ExitStatus为DBG_TERMINATE_PROCESS则返回失败禁止结束进程。随后服务函数转入正题:   
          系统利用ThreadListHead枚举进程的每一个线程,使用PspTerminateThreadByPointer来结束它们。注意并不是对每个线程系统都会忠实地执行你的命令:若枚举到的线程是系统线程则不会继续执行而是返回STATUS_INVALID_PARAMETER。判断的方法是线程的Teb为零或者Teb的值在内核地址空间。有人问2000下为何csrss.exe进程杀不死,很简单,打开IceSword,在进程栏利用右键菜单的“线程信息”看一下,看到那几个Teb为零的线程没有?(注意是针对windows2000,XP下不同。另外一点就是csrss中其它非系统线程的线程是很容易被杀死的,试图结束csrss时也可以看到在Teb为零的线程前面的线程已被杀掉,只是操作停在了Teb为零的线程这里)   再看看system进程,呵呵。IceSword也并未提供杀除这种进程的功能,因为觉得没有需求。在最后一个线程结束时,进程的生命也结束了,随着PspExitProcess/ObKillProcess灰飞烟灭。   
          另一方面,线程是怎样结束的呢。PspTerminateThreadByPointer并不是直接“杀掉”指定线程,实质上线程是“自杀”的,呵呵。系统简单的使用KeInitializeApc/KeInsertQueueApc插入了一个核心态的APC调用,若是用户线程,会再插入用户态的APC调用,最终线程在自己的执行环境中使用PspExitThread(...=>KeTerminateThread=>KiSwapThread)悲壮的自行了断。   
          有人问起为什么IceSword有时杀不死除那三个有系统线程的进程(两个是csrss、system,而idle是个非常奇特的存在,与众不同,这里不多废话了)外的其它进程。从上面的讨论可以找到答案。这种情况往往是目标进程的某用户态线程进入核心态后,系统出了某些问题挂死在核心态,无法返回执行Apc例程的缘故。IceSword未强制除去它们是考虑此刻系统可能已经有某些问题,强制删除操作更有可能使系统崩溃,不过有了不少用户要求有这项功能,所以以后有空可能会加上(已经有一大堆杂七杂八的要求了,很难有时间升级一下版本,~_~)。   
          一般来说,要干掉一个进程,有了Debug权限就可以了,若别人有了保护,那就要发挥你的能力了。   
   
          我想上面的讨论对于想要杀除进程、保护进程的人有一些启发了吧。
llj4862
发表于 2008-5-5 19:57:46 | 显示全部楼层
再给你一个工具~!

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?快速注册

x

评分

参与人数 1经验 +4 收起 理由
etly + 4 试试效果~

查看全部评分

chen_c_yaun
发表于 2008-5-5 21:33:03 | 显示全部楼层
看一下微软给出的权威解释
无法终止进程使用任务管理器服务
http://support.microsoft.com/kb/155075/zh-cn

由于这篇文章是机器翻译软件翻译完成的,不太好懂,我理解的解决方法是这样,不知对不对:
1. 在组策略菜单上, 单击“计算机配置——Windows 设置——安全设置——本地策略——用户权利指派” 。  
2.在右边框中, 单击“调试程序 ”, 然后单击“添加”以添加用户。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?快速注册

x
rzxiaolei
 楼主| 发表于 2008-5-5 22:03:55 | 显示全部楼层
看一下微软给出的权威解释
无法终止进程使用任务管理器服务
http://support.microsoft.com/kb/155075/zh-cn

由于这篇文章是机器翻译软件翻译完成的,不太好懂,我理解的解决方法是这样,不知对不对:
1. 在组策略菜单上, 单击“计算机配置——Windows 设置——安全设置——本地策略——用户权利指派” 。  
2.在右边框中, 单击“调试程序 ”, 然后单击“添加”以添加用户。



微软的这个文章我也看过,不过没看懂,你说的添加用户,不知要添加什么用户?本来里面就有一个administrator,我就是用这个帐号登录的.
您需要登录后才可以回帖 登录 | 快速注册

本版积分规则

手机版|杀毒软件|软件论坛| 卡饭论坛

Copyright © KaFan  KaFan.cn All Rights Reserved.

Powered by Discuz! X3.4( 沪ICP备2020031077号-2 ) GMT+8, 2026-10-21 12:45 , Processed in 0.072730 second(s), 3 queries , Redis On.

卡饭网所发布的一切软件、样本、工具、文章等仅限用于学习和研究,不得将上述内容用于商业或者其他非法用途,否则产生的一切后果自负,本站信息来自网络,版权争议问题与本站无关,您必须在下载后的24小时之内从您的电脑中彻底删除上述信息,如有问题请通过邮件与我们联系。

快速回复 客服 返回顶部 返回列表