首页 > 代码库 > 利用映像劫持替换记事本

利用映像劫持替换记事本

Image File Execution Options就是映像劫持技术,通过此种方式替换记事本,非常地绿色环保。

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

原理:通过修改 Image File Execution Options 键值后,在有 notepad.exe 运行请求的时候,欺骗系统运行指定的程序 notepad2.exe。

手工方法:

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

 注册表方法:

1 Windows Registry Editor Version 5.00
2 
3 [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options\notepad.exe]
4 "Debugger"="\"D:\\Program Files\\Notepad2\\Notepad2.exe\" /z"

批处理方法:

 1 @echo off
 2 cd /d "%~dp0"
 3 echo.
 4 echo.
 5 pause
 6 cd /d "%~dp0"
 7 reg add "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options\notepad.exe" /v "Debugger" /d "\"%~dp0Notepad2.exe\" /z" /f
 8 cls
 9 echo.
10 echo.
11 pause

批处理升级版:

此版本在原版的基础上加入了管理员权限测试、劫持检测、反劫持。

 1 @echo off
 2 set regkey=HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options\notepad.exe
 3 reg add "%regkey%" /v "test" /f 1>nul 2>nul && (reg delete "%regkey%" /v "test" /f) || (echo.&echo.&echo 缺少权限,请右键点击此脚本,选择“以管理员身份运行”。&pause>nul&exit)
 4 
 5 :begin
 6 cls
 7 for /L %%i in (1,1,5) do echo.
 8 set num=0
 9 reg query "%regkey%" /v "Debugger" 1>nul 2>nul && goto undo || goto done
10 
11 :done
12 set /P num=记事本[未劫持],是否开启劫持?( 1--是,其他--否 ) :
13 echo %num%
14 if %num% equ 1 reg add "%regkey%" /v "Debugger" /d "\"%~dp0Notepad2.exe\" /z" /f
15 goto begin
16 
17 :undo
18 set /P num=记事本[已劫持],是否取消劫持?( 1--是,其他--否 ) :
19 echo %num%
20 if %num% equ 1 reg delete "%regkey%" /f
21 goto begin

inf 方法:

安装版:

 1 [Version]
 2 
 3 Signature="$WINDOWS NT$"
 4 
 5 [DefaultInstall]
 6 AddReg=an
 7 [an]
 8 HKLM,"SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options\notepad.exe","Debugger",0,"""%01%\Notepad2.exe"" /z"
 9 HKCR,"*\shell\NotePad2",,,"用 &NotePad2 编辑"
10 HKCR,"*\shell\NotePad2\command",,,"%01%\Notepad2.exe ""%1"""

反安装版:

[Version]

Signature="$WINDOWS NT$"

[DefaultInstall]
delReg=hf
[hf]
HKLM,"SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options\notepad.exe"
HKCR,"*\shell\NotePad2"