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

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

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"

• 本文作者: 黯然过客

• 文章分类: 知识技巧

• 阅读次数: 已有 39304 次浏览

• 最后更新: 2020年1月27日 16:20:29

• 文章链接: https://www.portablesoft.org/notepad2-replacement/ (转载请保留出处及文章链接)

「精品绿色便携软件」微信公众号

相关软件或文章

广告宣传

有 114 条留言。

  1. liberty
    22:41 2012/08/15

    映像劫持后可以使用,但只要电脑一用网银盾就会反弹成自带的记事本,不知道是网银程序的问题,还是360在保护的问题,请求高手解答

  2. bxrjmajin
    04:25 2012/09/05

    我的系统是XP SP3 查了下,那个注册表编辑器是5.1版本的,不知道创建那个替换系统记事本的.reg文件会出问题吗?有必要将Windows Registry Editor Version 5.00改成Windows Registry Editor Version 5.1吗?菜鸟不敢乱动。。。等回复

  3. 直接用右键菜单编辑器添加右键菜单,所有文件都在右键添加一个使用notepad2打开选项

  4. special-feng
    05:23 2013/02/18

    reg add “HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindows NTCurrentVersionImage File Execution Optionsnotepad.exe” /v “Debugger” /t REG_SZ /d “程序路径Notepad2.exe /z” 可用

  5. cooh
    17:31 2013/03/08

    我用的是note++pe替换系统文件,自动打开的

  6. lw
    10:10 2013/03/16

    请问如何恢复为原配的呢?

  7. 没有用啊站长

  8. 只能打开一个啊?

  9. 已经爱上sublimetext

  10. enver
    16:12 2013/06/17

    写了段劫持记事本的批处理脚本,放到Notepad2目录下运行即可。==================================@echo offset regkey=HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindows NTCurrentVersionImage File Execution Optionsnotepad.exereg add “%regkey%” /v “test” /f 1>nul 2>nul && (reg delete “%regkey%” /v “test” /f) || (echo.&echo.&echo 缺少权限,请右键点击此脚本,选择“以管理员身份运行”。&pause>nul&exit):beginclsfor /L %%i in (1,1,5) do echo.set num=0reg query “%regkey%” /v “Debugger” 1>nul 2>nul && goto undo || goto done:doneset /P num=记事本[未劫持],是否开启劫持?( 1–是,其他–否 ) :echo %num%if %num% equ 1 reg add “%regkey%” /v “Debugger” /d “”%~dp0Notepad2.exe” /z” /fgoto begin:undoset /P num=记事本[已劫持],是否取消劫持?( 1–是,其他–否 ) :echo %num%if %num% equ 1 reg delete “%regkey%” /fgoto begin==================================

  11. hl
    21:54 2013/07/10

    win7下试了好几次没成功 , 猛然醒悟, 改下txt关联不久行啦 ,哈哈

    • 修改txt关联也是可以的,但仅仅是针对txt文件。。不成功一般是因为杀毒软件等的拦截,毕竟映像劫持一般被认为是危险操作。。

  12. K
    23:33 2013/11/02

    现在的安全软件,检测到映像劫持就会直接处理的,根本不管是否恶意

  13. Laycher
    13:46 2014/01/16

    能新建,也能插入值,但是不能重名键名,提示:注册表编辑器无法重命名 重命名值时出现错误,没有运行360等安全软件。进程里面也没有。奇怪了。权限都赋予了。求指教。

  14. 不行啊改了之后运行用文本文件都是显示“请求的操作需要提升” 无法打开 有人也是这种情况吗怎么破

  15. 前来请教
    19:58 2015/08/04

    真遗憾现在才看到你的回复,如果你还能看到我给你发的这条回复的话,方便说说具体怎么用wscript修正吗?

留言

*

(清除已保存的数据?)