[原]排错实战——使用process explorer替换任务管理器

原Aha总结注册表process explorersysinternalsprocess monitor

前言

一般,我们会使用任务管理器查看系统中有哪些进程正在运行,强制杀掉某个进程。可是系统自带的任务管理器功能有限,process explorer是一个功能更强大的工具。它可以让我们查看更多更详细的信息( 比如查看某个进程的父进程,进程加载了哪些dll,打开了哪些文件,线程的cpu使用情况,线程的调用栈,哪些文件被哪些进程占用了,等等 …… )。有没有办法让process explorer替换系统自带的任务管理器呢?:thinking:

功能介绍

这个功能,process explorer的作者Mark Russinovich已经帮我们想到了。process explorer提供了一个很酷的功能——替换任务管理器(taskmgr.exe),这样当我们运行任务管理器的时候,就会自动打开功能更强大的process explorer了。

replace task manager

{% note info %}
说明:此操作需要以管理员权限运行process explorer
{% endnote %}

这么厉害的操作,是怎么实现的呢?

实现原理

原来windows中有个注册表项HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options。如果程序AImage File Execution Options下有对应的注册表项, 当我们启动程序A的时候,系统会启动Debugger子项中的值对应的程序,并把程序A的路径当作参数传递过去。

taskmgr.exe为例,设置如下图:

taskmgr.exe启动的时候,系统检测到taskmgr.exeImage File Execution Options下有对应的设置项,系统会启动Debugger子项中的值对应的程序C:\My\tools\sysinternals\procexp.exe,并把taskmgr.exe的路径(我机器上是C:\WINDOWS\SYSTEM32\TASKMGR.EXE)当作参数传递给procexp.exe

验证

process explorer到底是不是通过这种方法实现的呢?让我们用process monitor来观察一下整个过程吧。具体步骤我就省略了,请参考下面的动图。

{% note warning %}
注意: process monitor默认会过滤掉process explorer相关的事件,如果想看到相关事件,需要手动取消过滤。自己验证的时候,一定不要忘了这一点。为了引起大家的重视,我特地把相关设置截图贴到下方!

cancel-filter-process-explorer

{% endnote %}

轻松一下

既然我们知道了原理,我们可以尝试尝试其它玩法。用notepad.exe替换taskmgr.exe怎么样?当启动taskmgr.exe的时候,启动的将会是notepad.exe
何不用这项技术娱乐下周围的同事?替换掉大家常用的vs(对应的名字为devenv.exe),这样当同事打开vs准备写代码的时候,会是什么表情呢? :smirk:

脚本

把下列代码保存成taskmgr.reg,双击即可导入到注册表。

Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options\taskmgr.exe]
"Debugger"="\"C:\\My\\tools\\sysinternals\\procexp.exe\""

{% note warning %}
注意: debugger的值要替换成你自己机器上的路径。
{% endnote %}

你知道吗?

可以使用Ctrl + Shift + Esc或者Ctrl + Alt + Delete来打开任务管理器。你喜欢用哪种方式打开呢?还知道其它打开任务管理器的方法吗?

总结

  • 利用process monitorProcess Tree功能,可以方便的让我们查找到指定的进程,并进行过滤。
  • Image File Execution Options注册表项很好很强大。镜像劫持。
  • process explorerprocess monitor只是sysinternals工具集中的两个常用的工具。心动了吗?官方下载地址:https://docs.microsoft.com/en-us/sysinternals/downloads/

参考资料

原文地址:https://www.cnblogs.com/bianchengnan/p/12242480.html

时间: 2024-08-23 16:27:00

[原]排错实战——使用process explorer替换任务管理器的相关文章

Process Explorer(增强任务管理器) V16.05 免费绿色版

软件名称: Process Explorer(增强任务管理器)软件语言: 中文授权方式: 免费软件运行环境: Win7 / Vista / Win2003 / WinXP 软件大小: 1.2MB图片预览: 软件简介:Process Explorer 是一款增强型的任务管理器,你可以使用它方便地管理你的程序进程,能强行关闭任何程序(包括系统级别的不允许随便终止的“顽固”进程) 能详尽地显示计算机信息:CPU.内存使用情况,DLL.句柄信息,很酷的曲线图... 此为最新版,原版.汉化均有较多改进,签

[原]排错实战——通过对比分析sysinternals事件修复程序功能异常

原调试debug排错troubleshootprocess monitorsysinternals 缘起 最近,我们程序的某个功能在一台机器上不正常,但是在另外一台机器上却是正常的.代码是同一份,vs版本也一样(打的补丁也一样).编译出来的程序在两台电脑上运行的结果就是不一样.惊不惊喜,意不意外?如果是你遇到了这种情况,你会怎么调查呢?:upside_down_face: {% note info %} 说明: 为了跟大家分享这个问题,我事后在自己的机器上重新把整个过程梳理了一遍,并保存了pro

[原]排错实战——解决Tekla通过.tsep安装插件失败的问题

原总结调试排错troubleshootteklaprocess monitorsysinternals 缘起 最近同事使用.tsep安装Tekla插件的时候,Tekla提示该插件已经存在了,需要卸载后再安装.同事找了半天,没找到怎么卸载,我也没找到.于是决定弄清楚Tekla是 如何判断一个插件安装与否的. 想必看过我其它排错文章的小伙伴已经猜到了,我们今天文章中的主角依然是process monitor.好了,话不多说,好戏马上开始. 调查 在开始调查之前,我们可以先思考下,Tekla是如何判断

[原]排错实战——解救加载调试符号失败的IDA

原调试IDA排错troubleshootsymbolspdbsysinternalprocess monitor 缘起 最近想借助IDA逆向一个函数.在windows下,调试器(比如vs, windbg)可以通过调试符号(PDB)把地址与符号名对应起来,为我们提供更可读的信息.IDA应该也支持加载PDB,通过查看IDA安装目录下的idahelp.chm(打开后搜索PDB即可找到相关说明)发现还真支持.但是当我加载符号的时候,却失败了.本文记录了整个调查过程. 效果对比 先放两张对比图,大家直观感

[原]排错实战——VS清空最近打开的工程记录

原脚本how-toprocess monitorsysinternalsvsvisual studiovs2017vs2019注册表 缘起 vs有一个功能 -- 在起始页会显示最近打开的工程列表,方便用户快速打开之前打开过的工程文件.但是打开的工程文件多了,想要找到自己需要的工程文件也不是那么容易的,要是能把之前打开的记录都清理干净该有多好啊.本文记录了我在查找vs2019相关设置存储位置的调查过程 .对于vs2017以前的版本,对应的设置是保存在注册表中的,从vs2017开始,不再保存在注册表

[原]调试实战——程序CPU占用率飙升,你知道如何快速定位吗?

原调试debugwindbghangprocess explorer 前言 如果我们自己的程序的CPU Usage(CPU占用率)飙升,并且居高不下,很有可能陷入了死循环.你知道怎么快速定位并解决吗?今天跟大家分享几种定位方法,希望对你有所帮助. 如何判断是否有死循环? 通过电脑风扇的声音猜测. 如果风扇一直响个不停,说明电脑很热.高CPU占用率会导致CPU发热量增大,从而导致风扇狂响.如果听到风扇响个不停,可以打开任务管理器看看CPU占用率是不是很高.如果发现是我们的进程导致的高CPU占用率,

Windows 增强版任务管理器-Process Explorer

百度百科PROCESS EXPLORER介绍 由Sysinternals开发的Windows系统和应用程序监视工具,目前已并入微软旗下.不仅结合了Filemon(文件监视器)和Regmon(注册表监视器)两个工具的功能,还增加了多项重要的增强功能.包括稳定性和性能改进.强大的过滤选项.修正的进程树对话框(增加了进程存活时间图表).可根据点击位置变换的右击菜单过滤条目.集成带源代码存储的堆栈跟踪对话框.更快的堆栈跟踪.可在 64位 Windows 上加载 32位 日志文件的能力.监视映像(DLL和

jstack:将Process Explorer中看到的进程ID做16进制转换,到ThreadDump中加上0x 前缀即能找到对应线程(转)

原文链接:http://www.iteye.com/topic/1133941 症状: 使用Eclipse win 64位版本,indigo及kepler都重现了,使用tomcat 6.0.39,jdk1.6.u45及1.7u45均尝试了,也重现. 重现步骤很简单,使用debug模式启动时较容易出来,debug启动tomcat,(我的是webapp)然后在页面上随便点点即发现eclipse僵死,且任何从浏览器发出的请求都卡住不能被接收执行. 1.然后从任务管理器直接杀掉eclipse对应的jav

借助Process Explorer定位断电未保存的录音文件

话说某大神(大婶)开会常偷懒,用Windows自带的录音机进行录音并用记事本记录会议精要却没有点击Ctrl+S的习惯,结果就给我找了今天的难题.(之前都是Office的自动保存在哪里……) 还是一样,先将结果摆在前面:录音文件缓存位置:C(系统盘符):\Users\AbsZero(用户名)\AppData(隐藏文件夹)\Local\Temp下,开头为ART(后面数字可能不同),扩展名为TMP,建议按照修改时间查找.将对应文件扩展名更改为WMA即可用音频播放软件打开.很遗憾的是,记事本的缓存没有找