Process Explorer高级使用

news2024/12/23 18:57:43

工具描述

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标签也通常能够显示这个进程在运行的时候可能会使用到的一些字符串,比如网址、路径名、注册表信息等等蛛丝马迹。如果是病毒或者恶意软件通过包含着一个远程的地址用来下载病毒或者将窃取的信息上传。这里通常还会包含其他信息,对于不同的场合来说,总有一些是有用的。通常有些杀毒软件也会从这里提取病毒特征码的。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/715708.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

三、pycharm开发PyQt6 开发环境一键生成

一、环境 windows 10Pycharm 社区版 - PyCharm 2022.1.3 二、设置模板 1、打开模板 File -> Settings… (ctrl alt s) -> Editor -> File and Code Templates 2、创建模板 1)点击 Files 2)点击 3、填写第一个脚本文件 Name : My PyQt…

ReentrantLock源码解析 | 京东云技术团队

并发指同一时间内进行了多个线程。并发问题是多个线程对同一资源进行操作时产生的问题。通过加锁可以解决并发问题,ReentrantLock是锁的一种。 1 ReentrantLock 1.1 定义 ReentrantLock是Lock接口的实现类,可以手动的对某一段进行加锁。ReentrantLock…

hadoop高校固定资产管理系统-计算机毕设 附源码74965

hadoop高校固定资产管理系统 摘 要 在信息飞速发展的今天,网络已成为人们重要的信息交流平台。高校部门每天都有大量的信息需要通过网络发布,为此,高校固定资产管理系统开发的必然性,所以本人开发了一个基于Tomcat(服务…

SpringBoot整合Schedule详解和优化实战

文章目录 前言为什么选择Spring ScheduleCron表达式简单示例测试结果优化方案 前言 Spring Schedule是Spring框架提供的一种简单的定时任务解决方案。它是基于Java的Scheduled注解,可以让我们在不影响主线程的情况下,定时、周期性地执行任务。 为什么选…

vue+ant design vue实现搜索区域form

1.要实现的效果&#xff1a; form部分form-item自动铺开&#xff0c;间距适当&#xff0c;屏幕大小不同能根据屏幕大小变化。 2.vue组件中的代码示例 重点html代码&#xff1a; <!-- 搜索区域 --><div class"table-page-search-wrapper"><a-form la…

vue 七款低代码平台对比

vue 七款低代码平台对比 摘要平台表单设计form-generatorLowCodeEngine 可视化设计OpenDataVGoView 门户设计AgileBPM轻流云程低代码平台 摘要 调研低代码平台时看了很多网站&#xff0c;被我大概分为了三种&#xff1a;页面设计、可视化设计、门户设计&#xff0c;其中功能也…

【vue3中使用swiper组件】

【vue3中使用swiper组件】超详细保姆级教程 效果展示简介版本安装Swiper用法完整代码展示html静态展示js逻辑展示&#xff08;vue3 --- ts&#xff09;官方文档导入模块 css样式展示 &#xff08;自行更改所需&#xff09;官方文档样式 效果展示 简介版本 安装Swiper 项目终端中…

Observability:Synthetic monitoring - 合成监测入门

从我们的全球测试基础设施监控关键用户旅程&#xff0c;并了解网络和前端性能对用户体验的影响。 全面了解你的网站性能、功能和可用性&#xff08;从开发到生产&#xff09;&#xff0c;并在客户之前发现问题。合成监测&#xff08;synthetic monitoring&#xff09;使你能够模…

关于表单提交

一、表单实例 <!-- 把表单信息放入到表格当中&#xff0c;显示的内容更加整齐 --><form action"" method"get"><h1 align"center">用户注册</h1><input type"hidden" name"action" value"l…

正则表达式 - 语法 | 一看就懂!!!(二)

目录 一、正则表达式 - 语法 二、普通字符 三、非打印字符 四、特殊字符 五、限定符 &#xff08;一&#xff09;限定符用来指定正则表达式的一个给定组件必须要出现多少次才能满足匹配。有 * 或 或 ? 或 {n} 或 {n,} 或 {n,m} 共6种。 &#xff08;二&#xff09;正则表…

Eureka注册失败解决

根据查看网上资料发现是服务端自己自己注册了&#xff0c;所以需要自己关闭服务端注册 加上两行代码 fetch-registry: false register-with-eureka: false 即可注册成功

初级保育员专业知识生活管理考试题库及答案

​本题库是根据最新考试大纲要求&#xff0c;结合近年来考试真题的重难点进行汇编整理组成的全真模拟试题&#xff0c;考生们可以进行专项训练&#xff0c;查漏补缺巩固知识点。本题库对热点考题和重难点题目都进行了仔细的整理和编辑&#xff0c;相信考生在经过了针对性的刷题…

「深度学习之优化算法」(八)萤火虫算法

1. 萤火虫算法简介 (以下描述,均不是学术用语,仅供大家快乐的阅读) 萤火虫算法(Firefly Algorithm,FA)是一种模仿萤火虫之间信息交流,相互吸引集合,警戒危险。算法的原理简单,但实现过程较为复杂,而且算法的提出时间不长,算法的改进、优化处于初级阶段,国内外相应的…

大数据面试题-算法题

目录 1.时间复杂度、空间复杂度理解 2.常见算法求解思想 3.基本算法 3.1冒泡排序 3.2 快速排序 3.3 归并排序 3.4 遍历二叉树 3.5 二分查找 3.6 小青蛙跳台阶 3.7 最长回文子串 3.8 数字字符转化成IP 1.时间复杂度、空间复杂度理解 在计算机算法理论中&#xff0…

Nginx【Nginx核心指令(Gzip压缩指令)、Nginx场景实践(浏览器缓存、防盗链)】(七)-全面详解(学习总结---从入门到深化)

目录 Nginx核心指令_Gzip压缩指令 Nginx场景实践_浏览器缓存 Nginx场景实践_防盗链 Nginx核心指令_Gzip压缩指令 Nginx开启Gzip压缩功能&#xff0c; 可以使网站的css、js 、xml、html 文件 在传输时进行压缩&#xff0c;提高访问速度, 进而优化Nginx性能! Gzip压缩作用 将…

使用OpenCV工具包成功实现人脸检测与人脸识别,包括传统视觉和深度学习方法(附完整代码,吐血整理......)

使用OpenCV工具包实现人脸检测与人脸识别&#xff08;吐血整理&#xff01;&#xff09; OpenCV实现人脸检测OpenCV人脸检测方法基于Haar特征的人脸检测Haar级联检测器预训练模型下载Haar 级联分类器OpenCV-Python实现 基于深度学习的人脸检测传统视觉方法与深度学习方法对比 O…

爱不释手的六款IDEA神仙插件,开发效率翻倍!

一、前言 作为一名开发人员&#xff0c;在众多的 IDE 中&#xff0c;IntelliJ IDEA 无疑是最受欢迎和强大的选择。 除了其本身的功能外&#xff0c;IntelliJ IDEA 还支持各种强大的插件&#xff0c;这些插件可以进一步增强开发体验和效率。 这些插件就像是一些神奇的存在&…

uni-app如何生成海报图片

项目场景&#xff1a; 在uni-app中&#xff0c;通过点击邀请分享海报的方式&#xff0c;可以展示不同的海报&#xff0c;并通过扫描海报上的二维码来实现用户之间的关系绑定&#xff0c;从而实现分销功能&#xff1b;每次生成的海报样式都可能不同&#xff0c;可以根据后台配置…

Java实现PDF转Word【收集整理】

首先感谢 Mgg9702 博主提供的转换依赖包处理&#xff0c;关于如何获得一个破解的pdf转word我这里就不追述了&#xff0c;有需要去看&#xff1a; https://blog.csdn.net/Mgg9702/article/details/124987483?spm1001.2014.3001.5506 我这里主要涉及到整理一个pdf转word的jar工…

Spring Boot原理分析 | SpringApplication、Yaml、Properties

&#x1f497;wei_shuo的个人主页 &#x1f4ab;wei_shuo的学习社区 &#x1f310;Hello World &#xff01; Spring Boot Spring开源框架&#xff0c;轻量级的Java开发框架&#xff0c;解决企业级应用开发的复杂性而创建&#xff0c;简化开发 基于POJO的轻量级和最小侵入型编程…