Windows任务管理器开发原理与实现 下载本文

内容发布更新时间 : 2024/7/2 21:23:42星期一 下面是文章的全部内容请认真阅读。

Windows任务管理器开发原理与实现

[ 本文属于第 24期 , 适合中级读者 ] 剖析 任务管理器开发原理与实现 作者2y 源代码 1源代码

剖析 任务管理器开发原理与实现 : 2y[原创 ] : 5 :

: 05-01-2003

2000内含的任务管理器 (相信大家都熟悉吧,相比之下 里的要比 2000功能更 加强大,返回的信息也更加的详细,不过您是否觉得还有很多希望获得的消息没有包含在里面吗?您是否 觉得 的系统管理工具箱里的东西太分散了吗?下面就让我们看看它们的开发原理,并动手实现一 个真正的任务管理器。 现在我们是调用 32 来实现这些功能的, 但是大家都说 隐藏了太多的细节, 以后我们将讨论更多关于 内核的东东。

可能大家对任务管理器里最熟悉的功能要数进程管理了, 常常我们在怀疑中了病毒 /木马的时候都会看 看任务管理器里有没有什么特别的进程在运行,所以进程查看器应该是一个非常重要的功能。我们除了需 要获得进程的名称外,还有什么呢?当然包括它的进程标识符 (,用户信息 (, 使 用时间 (和存储器的使用情况 (, 还有它的优先权 (。 和 信 息可以帮助我们分析进程的运行情况,而优先权可以表示进程在 分配处理器使用时的优先情况。这些 都是通用的进程信息,让我们再看看其他的信息吧。进程的父进程标识符 ( ,创建时间 ( ,程序名称等在很多情况下也是我们关心的信息。我们再看看进程相关的性能信息。在 下通常有两种模式:内核模式 (: 0

1 / 10

Windows任务管理器开发原理与实现

和用户模式 (: 3,进程往往在两种 模式中来回切换,所以可以获得进程在内核模式和用户模式各自的使用时间。同时还包括进程相关的工作 集 (, 分页池 (, 非分页池 (和页面文件 ( 信息。 进程相关 的 操作包括读 /写 /其他等动作,我们可以获得这些操作的次数和传送数据的数量。

如果您怀疑某个进程是木马,那您还想获得哪些信息呢?简单的进程名称应该是不够的吧!我们希望 获得进程的实际程序的路径,这样可以帮助我们判断究竟是那个程序在运行。前段时间不是在讨论什么进 程隐藏的, 其中一种就是“创建远程线程”, 而注体往往又是以动态链接库 (的形式存在的, 我们就希 望看到某个具体进程所包含的所有模块 (,常常是 也。“线程”是一个大家熟悉的名字,它是

系统中的实现体,而进程则是线程运行的环境。一个进程到底创建了多少线程了?我们同样可以 枚举进程内部的所有线程信息。 如果您发现一个木马进程, 下面的动作就应该是分析它的运行机制 (如果您 对它感兴趣 , 不过最终您还是要将它结束吧。 在 2k 下, 很多系统关键进程在 里是不能被 结束的,不过现在您不用担心了。好的,对进程的操作当然就包括结束进程。如果您用过中文的 ,您是 否常常遇到任务栏“假死”的情况,虽然您的电脑没有挂掉,但却动弹不得,那好我们也同样可以将任意 的进程挂起来,不管您对它做什么动作 (除了结束 ,它都不会有任何的反应。有了挂起进程,同样我们也 可以将进程从“挂起”状态激活哈。

桌面窗口是大家接触得最多的交互界面了,您是否想获得每个窗口的标题信息呢?当然我们还可以获 得与窗口关联的进程,线程与窗口句柄属性。如果大家对 比较熟悉,就应该知道其中的一个 工具 吧,它就可以获得桌面窗口,进程和线程的详细信息,不过现在就不用打开这个,打开那个了,通通搞定 了!

系统性能是每个用户关心的话题。它包括整个系统当前创建的句柄,进程以及线程的数目。还有物理 存储器 ( 的总量和使用情况,系统高速缓存 ( 的大小,存储器保留与提交 ( 状况,当然还有核心分页 /非分页池 ( 的使用情况。几乎包括了 系统下存储器管理的大部分信息。

2 / 10

Windows任务管理器开发原理与实现

虽然现在硬盘的价格已经很低了,不过我还是在用 6.4G 的小东东,所以常常遇到“ ”!我们 常常要看看硬盘的使用情况,不过每次都要进入我的电脑,太麻烦了。而我们现在可以一次了解所有磁盘 的容量和当前使用情况,同时还有它们的格式类型 (如 等 和磁盘标签。

说到环境块, 或许不是那么熟悉吧, 它包含一些环境变量, 而每个环境变量对应一个 /多个字符串, 您 可以在控制面板的 (系统 /高级里对它们进行设置,包括添加新的环境变量,删除和编 辑系统环境变量。

事件记录对我们分析系统的使用情况有很大的帮助。事件记录分为三种:应用程序,系统和安全。而 对应的每种事件又可以分为几种类型,它们分别是常规信息,警告和错误。其中包括记录序号 ( , 事件类型 (, 标识符 ( , 来源 (, 产生时间 ( , 用户名 (和相关描述信息 (。 有时间大家可以多看看事件信息, 当然每个网络管理员对它们应该是很熟 悉的,不过还包括其他的事件日志信息。

系统下的 这个命令我是常常用,因为我们使用的是 ,没事看看自己的 地址变了没有。其中包括详细的网络适配器的信息,包括适配器名称,描述,硬件地址和类型, 地址及 相应的子网掩码, 网关与 服务器地址等。 不过您是否对网络流量也感兴趣呢?我们当然可以获得主机 接受 /发送了多少(非广播数据报,出现了多少错误,一共接受 /发送了多少信息,这些对每个网友都是 有用的信息哟。

网络共享往往是大家注意的地方,您究竟共享了多少信息,它们的文件路径是什么,还有它们的共享 类型信息。我们在不需要某些共享资料时,当然不要忘了将其删除,以免泄露自己的机密信息。

的 是一个多用户的系统,允许多种类型用户的存在。我们希望获得用户账号的使用期限 ( , 记住要不定时的修改用户的密码哟, 以及用户标识符 ( , 组标识符 ( , 还有用户账号的类型 (, 不同的类型有不同的权限, 我们当然希望有最 的权力哟! 看看系统对某

3 / 10