zoukankan      html  css  js  c++  java
  • [原]排错实战——使用process explorer替换任务管理器

    前言

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

    功能介绍

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

     

    replace task manager
    replace task manager

     

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

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

    实现原理

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

    taskmgr.exe为例,设置如下图:
    image file excution options taskmgr

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

    验证

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


     

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

     

    cancel-filter-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_MACHINESOFTWAREMicrosoftWindows NTCurrentVersionImage File Execution Options	askmgr.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/

    参考资料

  • 相关阅读:
    微信公众号,图片预览功能 有单个图片,
    MUI
    MUI学习01-顶部导航栏
    php验证18位身份证,准到必须输入正确的身份证号,
    微信sdk 图片上传 两种方法 上传一张显示一张 并附带微信图片放大功能和删除功能
    jQuery实现限制input框 textarea文本框输入字符数量的方法
    js jq 手机号实现(344) 附带删除功能 jq 实现银行卡没四个数加一个空格 附带删除功能
    山东省2016acm省赛
    East Central North America Region 2015
    North America Qualifier (2015)
  • 原文地址:https://www.cnblogs.com/bianchengnan/p/12242480.html
Copyright © 2011-2022 走看看