[原]procexp替换任务管理器
2019-09-14更新:本文已经在新博客重新整理发布,请各位读者移步。
process explorer有个功能是替换任务管理器,它是怎么实现的呢???
windows有个注册表项HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options,用来给调试器用的。当指定的程序A启动的时候,系统会用debugger项指定的文件启动A。
以taskmgr.exe为例,如下图
![](https://images2015.cnblogs.com/blog/985127/201702/985127-20170206070531807-293364694.png)
当taskmgr.exe启动的时候会用C:\MY\SYSINTERNALS\PROCEXP.EXE启动之,并且procexp.exe启动的时候,会有一个命令行参数(taskmgr.exe的路径)"C:\WINDOWS\SYSTEM32\TASKMGR.EXE",如下图
![](https://images2015.cnblogs.com/blog/985127/201702/985127-20170206070532151-1611256251.png)
注意:上图中的Path是C:\Users\bcn\AppData\Local\Temp\PROCEXP64.exe,这是procexp会根据系统位数自动启动对应位数的程序。
bonus:
- 具体过程都可以通过procmon.exe来观察。
- 把下列代码保存成taskmgr.reg,导入到注册表即可,注意debugger后面的值要替换成你机器上的路径
WindowsRegistryEditorVersion5.00
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image FileExecutionOptions\taskmgr.exe]
"Debugger"="\"C:\\MY\\SYSINTERNALS\\PROCEXP.EXE\""
欢迎各位小伙伴指出不足,提出建议!感谢关注我的博客:)
github博客:https://bianchengnan.github.io
版权所有,转载请保留原文链接:)