实例讲解映像劫持的使用技巧——通过映像劫持实现Notepad2替换记事本

所谓“映像劫持”,就是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替换记事本

你可能感兴趣的:(实例讲解映像劫持的使用技巧——通过映像劫持实现Notepad2替换记事本)