[原]排错实战——使用process explorer替换任务管理器
前言
一般,我们会使用任务管理器查看系统中有哪些进程正在运行,强制杀掉某个进程。可是系统自带的任务管理器功能有限,process explorer
是一个功能更强大的工具。它可以让我们查看更多更详细的信息( 比如查看某个进程的父进程,进程加载了哪些dll
,打开了哪些文件,线程的cpu
使用情况,线程的调用栈,哪些文件被哪些进程占用了,等等 …… )。有没有办法让process explorer
替换系统自带的任务管理器呢?:thinking:
功能介绍
这个功能,process explorer
的作者Mark Russinovich
已经帮我们想到了。process explorer
提供了一个很酷的功能——替换任务管理器(taskmgr.exe
),这样当我们运行任务管理器的时候,就会自动打开功能更强大的process explorer
了。
{% note info %}
说明:此操作需要以管理员权限运行process explorer
。
{% endnote %}
这么厉害的操作,是怎么实现的呢?
实现原理
原来windows
中有个注册表项HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options
。如果程序A
在Image File Execution Options
下有对应的注册表项, 当我们启动程序A
的时候,系统会启动Debugger
子项中的值对应的程序,并把程序A
的路径当作参数传递过去。
以taskmgr.exe
为例,设置如下图:
当taskmgr.exe
启动的时候,系统检测到taskmgr.exe
在Image 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
相关的事件,如果想看到相关事件,需要手动取消过滤。自己验证的时候,一定不要忘了这一点。为了引起大家的重视,我特地把相关设置截图贴到下方!
{% 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 monitor
的Process Tree
功能,可以方便的让我们查找到指定的进程,并进行过滤。Image File Execution Options
注册表项很好很强大。镜像劫持。process explorer
和process monitor
只是sysinternals
工具集中的两个常用的工具。心动了吗?官方下载地址:https://docs.microsoft.com/en-us/sysinternals/downloads/
参考资料
- Image File Execution Options
- 《Windows Sysinternals 实战指南》
[原]排错实战——使用process explorer替换任务管理器的更多相关文章
- Process Explorer(增强任务管理器) V16.05 免费绿色版
软件名称: Process Explorer(增强任务管理器)软件语言: 中文授权方式: 免费软件运行环境: Win7 / Vista / Win2003 / WinXP 软件大小: 1.2MB图片预 ...
- [原]排错实战——通过对比分析sysinternals事件修复程序功能异常
原调试debug排错troubleshootprocess monitorsysinternals 缘起 最近,我们程序的某个功能在一台机器上不正常,但是在另外一台机器上却是正常的.代码是同一份,vs ...
- [原]排错实战——解救加载调试符号失败的IDA
原调试IDA排错troubleshootsymbolspdbsysinternalprocess monitor 缘起 最近想借助IDA逆向一个函数.在windows下,调试器(比如vs, windb ...
- [原]排错实战——解决Tekla通过.tsep安装插件失败的问题
原总结调试排错troubleshootteklaprocess monitorsysinternals 缘起 最近同事使用.tsep安装Tekla插件的时候,Tekla提示该插件已经存在了,需要卸载后 ...
- [原]排错实战——VS清空最近打开的工程记录
原脚本how-toprocess monitorsysinternalsvsvisual studiovs2017vs2019注册表 缘起 vs有一个功能 -- 在起始页会显示最近打开的工程列表,方便 ...
- [原]调试实战——程序CPU占用率飙升,你知道如何快速定位吗?
原调试debugwindbghangprocess explorer 前言 如果我们自己的程序的CPU Usage(CPU占用率)飙升,并且居高不下,很有可能陷入了死循环.你知道怎么快速定位并解决吗? ...
- Windows 增强版任务管理器-Process Explorer
百度百科PROCESS EXPLORER介绍 由Sysinternals开发的Windows系统和应用程序监视工具,目前已并入微软旗下.不仅结合了Filemon(文件监视器)和Regmon(注册表监视 ...
- [原]procexp替换任务管理器
2019-09-14更新:本文已经在新博客重新整理发布,请各位读者移步. process explorer有个功能是替换任务管理器,它是怎么实现的呢??? windows有个注册表项HKEY_LO ...
- Process Explorer常用操作介绍
(未获得作者本人同意,严禁转载) Process Explorer出现的背景 Process Explorer可以看成是一个加强版的任务管理器.在较早的Windows版本中,任务管理器提供的功能是非常 ...
随机推荐
- 《新标准C++程序设计》3.1.4-3.2(C++学习笔记6)
1.类型转换构造函数 (1)定义 只有一个参数,而且不是复制构造函数的构造函数,一般就可以看作是转换构造函数. 当需要的时候,编译系统会自动调用转换构造函数,建立一个无名的临时对象(或临时变量). ( ...
- 第八篇Django分页
Django分页 1.复杂版 data = [] , ): tmp = {"id": i, "name": "alex-{}".format ...
- Vuex基本介绍
1.什么是Vuex Vuex是一个专为vue.js应用程序开发的状态管理模式. 状态管理:data里面的变量都是vue的状态. 2.为什么要用Vuex 当我们构建一个中大型的单页面应用程序时,Vuex ...
- UVA - 1614 Hell on the Markets(奇怪的股市)(贪心)
题意:输入一个长度为n(n<=100000)的序列a,满足1<=ai<=i,要求确定每个数的正负号,使得所有数的总和为0. 分析: 1.若总和为0,则未加符号之前,所有数之和必为偶数 ...
- int *const 与const int *问题
自己一直就不太清楚int *const与const int*之间的差别,总是弄混,今天势必拿一个程序验证一下. 一个指针是有两个属性的,一个是它指向的地方,一个是它指向地方上的内容.两者的差别也在此. ...
- 量化交易回测系统---RQalpha、qstrade学习笔记
一.RQalpha github 地址 https://github.com/ricequant/rqalpha 1.运行test.py文件,显示 No module named 'logbook. ...
- 目标检测评价标准(mAP, 精准度(Precision), 召回率(Recall), 准确率(Accuracy),交除并(IoU))
1. TP , FP , TN , FN定义 TP(True Positive)是正样本预测为正样本的数量,即与Ground truth区域的IoU>=threshold的预测框 FP(Fals ...
- Java基础之反射、注解、代理
反射 笔者对反射的理解就是解剖class文件,来进行一系列操作. Class类 获取Class类实例的三种方式: 类名.class 对象.getClass() static Class forName ...
- POJ - 1631 Bridging signals(最长上升子序列---LIS)
题意:左右各n个端口,已知n组线路,要求切除最少的线路,使剩下的线路各不相交,按照左端口递增的顺序输入. 分析: 1.设左端口为l,右端口为r,因为左端口递增输入,l[i] < l[j](i & ...
- URL&HTTP协议详解
本文来自公开课笔记,主要做知识的记录,谢谢! ·接口测试核心技术--URL&HTTP协议详解. ·URL: 统一资源定位符. 示例: https://ke.qq.com/course/3157 ...