注册表 Image File Execution Options 项的作用及使用办法

  Image File Execution Options
  跳转到键值
  HKEY_LOCAL_MACHINE/SOFTWARE/Microsoft/Windows NT/CurrentVersion/Image File Execution Options
  在里面添加一个新键值,使用一个你想欺骗的执行文件的名字,好比notepad.exe
  
  注意到在‘Image File Execution Options’键值中已经有一些条目了,这些应用程序和填充大概是一些为了兼容老版本WINDOWS程序的东东。 现在给NOTEPAD.EXE键值加入一个新的串值类型的值项,名为‘Debugger’,并且键入其他执行程序的路径作为它的值。
  所有的东西应该看起来这样:
  Image File Execution Options
  |
  |__NOTEPAD.EXE
   Debugger - REG_SZ - C:/WINDOWS/SYSTEM32/CALC.EXE
  一旦做好了,在NOTEPAD图标上单击(或是txt文件),CALC.EXE被代替执行
  这儿有一个简单的命令行程序, TEST.C, 它可以显示执行时使用的参数。
  ----------------------------------------------------------------------
  #include "stdio.h"
  #include "conio.h"
  int main( int argc, char **argv)
  {
   int count ;
   printf( "Number of arguments: %d/n", argc) ;
   count = 0 ;
   while( count < argc)
   {
   printf( "Argument %d: %s/n", count, argv[ count]) ;
   count++ ;
   }
   while( !kbhit()) ;
   return 0 ;
  }
  ----------------------------------------------------------------------
  编译它并将test.exe放在你的根目录,C:/TEST.EXE。现在到注册表的NOTEPAD.EXE键值,修改'Debuuger'让它指向 C:/TEST.EXE
  在NOTEPAD图标上单击,看有TEST.EXE的输出结果
  ----------------------------------------------------------------------
  Number of arguments: 2
  Argument 0: c:/test.exe
  Argument 1: C:/WINDOWS/system32/notepad.exe
  ----------------------------------------------------------------------
  正如你所见的,原来程序的路径作为参数被传到了test.exe。
  现在在你的根目录创建一个README.TXT文件,并单击它。
  如果NOTEPAD.EXE是你打开.txt文件默认程序,text.exe就会出现,显示如下的信息:
  ----------------------------------------------------------------------
  Number of arguments: 3
  Argument 0: c:/test.exe
  Argument 1: C:/WINDOWS/system32/NOTEPAD.EXE
  Argument 2: C:/readme.txt
  ----------------------------------------------------------------------
  现在你可以看见传给NOTEPAD.EXE的参数也出现,作为传给test.exe的参数。
  注册表的这个项主要是用来调试程序用的,对一般用户意义不大。默认是只有管理员和local system有权读写,一般user只读。Windows NT系统在执行一个从命令行调用的可执行文件运行请求时,首先会检查这是否是一个可执行文件,如果是,又是什么格式的,然后就会检查是否存在:
  [HKLM/SOFTWARE/Microsoft/Windows NT/CurrentVersion/Image File Execution Options/ImageName]
  如果存在,首先会试图读取这个键值:
  [HKLM/SOFTWARE/Microsoft/Windows NT/CurrentVersion/Image File Execution Options/ImageName]
  "Debugger"="debug_prog"
  如果存在,就执行“debug_prog ImageName”。
  【注册表的这个项本来是来调试程序的,而今却被好多病毒利用,来关联自己,使得在运行其他程序的时候自己被执行,同时也可以让它代替杀软运行,而使得 真正的杀软不能运行,但这个却也是很好解决的,当发现自己杀软运行一下没反应的时候就要注意了,很可能刚才你已经运行了一下病毒,如果最快的解决方法是把 杀软的运行程序改一下名字,再运行,并到注册表的这里把被替换的项删去】

 

原文链接: http://hi.baidu.com/391616001/blog/item/dcdd0ed7451972d6a044df48.html

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值