Sysinternals---Process Explorer

如果你现在或者将来的主要工作平台为Windows,但还没有接触过Process Explorer,那你应该反思一下了。

官网:

https://docs.microsoft.com/zh-cn/sysinternals/downloads/process-explorer

  • 顾名思义,Process Explorer 就是一个功能强大的进程资源管理器。Windows 自带的任务管理器功能太过简陋,对于一个专业的开发人员来说,一个强大的进程资源管理器十分必要。

功能介绍

    1. 更详尽的进程列表

这里写图片描述
其中以缩进方式显示进程父子关系,不同的进程颜色显示不同的进程属性,且其颜色可自定义,菜单->Options->Configure Colors
这里写图片描述
列条目是可选的,可以定制自己所需显示的信息,我常用的就是两项,Image Type 和 User Name
这里写图片描述

    1. 详细的进程信息(以可怜的calc.exe 为例)

双击或者选中calc 进程后双击(或者通过类似spy++的小靶子选中可视的窗口)出现如下窗口:

这里写图片描述
窗口最上方显示了可以选择的进程信息。当前选择为Threads,途中显示了线程的ID,起始地址,以及其起始时间、优先级、占用了系统及用户空间的时间、状态等信息,下方按钮提供了可对线程进行的操作:主要就是暂停/恢复,kill,查看线程权限等操作。
Module 按钮显示的是线程当前执行所在的模块的信息。

查看线程栈
点击Stack,效果同双击线程,将会显示线程的调用栈,其实现方式是dbghelp.dll模块及其相关的函数,如果想了解相关内容可以查看我之前介绍栈回溯的文章,或自行百度。
这里比较特别的一点是:当我们UAC 运行Process Explorer,此时选择查看线程调用堆栈时将可以显示内核模块的信息。
这里写图片描述

  • TCP/IP—-显示进程的TCP/IP 活动
  • Security—进程安全相关
  • Environment—进程环境变量,顺便提一句,此工具以及Sysinternals 的所有的工具的列表显示有的是可以排序的,另外,在主窗口对应的选项卡点击以排序后,会丢失父子关系信息,如果想恢复显示,可以按下Ctrl+T,或者选择菜单:View->Show Process Tree。Process Hacker 比这个工具好的地方就在于,其提供了进程搜索功能,可以搜索进程名,进程ID等,另外其显示列表可排序的程度更大,对于显示不太全的信息,双击后可以显示,总体来说功能更加强大,更好用。后面将会介绍。
  • Strings
    这里写图片描述

字符搜索功能,包括镜像文件中的字符搜索以及内存中的字符搜索。可以说很贴心了。

  • Image
    进程完整路径,签名,版本号,生成时间,命令行,当前路径,父进程,用户,起始时间, 镜像类型,DEP 状态,ASLR 状态等等。

  • performance 和 performace Graph 是其执行性能方面的信息

  • Disk 和 Network 显示网络I/O 和 磁盘I/O 的量。
  • 对于Job 中的进程可以显示Job 信息。

进程详细信息中的信息大概就是上面这些了。但是我们发现它的信息是不全的,其中我们进程需要了解的模块信息,句柄,等信息是没有的。后来经过查看菜单选项,发现其模块信息和句柄信息是可选择的显示在主窗口上的。可能作者考虑这两项是经常需要使用的功能,就放在了这里。相反,Process Hacker 的作者将它放到了进程的详细信息中,哪个位置比较好就看个人的洗好了,用起来其实差别不大。
选择显示模块和句柄的方法:
快捷键:Ctrl+D 显示DLL,Ctrl+H显示句柄。Ctrl+L 选择显示或者不显示下层的信息。
菜单按钮:这里写图片描述
点击图中6号可以切换显示DLL 和 句柄。
菜单:View->Show lower Pane设置。
这里写图片描述
如果想选择显示未命名的句柄、内存映射:
View->Show Unnamed Handles And Mappings

文件及句柄查找:强大且使用的功能,查找文件占用、模块占用很有效果。Ctrl+F 即可召唤。

其他福利功能:自行探索吧。

实例解决问题。

  • 问题描述,在开发一个防火墙功能时,为了测试“对指定路径的应用程序添加规则”的功能时,选择了internet Explorer(IE).exe。之后添加规则,但是发现其仍然可以上网。然后查看log发现文件路径以及函数调用都是成功的,之后想,是不是自己的路径传入错了,然后想起自己平时使用chorme 时,进程列表中常常有很多的chorme 进程,IE 会不会也是这样的。此时打开Process Explorer,发现如下信息:
    这里写图片描述

目标系统为X64,为什么运行IE 会同时有X64、X86两种进程存在,之后查看进程详细类型发现IE分别运行了X64和X86两个版本,我们传入给下层的进程的路径是X64版本IE 的路径。当我们在IE 中打开多个标签页时,会新增一些X86 版本的IE,后来我猜想,IE 是不是通过X86版本的进程进行的网络操作,X64版本进行的行为控制等等信息?后来通过选取X86版本的IE 的路径设置防火墙,IE 确实无法进行网络连接了。
之后更进一步,查看IE的更多细节如下:
这里写图片描述
在我们使用Process Explorer 的靶子分别选择IE的1,2号区域时,Process Explorer 分别指向了X64 IE和 X86 IE。
再看下面的实验:分别选择不同的选项卡:
这里写图片描述

由此可猜测IE 的选项卡的机制,具体的内容不清楚,留给有兴趣的同学吧。

  • 顺便说一句,如果没有对于这个工具的很好的利用,没有自己的猜想和实验,估计问题的解决时间是不确定的。由此可见经验和工具对于工作效率的重要性。

题外话:可以通过Process Explorer 查看一下Process Explorer 自己的实现机制。它对应平台的镜像是怎么安排的?都是X86?都是X64?当以UAC 权限运行时是否有驱动?如果有,驱动的路径在哪里?

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
基本简介   Process Explorer让使用者能了解看不到的在后台执行的处理程序,能显示目前已经载入哪些模块,分别是正在被哪些程序使用着,还可显示这些程序所调用的 DLL进程,以及他们所打开的句柄。Process Explorer最大的特色就是可以中终任何进程,甚至包括系统的关键进程!   Process Explorer 的显示有两个子窗口所组成,窗口上方会显示出当前活跃的程序进程,包括它们的详细描述,窗口下方则会显示出通过资源管理器模式运行的应用程序的相关信息,以及它们所调用的DLL和打开的句柄,该版本可以运行在windows NT/2K/XP/2003系统平台 [编辑本段]Process Explorer的独特之处   1.显示被执行的映像文件的完整路径   2.显示进程安全令牌   3.加亮显示进程和线程列表中的变化   4.显示作业中的进程,以及作业的细节   5.显示运行。NET/WinFX应用的进程,以及与.NET相关的细节   6.显示进程和线程的启动时间   7.显示内存映射文件的完整列表   8.能够挂起一个进程   9.能够杀死一个线程 [编辑本段]Process Explorer的现状   由Sysinternals开发的一个高级的Windows系统和应用程序监视工具,目前已并入微软旗下。此版本的Process Explorer 不仅结合了Filemon(文件监视器)和Regmon(注册表监视器)两个工具的功能,还增加了多项重要的增强功能。包括稳定性和性能改进、强大的过滤选项、修正的进程树对话框(增加了进程存活时间图表)、可根据点击位置变换的右击菜单过滤条目、集成带源代码存储的堆栈跟踪对话框、更快的堆栈跟踪、可在 64位 Windows 上加载 32位 日志文件的能力、监视映像(DLL和内核模式驱动程序)加载、系统引导时记录所有操作等。   现在Process Explorer 11.21已并入Windows成为Microsoft Process Monitor 1.37。
Process Explorer是一款功能强大的进程管理工具,可以替代任务管理器,并提供更多的功能和信息。它是由Sysinternals开发的,后来被微软收购,成为微软旗下的进程管理工具。你可以从微软的官方网站下载Process Explorer,它是免安装软件,解压后即可直接运行。通过Process Explorer,你可以方便地访问各种信息,如进程树、已打开句柄、DLL列表、线程活动、线程栈、CPU百分比、完整性级别和内存管理器的细节等。它是一款非常实用的工具,可以帮助用户更好地管理和监控系统中的进程。\[1\]\[2\]\[3\] #### 引用[.reference_title] - *1* *2* [电脑技巧:进程管理工具Process Explorer介绍](https://blog.csdn.net/xishining/article/details/127645012)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] - *3* [【开发工具集】Process Explorer——进程资源管理器](https://blog.csdn.net/Fuel_Ming/article/details/123707353)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值