请问如何锁定注册表的一个键,使它不能被其它应用程序删除?

解决方案 »

  1.   

    有种办法,可以在注册表中创建“隐藏键”,不过只能在NT/2k/xp中,网上有源码的。
      

  2.   

    应该锁不了,除非你用的是普通用户(user),而不是管理员(administrator)
      

  3.   

    为什么cnnic的通用网址的主键删不掉?
      

  4.   

    记得当年我玩英雄无敌III的时候,发现他所使用的注册表键打不开,呵呵。。打开的时候就说读取注册表出错但是好像可以读取???
      

  5.   

    hook以下api
    regclosekey
    regcreatekey
    regcreatekeyex
    regdeletekey
    regdeletevalue
    regenumvalue
    regnotifychangekeyvalue
    regopenkey
    regopenkeyex
    regqueryvalueex
    regsetvalueex
      

  6.   

    同意 year2000bug(江南) 
    HOOK
    RegDeleteKey
    RegDeleteKeyValue就可以了当这些外来程序调用这些函数删你的注册表项或值时,取消他的操作,建议连regenumvalue也HOOK,这样他就看不到你的注册表项。
      

  7.   

    year2000bug(江南) :不好意思,我不知道
    HOOK
    RegDeleteKey
    RegDeleteKeyValue
    是怎么用的,请写详细些,多谢了!
    还有,这样作之后是不是对注册表键的所有删除操作都被取消了?
      

  8.   

    不用锁定所有键,当其它程序调用这些函数去删除你的注册表项的时候,这些函数的参数中就含有你的注册表项的“路径”这样,你HOOK这个函数,在你的函数中去判断有没有你的这些东西,有的话就返回,,没有就调用真正的原函数数,,手动改注册表也是一样,,用regedit手动删改,就是regedit调用这些函数来实现的,,一样的
      

  9.   

    API Hook是最好的
    但较难实现
    NT下Hook Int2Eh服务更好,但没技术资料