注册表键的访问权限
基于注册表在Windows操作系统中的重要地位和所起的特殊作用,非常有必要对其进行一些安全性方面的设置。虽然可以通过设置用户权限来限制对注册表中敏感数据的访问,但该由该用户所使用的应用程序却很有可能必须访问此数据。这就需要能在程序中对注册表键的安全性级别进行修改。如在使用RegOpenKeyEx()打开某个键时,可用WRITE_OWNER访问权限打开,并将返回的指向注册表的句柄传递给对RegSetKeySecurity()的调用,以此取得对键的所有权:
RegOpenKeyEx(HKEY_CLASSES_ROOT, “TestValue”, 0, WRITE_OWNER, &hKey); RegSetKeySecurity(hKey, OWNER_SECURITY_INFORMATION, &Security); |
其中,Security是SECURITY_DESCRIPTOR结构的一个对象。除上面使用的WRITE_OWNER之外,对注册表键的访问权限还有DELETE、READ_CONTROL、WRITE_DAC等标准访问权限以及注册表所专有的访问权限KEY_CREATE_LINK、KEY_CREATE_SUB_KEY、KEY_EXECUTE、KEY_ENUMERATE_SUB_KEYS、KEY_NOTIFY、KEY_QUERY_VALUE、KEY_SETVALUE、KEY_ALL_ACCESS、KEY_READ和KEY_WRITE等。
小结 在应用程序中使用初始化文件和注册表将可以完成许多特殊的功能,通常应用较多的是用来记录和获取程序在上一次运行的状态配置,使程序具有“记忆”功能。而有些黑客软件也同样是通过向初始化文件和注册表写入某些特定信息而使其具有开机运行的功能。
查看本文来源