进程监控工具ProcessExplorer
原文地址:http://www.cnblogs.com/idbeta/p/4991080.html
工具下载地址:https://docs.microsoft.com/zh-cn/sysinternals/downloads/process-explorer
工具描述
Process Explorer使用个轻量级的进程管理器,是由Sysinternals出品的免费工具,请猛击这里下载最新版本使用。
以下是官方介绍的翻译: “想知道是那个程序打开了某个文件或者目录么?现在可以找出它了。PorcessExplorer将会显示出进程打开或者加载了哪些的句柄(handles)或者动态链接库(Dlls)。 ProcessExplorer的显示区包含由两个子窗口组成。上部的窗口显示了当前系统的活动进程、以及这些进程的是属于哪个用户的。同时,上部的窗口依据ProcessExplorer的显示“模式”决定着底部窗口显示的内容:如果选择的是句柄模式,那么你将会在底部的窗口中显示的是上部窗口中选中进程所打开的句柄;如果选择的是Dll模式,那么你将看到进程所加载的动态链接库文件dlls以及内存映射文件。ProcessExplorer还具有强大是搜索功能,帮助你找出特定的某个句柄或者dll正在被哪个进程所加载。 ProcessExplorer的功能使得它在跟踪Dll版本问题或者句柄泄露方面起到很好的作用,并且向用户展示了Windows系统以及应用程序内部是如何工作的”。
典型应用场景
使用PE查看文件句柄和Dll加载情况
PE中可以在下方窗口显示指定进程的打开的句柄加载的DLL等,方法:View-->Lower Pane View-->DLls/Handls,也可以使用查找的方式来定位(Ctrl+F)
- 场景:删除USB设备的时候提示“无法停止”,如同:
- 可能的原因:USB磁盘中的文件句柄被某个进程占用时,有可能会导致这个问题
1 解决方法:启动PE,按住Ctrl+F打开查找dll(handle)的对话框,输入USB设备的分区名称比如L:\,然后点查找
1 这个时候会显示出L:\分区上被打开的句柄,这个时候点击某个句柄,PE会打开上下窗口,并且指出是哪个进程占用了哪个句柄。
1 右键点击下方handle视图中的这个句柄,选择Close Handle
1 再次尝试停止USB设备,应该就ok了
检查进程和线程(堆栈)的详细信息
- 场景:有段时间发现MSN在登录后CPU长时间占用达到50%以上
1 问题定位:打开PE双击MSN的进程打开对话框显示进程详细信息,找到Thread线程tab页,发现一个线程占用了大量CPU,且线程切换次数最高。如下面左图:
1 点击Stack,看看这个线程在做什么,如右图:
2 发现Flash.OCX模块在工作最为可疑。所以怀疑系统的flash控件有问题,推断原因。MSN主程序下方的Flash显示有可能造成了这个问题。后来用Shell禁用Flash广告后没有再出现CPU占用过高的情况。
上述右图中如果需要通过配置Symbols来显示系统模块使用的函数名称,而Flash属于第三方模块所以显示不到函数。配置方法如下:在Options菜单选择Configure Symbols。对话框中第一个选择windbg安装目录下的dbghelp.dll,第二个选择本地的symbols符号路径,这里我选择从微软的公共符号服务器下载符号到本地的固定文件夹
观察进程细节的Tips
- 进程可以显示成为树状结构,可以清晰的看到哪个进程的父进程是谁,子进程是谁;
可以显示进程更为详细的信息,比如vista下的“强制完整性级别”、是否虚拟化。虚拟内存、工作集等信息。通过菜单View->Select Columns可以定制自己想要显示的关于进程相关的各种信息
- 有些子进程或父进程退出速度很快,无法查看关系,可以设置Difference Highlight Duration的时间为最长的9秒,这样进程退出后也还会继续显示9秒的;
- 进程的颜色代表了不同的含义:如图
- Own Process用淡紫色表示,代表和以当前登录用户身份启动的进程
- Services用粉色表示,代表系统服务类的进程
- .Net的进程用黄色表示,比如我的移动飞信的进程是.net进程
- Packed Images指的是捆绑的进程,很多病毒流氓软件为了避便被杀毒软件进行特征检查对自己的进程文件进行Pack.当然,也有很多正常的进行也是Packed类型的,比如我的TC和Foxmail。
- 红色、绿色分别表示新创建的和销毁的对象(注意:对象可以是加载的dll打开的句柄也可以是进程对象 本身)当观察进程启动的顺序或者加载模块的先后讯息等细节的时候注意观察红色和绿色
- 一个进程一闪而过的创建起来,我还没有来得及看。怎么办?可以配置上述高亮颜色的“滞留时间”:使用Options--Different Highlight Duration 将这个时长设置为更长的时间就可以了。
- 最后要说的是Jobs作业对象用咖啡色表示,举例说明,如Google浏览器,下面具体分析一下其中部分的安全特性:
场景1:Google浏览器安全特性分析
2 步骤使用PE查看进程特性在vista下tab的进程运行在低MIC级别,见Integrity列为Low:这类似于在vista系统下IE7的“IE保护模式”,因为默认情况下高MIC级别的进程不响应低MIC级别进程的窗口消息,从而避免一些核心进程在浏览器遭到劫持后,被攻击,如窗口粉碎工具。同时低MIC级别的进程在vista下不能修改一些vista系统关键对象,如敏感注册表和文件位置。chrome充分利用vista系统的安全性。
3 不过chrome的主进程和插件进程是运行在Medium级别的,chrome将插件做为独立的进程来维持,有助于提高浏览器稳定性,插件或者tab挂掉不会导致整个浏览器崩溃。(这是题外话,下面是Chrome自己的进程管理器显示的信息)
4 打开进程管理器你会发现,chrome的每个tab进程实际上是个作业job(简单来讲就是一个可以容纳多个进程的容器),从开发角度来说,对于job可以进行一个更有效的权限限制程序“边界”的限定。每个tab的作业只容纳了一个进程。用PE打开该job查看详细信息。我们打开一个tab进程,查看权限标签页:发现进程没有特权,而权限列表中很多被设置为Deny。这说明当被访问资源(注册表,文件)的ACL中如果明确要求具有管理员或者高权限才可以操作的情况下,tab进程是不能修改这些资源的。
如何做到的呢?我们前面说了,这是通过作业来实现的,windowsAPI在创建作业进程的时候可以使用参数将job这个单位的一些特定权限进行限制(可配置的),同样,我们打开一个tab进程,切换到job标签页(普通进程是没有的),查看下面limited的列表,发现该job的很多行为被限制了,包括:仅运行一个活跃进程工作;不允许进程创建Desktop对象;不允许修改显示设置;不允许进程使得windows退出、关机等;用户对象读取限制;对于剪贴板的读写操作的限制,管理员权限操作限制等,从而实现这个“沙盒”。
场景2:恶意软件侦查和逆向工程
使用进程属性中是String标签页信息:
- 进程属性的String标签也通常能够显示这个进程在运行的时候可能会使用到的一些字符串,比如网址、路径名、注册表信息等等蛛丝马迹。如果是病毒或者恶意软件通过包含着一个远程的地址用来下载病毒或者将窃取的信息上传。这里通常还会包含其他信息,对于不同的场合来说,总有一些是有用的。通常有些杀毒软件也会从这里提取病毒特征码的。
进程监控工具ProcessExplorer相关推荐
- python进程监控 supervisor_python supervisor进程监控工具的使用
supervisor -- a process control system 另外一个类似 supervisor的工具,因为supervisor 不兼容python3, !!! Circus Proc ...
- 微软推出经典进程监控工具 Procmon 的 Linux 版本
微软最近为 Windows Sysinternals 工具集中的 Process Monitor 应用程序打造了 Linux 版本,并将其以 MIT 协议开源了出来. ▲Windows 上的 Proc ...
- 进程监控工具 Procmon有Linux版本了
微软最近为 Windows Sysinternals 工具集中的 Process Monitor 应用程序打造了 Linux 版本,并将其以 MIT 协议开源了出来. Windows 上的 Procm ...
- God--Ruby版的进程监控工具
一般情况下,几句shell脚本,bat脚本,或者简单的100行c#代码都可以做到比较通用的进程管理工具,但是专业化的产品通用性和个性化还是有很多看头的. 1. 用ruby来写配置文件 很多动态语言都这 ...
- supervise进程监控工具
supervise是daemontools的一个工具,可以用来监控管理unix下的应用程序运行情况,在应用程序出现异常时,supervise可以重新启动指定程序.和supervisor比较类似,之前也 ...
- Linux 命令行网络监控工具
2019独角兽企业重金招聘Python工程师标准>>> 转自:http://blog.sina.com.cn/s/blog_14d68bfac0102vux9.html 对任何规模的 ...
- 系统管理员都要知道的 30 个 Linux 系统监控工具
1. top - 进程活动监控命令 top 命令会显示 Linux 的进程.它提供了一个运行中系统的实时动态视图,即实际的进程活动.默认情况下,它显示在服务器上运行的 CPU 占用率最高的任务,并且每 ...
- modbus报文解析工具_Linux下网络流量常用那些监控工具
这些工具提供的功能非常强大,我们平时使用的只是冰山一角,比如lsof.ip.tcpdump.iptables等.本文不会深入研究这些命令的强大用法,因为每个命令都足以写一篇文章,本文只是简单地介绍并辅 ...
- Linux中如何使用Htop监控工具?【网络安全】
一.Htop界面展示 "Htop是一个用于Linux/Unix系统的交互式实时进程监控应用程序,也是top命令的替代品,它是所有Linux操作系统上预装的默认进程监控工具. Htop还有许多 ...
最新文章
- Python使用redis的消息队列
- SPI的4种工作模式(备忘)
- Linux定义多个标准输入输出,言简意赅解释Linux中的标准输入输出
- 在命令行中使用ssh连接远程服务器
- 一个简单例子理解连表查询
- 阶段3 1.Mybatis_05.使用Mybatis完成CRUD_8 Mybatis中的返回值深入-调整实体类属性解决增和改方法的报错...
- java开源代码生成器_人人开源之代码生成器(renren-generator)
- 程序员如何学习量化交易,一文总结
- 获取当前时间的前一天时间
- MyCat相关知识及测试要点
- Exynos 4412处理器IIC总线控制器(包括协议)
- 云和恩墨做的是oracle,云和恩墨张中靖:立足Oracle技术,顺应去IOE大势 原创
- 微信小程序实现柱形图与折现图
- 阿里P8耗时3年,总结的Java面试复盘手册,带你挑战50万年薪
- DarkHole_2
- 软件设计之——“高内聚低耦合”
- 转屏动画 - 安卓R
- python控制程序_Python 流程控制
- 数据来源渠道及采集工具_鹰眼智客大数据可以采集哪些渠道客源?
- 软件之聊天工具:QQ,MSN,Google talk,Skype, Lync
热门文章
- c语言else函数用法,ELSE IF THEN 函数的用法
- \[2020][ASIACRYPT]Estimating quantum speedups for lattice sieves 亚密会报告文字版
- 如何构建有强烈质量意识的学习型组织
- H7-TOOL发布固件V2.22, 增加FreeRTOS/uCOS2 Trace,加强RTT和CAN助手,脱机烧录增加比亚迪,上海芯圣51, TI, S32K3, 钜泉光电等
- random模块常用函数介绍
- 期货持仓不足(期货持仓量越来越少)
- 03 四旋翼无人机的组成与拼装(下)
- android滑屏两三事
- Ubuntu系统设置中文
- 旧饭新炒,论Citrix共享桌面的最佳实践(2)