首页
社区
课程
招聘
[原创]Windows资源监视器软件的原理
发表于: 2017-6-20 18:50 11889

[原创]Windows资源监视器软件的原理

2017-6-20 18:50
11889

  本人专栏:  http://www.freebuf.com/column/137615.html


微软给我们提供了一些很好的程序,比如资源监视器,可以从这个软件里获取分析windows的自身的一些性能数据,比如CPU、内存、磁盘数据、文件读写、进程线程等,他具体怎么实现呢,今天这天文章就带你去获取其真实的原理。

1.分析

打开windows任务栏管理器,在其性能选项里,可以看到性能监控的一些机器性能图表

 

这个只是一些概要数据,如果要看详细的内容,可以点击左下角的“打开资源监视器”,会自己开启一个进程perfmon.exe的进程,这个进程界面会显示详细的资源信息

 

我们可以看到每个进程打开了什么文件、读写了什么磁盘数据、以及访问了什么网络的IP都有详细的信息,这个进程既没有文件过滤驱动也没有网络驱动他是如何实现去获取这些详细的信息呢,下面我们来具体分析下。

打开这个软件所在的目录,可以看到一些对应的perfmon.exe 、perfnet.dll、perfDisk.dll、perfos.dll、perfpro.dll进程和模块

 

用IDA打开perfmon.exe看看其进程一些函数

 

也只是一些UI相关的函数,说明核心功能并不在这里exe里 ,在继续换一个,用IDA打开perdisk.dll这个模块

 

模块里有一些比较明显的函数CollectDiskObjectData、CollectPDiskObjectData、CollectLDiskObjectData等函数,选择一个函数用windbg调试器去下断点

 

当第一放过运行时,调试器立马就停了下来,看堆栈区域

 

大概是这样的

堆栈看该函数被调用是从wdc!WdcTraceControl::QueryThread这个函数过来的,看样子是一个单独的数据线程,是wdc.dll这个模块里的函数,继续用IDA打开wdc这个模块。

 

查看WdcTraceControl::QueryThread这个函数实现,确实调用了一些监控实例的Query方法,这里我们可以确认wc.dll这个模块是核心功能所在的模块,现在可以分析下是怎么开启这个线程的,开启前做了哪些工作。


[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

最后于 2020-2-4 22:34 被kanxue编辑 ,原因:
收藏
免费 2
支持
分享
最新回复 (15)
雪    币: 15
活跃值: (373)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
感谢楼主分享
2017-6-20 19:38
0
雪    币: 3727
活跃值: (3847)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
3
感谢分享!
2017-6-21 09:58
0
雪    币: 6857
活跃值: (4037)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
感谢分享
2017-6-21 13:32
0
雪    币: 965
活跃值: (89)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
感谢楼主分享 
2017-8-20 22:35
0
雪    币: 335
活跃值: (2568)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
感谢分享,真心感谢。
2017-8-21 10:28
0
雪    币: 0
活跃值: (209)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
7
感谢分享,写的真好
2017-9-28 12:28
0
雪    币: 9
活跃值: (175)
能力值: ( LV6,RANK:90 )
在线值:
发帖
回帖
粉丝
8
感谢分享
2017-12-12 20:07
0
雪    币: 13
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
9
  感谢分享
2018-1-19 19:56
0
雪    币: 300
活跃值: (2337)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
10
mark
2018-1-19 20:51
0
雪    币: 181
活跃值: (616)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
11
感谢分享
2018-1-19 22:29
0
雪    币: 799
活跃值: (457)
能力值: ( LV12,RANK:280 )
在线值:
发帖
回帖
粉丝
12
2018-8-16 18:59
0
雪    币: 281
能力值: (RANK:10 )
在线值:
发帖
回帖
粉丝
13
我学习看看
2018-8-17 15:44
0
雪    币: 1036
活跃值: (1296)
能力值: ( LV3,RANK:35 )
在线值:
发帖
回帖
粉丝
14
mark
2018-9-19 11:08
0
雪    币: 0
活跃值: (209)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
15
mark,写的不错
2018-12-27 14:26
0
雪    币: 5522
活跃值: (2087)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
16
不错,感谢分享!
2018-12-27 15:37
0
游客
登录 | 注册 方可回帖
返回
//