工具 | Procexp工具使用及案例说明

文章最早发布在微信公众号“燕幕自安”上,该博客和“燕幕自安”同作者。非经过本人同意,严禁转载。微笑


PROCEXP

 

【工具概述】

        Procexp,即process explorer,进程浏览器。用来查看计算机上运行的进程的状态。(CPU、内存、句柄、加载dll、线程及堆栈等)

【功能介绍】

1. 查看进程CPU、内存

        打开工具主界面就能看到PID、CPU、内存使用等情况,和资源管理器类似。

2. 查看进程挂载的DLL文件、句柄

        在上方菜单栏或者工具栏打开show lower pane。如下:

        打开后选定某进程,可在下方界面看到指定的进程所加载的所有DLL,如下:

       点击View Handles,显示该进程的句柄信息。

 

        点击右边的望远镜查找所有进程、DLLs、Handle等信息,比如,我查找Cryptnetwork.dll。结果如下:

        这里有所有加载了该库文件的进程。点击可跳转到该进程的对应信息。这个功能在查找自己的目标进程是否成功加载自己的dll时很好用。

3. 查看进程线程及堆栈

        在主界面上,双击某进程,可打开该进程的属性页,如下:

        这里可以看到,进程的模块信息、资源占用、线程、网络监听等。下面主要说线程及堆栈。

        要看程序的线程及堆栈信息,需要有该进程及下属DLL模块的PDB符号文件。将对应文件拷贝到文件夹如:C:\mysymbol 。然后打开option。如下:

        将刚才的pdb文件目录填在里面。其中前半段是微软的库文件的符号文件,他会在指定网站下载存在C:\symbols。后半段是我们配置的。

        完成后打开进程查看,就能看到进程下的线程信息。(如果不配置也能看到,但对应不到线程名等,下面有对比)

        配置好了,会有如上显示,正在加载符号文件。稍等后显示出来了,如下:

        如果不配置符号文件,只能看到对应的模块名和线程ID,如下:

        然后,我们点击某线程进去可以看到对应的堆栈信息。如下:

        栈信息从下向上看,看到该线程,调用了ws2_32的Accept,然后就是线程等待。这一定是监听了端口,在等待连接。

【注意事项】

        Procexp工具一定要以管理员权限运行,否则看不到部分SYSTEM进程信息,影响问题定位。

【案例一  查看堆栈信息定位进程崩溃】

        之前用该工具定位了一个偶现的进程崩溃的问题,因为之前的截图找不到了,我自己写了几句简单的代码,来复现这个崩溃。如下:

        上面的fseek函数的第一个参数不能为空,之前我们的进程崩溃就是因为多个进程访问文件时,打开文件失败了,文件句柄为NULL,但是没有判断,直接送给fseek,导致了进程崩溃。这次我直接写个错误的,让他崩溃,然后我们来定位一下。

        运行编译出的工具,出现崩溃界面,如下:

        这时不要关闭该窗口,因为关闭了之后,进程就会关闭,他的栈也会释放掉,现在打开procexp,配置好symbols path(pdb文件在编译的时候就一起生成了,拷贝到指定目录即可),找到ffff.exe,然后双击打开属性,查看线程信息,如下:

        找到主线程,双击进入,查看堆栈信息。如下:

        发现,程序在执行tmain进入后,执行fseek,然后就开始报错。所以直接怀疑此处代码,先找到主线程,然后找到主线程下的所有fseek函数,就能锁定问题原因了。

【案例二  小工具锁定广告来源】

        电脑右下角经常会弹出很多小广告,也不知道是哪些进程弹出来的,很是烦人,在procexp上,有个小工具,能锁定该广告所属进程,这样就能关闭删除之。

        操作如下:

        点击图示按钮,拖动到广告页面,放开鼠标,工具会自动定位到广告的来源进程,找到后,删除进程或删除进程文件即可。

        Procexp工具就介绍到这里,还有很多没有说的功能大家去探索。好的工具能帮助我们很快分析定位问题。

        君子善假于物也~


        非经过本人同意,严禁转载。

        如有问题,请关注公众号留言,我看到会及时回复的。

 

  • 6
    点赞
  • 39
    收藏
    觉得还不错? 一键收藏
  • 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。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值