系统监控必备工具procexp和procmon

回复 星标
更多
系统监控必备工具procexp和procmon
»

这是一个高级的Windows监视工具,不但可以监视进程/线程,还可以关注到文件系统,注册表的变化.它包含2个Sysinternals遗留组件:Filemon 和 Regmon,并添加了大量功能。

Process Monitor一款系统进程管理器,总体来说,Process Monitor相当于Filemon+Regmon,其中的Filemon专门用来监视系统 中的任何文件操作过程,而Regmon用来监视注册表的读写操作过程。

有了Process Monitor,使用者就可以对系统中的任何文件和 注册表操作同时进行监视和记录,通过注册表和文件读写的变化, 对于帮助诊断系统故障或是发现恶意软件、病毒或木马来说,非常 有用。

这是一个高级的 Windows 系统和应用程序监视工具,由优秀的 Sysinternals 开发,并且目前已并入微软旗下,可靠性自不用说。

Process Monitor 增加了多项重要增强功能,包括稳定性和性能改进,强大的过滤选项,修正的进程树对话框(增加了进程存活时间图表),可根据点击位置变换的右键菜单过滤条 目,集成带源代码存储的堆栈跟踪对话框,更快的堆栈跟踪,可在 64-位 Windows 上加载 32-位 日志文件的能力等。

Process Monitor不仅结合了 Filemon(文件监视器) 和 Regmon(注册表监视器) 两个工具的功能,还具有以下一些增强:

• 监视进程和线程的启动和退出,包括退出状态代码

• 监视映像 (DLL 和内核模式驱动程序) 加载

• 捕获更多输入输出参数操作

• 非破坏性的过滤器允许你自行定义而不会丢失任何捕获的数据

• 捕获每一个线程操作的堆栈,使得可以在许多情况下识别一个操作的根源

• 可靠捕获进程详细信息,包括映像路径、命令行、完整性、用户和会话ID等等

• Process Monitor完全可以自定义任何事件的属性列

• 过滤器可以设置为任何数据条件,包括未在当前视图中显示的

• 高级的日志机制,可记录上千万的事件,数GB的日志数据

• 进程树工具显示所有进程的关系

• 原生的日志格式,可将所有数据信息保存,让另一个 Process Monitor 实例加载

• 进程悬停提示,可方便的查看进程信息

• 详细的悬停提示信息让你方便的查看列中不能完整显示的信息

• 搜索可取消

• 系统引导时记录所有操作

Process Explorer

这是一款由Sysinternals开发的Windows系统和应用程序监视工具,目前Sysinternals已经被微软收购,此款不仅结合了文件监视和注册表监视两个工具的功能,还增加了多项重要的增强功能,此工具支持64位Windows系统

很多人可能把这款工具只当成TaskManager(任务管理器)的替代品,其实这样只能说是高射炮打蚊子,大材小用了,作为windows开发工程师,我极力推荐在编码和调试过程中使用此工具,下面介绍一下Process Explorer在开发过程中的用处。

一、Process Explorer的树形结构界面

1092083

1.准确的显示的进程的父子关系

2.通过颜色可以判断此进程处于的状态和类型,是挂起还是正在退出,是服务进程还是普通进程。

二、显示进程的系统信息

右键单击标题栏-选择Select Columns项,选择你要观察进程的某种特定的信息,这里有几个选项,常用的有Process Image和Process Memory这两个选项卡,其他的我就不截图举例了!

1092083

1092083

1092083

1.显示进程的文件路径(Image Path)

2.显示进程命令行参数(Command Line)

3.显示进程是64位进程还是32位的(Image Type)

4.显示进程当前所在的Session ID(session ID)

5.显示进程当前的权限,是系统用户权限还是网络管理员权限还是普通管理员权限(User Name)

6.显示当前进程的Gdi对象个数,内核对象个数,线程个数。

三、显示当前进程所加载的DLL

选择View —> Lower Pane View —> DLLs

1092083

1092083

1.通过这种方式可以观察,我们的进程是否被其他程序注入DLL

2.通过这种方式了解当前进程使用了那些编程技术,如图可见当前进程用到了Gdi+

3.可以修改Pane View的选项卡,让其显示更多的内容,比如DLL基地址,DLL内存相关信息等

四、显示当前进程所占用的系统资源句柄

选择View —> Lower Pane View —> DLLs

1092083

1.查看当前进程所占用的资源句柄表

2.可以分析进程的逻辑:如图当前TeamViewer的服务进程创建了一个Event事件,并且占用一个Log文件

3.可以检查自己的程序是否有内核句柄泄露。

五、操控进程以及显示进程的内部信息(这类信息是属于当前进程的)

右键单击进程

1092083

1.可以结束当前进程,或者当前进程树

2.可以挂起、重启、从挂其中恢复一个进程

3.查看进程信息(如图-选择Properties)

1092083

1.可以看到当前进程的用户组信息

2.可以看到当前进程申请了哪些特权

1092083

选择Environment选项卡,可以看到当前进程的环境变量,如果自动化编译或者使用一些开源软件,查看其环境变量是很重要的一环。

六、搜索功能(Ctrl+F)

1092083

为什么搜索功能单独拉出来说呢,我个人觉得这个功能在很多地方都可以用到,编码的时候可以查看哪个事件被谁占用了,你直接搜事件名称就可以了,如果你像删除一个目录怎么也删除不掉,就是说某某文件被人占用,那你可以搜索一下你需要删除的目录路径

如图:TeamViewer这个文件夹正在被一个服务占用,这样我只需要把这个服务停止,就可以删除了,常见的还有U盘被占用不让卸载等等!

Process Monitor官网下载:https://technet.microsoft.com/en-us/sysinternals/bb896645

Process Explorer官网下载:https://technet.microsoft.com/en-us/sysinternals/bb896653/

2016-10-05 21:39:41更新过
此帖已被锁定,无法回复
新窗口打开 关闭