2019-09-14更新:本文已经在新博客重新整理发布,请各位读者移步。

process explorer有个功能是替换任务管理器,它是怎么实现的呢???

 
windows有个注册表项HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options,用来给调试器用的。当指定的程序A启动的时候,系统会用debugger项指定的文件启动A。
以taskmgr.exe为例,如下图
当taskmgr.exe启动的时候会用C:\MY\SYSINTERNALS\PROCEXP.EXE启动之,并且procexp.exe启动的时候,会有一个命令行参数(taskmgr.exe的路径)"C:\WINDOWS\SYSTEM32\TASKMGR.EXE",如下图

 注意:上图中的Path是C:\Users\bcn\AppData\Local\Temp\PROCEXP64.exe,这是procexp会根据系统位数自动启动对应位数的程序。
 
bonus:
- 具体过程都可以通过procmon.exe来观察。
- 把下列代码保存成taskmgr.reg,导入到注册表即可,注意debugger后面的值要替换成你机器上的路径
  1. WindowsRegistryEditorVersion5.00
  2. [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image FileExecutionOptions\taskmgr.exe]
  3. "Debugger"="\"C:\\MY\\SYSINTERNALS\\PROCEXP.EXE\""
 

[原]procexp替换任务管理器的更多相关文章

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

    原Aha总结注册表process explorersysinternalsprocess monitor 前言 一般,我们会使用任务管理器查看系统中有哪些进程正在运行,强制杀掉某个进程.可是系统自带的 ...

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

    原调试debugwindbghangprocess explorer 前言 如果我们自己的程序的CPU Usage(CPU占用率)飙升,并且居高不下,很有可能陷入了死循环.你知道怎么快速定位并解决吗? ...

  3. 转载:shell脚本之sed使用----替换、变量、转义字符

    sed替换的基本语法为:----s后面跟的是分隔符,原字符串可使用.*这种正则表达式进行整行替换 代码如下: sed 's/原字符串/替换字符串/' 单引号里面,s表示替换,三根斜线中间是替换的样式, ...

  4. mysql replace 替换函数

    UPDATE ecm_goods SET description = replace(description,'原字符串', '替换为') WHERE 条件;

  5. sed 字符串替换

    1. sed替换的基本语法为: sed 's/原字符串/替换字符串/' 单引号里面,s表示替换,三根斜线中间是替换的样式,特殊字符需要使用反斜线”\”进行转义. 2. 单引号” ‘ ’”是没有办法用反 ...

  6. sed替换文件中的字符串

    sed -i 's/原字符串/替换字符串/g' filename

  7. 在SQL SERVER中批量替换字符串

    update [表名] set [字段名]=replace([字段名],'被替换原内容','替换后内容')

  8. Linux中使用sed命令替换字符串小结

    sed替换的基本语法为: sed 's/原字符串/替换字符串/' 单引号里面,s表示替换,三根斜线中间是替换的样式,特殊字符需要使用反斜线”\”进行转义,但是单引号”‘”是没有办法用反斜线”\”转义的 ...

  9. Linux sed 命令字符串替换使用方法详解

    1. sed替换的基本语法 sed 's/原字符串/替换字符串/' 单引号里面,s表示替换,三根斜线中间是替换的样式,特殊字符需要使用反斜线”\”进行转义.2. 单引号” ‘ ’”是没有办法用反斜线” ...

随机推荐

  1. Arduino -- functions

    For controlling the Arduino board and performing computations. Digital I/O digitalRead() digitalWrit ...

  2. IntelliJ IDEA ULTIMATE 2019.3 破解注册详细教程【亲测有效,持续更新~】

    ​ 申明:本教程 IntelliJ IDEA 破解补丁.激活码均收集于网络,请勿商用,仅供个人学习使用,如有侵权,请联系作者删除. 注意 本教程适用于 IntelliJ IDEA 所有版本,请放心食用 ...

  3. 剑指offer_1.18_Day_2

    怠惰怠惰,好好练练了要 二维数组中查找 在一个二维数组中(每个一维数组的长度相同),每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序.请完成一个函数,输入这样的一个二维数组和一个 ...

  4. git修改已经push的commit message

    git中修改上一次提交的commit的message git commit --amend -m "你的新的注释" git push -f 多个commit https://www ...

  5. Json字符串转Java对象和List集合

    对象POJO和JSON互转 public class JsonUtil { /** * JSON 转 POJO */ public static <T> T getObject(Strin ...

  6. Maven:Eclipse导入从SVN上检出的Maven多模块工程

    大致步骤: 1.从SVN中检出多模块项目,名称随意(Eclipse中可以在[Window ==>>Show View==>>Other==>>SVN==>&g ...

  7. Q7:Reverse Integer

    7. Reverse Integer 官方的链接:7. Reverse Integer Description : Given a 32-bit signed integer, reverse dig ...

  8. mysql5.7.21源码安装

    1.下载安装包 MySQL 官方下载地址:https://dev.mysql.com/downloads/mysql/  MySQL 5.7官方安装文档:https://dev.mysql.com/d ...

  9. UVA 11468 AC 自动机

    首先我们应该是枚举 L个位置上的每个字符来得到最终概率 然后AC自动机的作用就是为了判断你枚举的地方是否对应了单词节点,如果对应了,就肯定要不得 #include <iostream> # ...

  10. (转)绝对路径${pageContext.request.contextPath}用法及其与web.xml中Servlet的url-pattern匹配过程

    以系统的一个“添加商品”的功能为例加以说明,系统页面为add.jsp,如图一所示: 图一  添加商品界面 系统的代码目录结构及add.jsp代码如图二所示: 图二   系统的代码目录结构及add.js ...