Notepad是windows自带的记事本,Notepad2是一个相当优秀的轻量级文本编辑器。
现在记录一下我自己用Notepad2替代notepad的过程。
大体原理是通过映像劫持实现Notepad2的替换。修改Image File Execution Options键值后,在有notepad.exe运行请求的时候,就欺骗系统转而运行notepad2.exe:
创建如下注册表项:HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options\notepad.exe,如果无法修改,需要先右键取得权限;
在notepad.exe注册表项中,创建名为Debugger的字符串值(REG_SZ);
修改字符串值Debugger的数据为Notepad2.exe的完整路径,最后以 /z参数结尾。
如:"D:\Program Files\Notepad2\Notepad2.exe" /z
或直接创建如下注册表文件,然后导入:
Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options\notepad.exe]
"Debugger"="\"D:\\Program Files\\Notepad2\\Notepad2.exe\" /z"
我自己使用这种方法替换,结果出现了一个问题。
在注册表的这个位置新建一个字串值不能命名为Debugger。右键取得管理员权限依然如此。
后来发现一帖子,也是这种问题。以下为解答。
360安全卫士是有加载了一个名为360SelfProtection.sys的驱动程序。
这个驱动程序负责保护360的产品(防止结束、删除……)其中有一个功能就是禁止写入IFEO的Debugger值。因为这样可以避免病毒用IFEO来禁止杀软启动。
停止运行该驱动可解决问题。
(停止方法,卸载360吧。)
刚好我也安装了360安全卫士,好吧,我依然卸载,果然可以新建Debugger字串值了,OK,问题解决了。