通过映像劫持实现Notepad2替换记事本

通过映像劫持实现Notepad2替换记事本

文章分类: 办公软件知识与技巧 - 发布时间: 2011/5/14

Notepad2是一个相当优秀的轻量级文本编辑器,开源软件,具有很多特色功能,如代码高亮、编码转换、行号显示、多步Ctrl+Z等,是不可多得的记事本替代方案。

开始使用Notepad2后,我是在Total Commander里设置F3和F4来调用,但在TC之外,就不是太好操作了。直接替换notepad.exe的方式不太喜欢,而且配置文件保存在C盘,不利于便携,于是我就手动更改txt、bat、nsi、ini、reg等格式的文件关联,但总归不方便。

后来无意间发现官方的替代默认记事本的方法,才是豁然开朗、相见恨晚,它是用Image File Execution Options的方式来实现替换,Image File Execution Options就是映像劫持技术,通过此种方式替换记事本,非常地绿色环保。

Image File Execution Options是CreateProcess函数中的一个功能,即在可执行程序运行时,Windows会先检测对应IFEO中的Debugger值,如果存在这个参数的话,就运行这个参数中指定的程序,好像是程序调试之用,具体可以见这里

Notepad2

大体原理是这样的,修改Image File Execution Options键值后,在有notepad.exe运行请求的时候,就欺骗系统转而运行notepad2.exe:

  1. 创建如下注册表项:HKLMSOFTWAREMicrosoftWindows NTCurrentVersionImage File Execution Optionsnotepad.exe,如果无法修改,需要先右键取得权限;
  2. 在notepad.exe注册表项中,创建名为Debugger的字符串值(REG_SZ);
  3. 修改字符串值Debugger的数据为Notepad2.exe的完整路径,最后以 /z参数结尾。
    如:"D:Program FilesNotepad2Notepad2.exe" /z

Notepad2

或直接创建如下注册表文件,然后导入:

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindows NTCurrentVersionImage File Execution Optionsnotepad.exe]
"Debugger"=""D:Program FilesNotepad2Notepad2.exe" /z"

相关的软件或文章

本文标签

/ / / / / / / /

问题反馈

本站评论模块已暂停使用,如果您对本文或本文涉及的软件有任何建议或反馈,烦请发送邮件至 admin@portablesoft.org 联系站长黯然过客。