zoukankan      html  css  js  c++  java
  • Image File Execution Options(2)

    跳转转到键值
    HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindows NTCurrentVersionImage File Execution Options
    在里面添加一个新键值,使用一个你想欺骗的执行 文件的名字,好比notepad.exe 

    注意到在‘Image File Execution Options’键值中已经有一些条目了,这些应用程序和填充大概是一些为了兼容老版本WINDOWS程序的东东。 现在给NOTEPAD.EXE键值加入一个新的串值类型的值项,名为‘Debugger’,并且键入其他执行程序的路径作为它的值。
    所有的东西应 该看起来这样:
    Image File Execution Options
    |
    |__NOTEPAD.EXE
          Debugger - REG_SZ - C:WINDOWSSYSTEM32CALC.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 ", argc) ;
             count = 0 ;
             while( count < argc)
             {
                     printf( "Argument %d: %s ", 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: est.exe
    Argument 1: C:WINDOWSsystem32 otepad.exe
    ----------------------------------------------------------------------
    正 如你所见的,原来程序的路径作为参数被传到了test.exe。
    现在在你的根目录创建一个README.TXT文件,并单击它。
    如果 NOTEPAD.EXE是你打开.txt文件默认程序,text.exe就会出现,显示如下的信息: 
    ----------------------------------------------------------------------
    Number of arguments: 3
    Argument 0: c: est.exe
    Argument 1: C:WINDOWSsystem32NOTEPAD.EXE
    Argument 2: C: eadme.txt
    ----------------------------------------------------------------------
    现 在你可以看见传给NOTEPAD.EXE的参数也出现,作为传给test.exe的参数。
    注册表的这个项主要是用来调试程序用的,对一般用户意义不大。默认是只有管理员和local system有权读写,一般user只读。Windows NT系统在执行一个从命令行调用的可执行文件运行请求时,首先会检查这是否是一个可执行文件,如果是,又是什么格式的,然后就会检查是否存在:


    [HKLMSOFTWAREMicrosoftWindows NTCurrentVersionImage File Execution OptionsImageName]
    如果存在,首先会试图读取这个键值:
    [HKLMSOFTWAREMicrosoftWindows NTCurrentVersionImage File Execution OptionsImageName]
    "Debugger"="debug_prog"
    如果存在,就执行“debug_prog ImageName”。
    【注册表的这个项本来是来调试程序的,而今却被好多病毒利用,来关联自己,使得在运行其他程 序的时候自己被执行,同时也可以让它代替杀软运行,而使得真正的杀软不能运行,但这个却也是很好解决的,当发现自己杀软运行一下没反应的时候就要注意了, 很可能刚才你已经运行了一下病毒,如果最快的解决方法是把杀软的运行程序改一下名字,再运行,并到注册表的这里把被替换的项删去】
  • 相关阅读:
    四则运算的改进
    小学四则运算
    基于控制台的小学四则运算
    软件工程实践项目课程的自我目标
    课程总结
    个人作业 软件案例分析
    第一次技术博客
    结对第二次作业
    软工2
    软件工程第一次作业
  • 原文地址:https://www.cnblogs.com/predator-wang/p/4117725.html
Copyright © 2011-2022 走看看