关于对win2000的注册表修改---50分

pzyny 2000-08-31 10:08:00
如果我用users级别的用户登录win2000,那么我是不允许用regedit对注册表进行修改的,即只能open而不能write,现在如果用vc编一个程序,我想用一些注册表的api函数直接对注册表进行修改,要怎么才能做到。麻烦说的详细一点,因我现在有一个大致思路,即先用OpenProcessHandle抓到进程的access token,再GetTokenInformation抓到token的
SID(即TokenOwner),然后用此SID创建一个有write权限的ACE并加入相应的DACL,在把此
DACL用RegSetKeySecurity设入要修改的key中(关键是怎么抓到key的write_owner权
限?),即可直接用reg的api函数对此key进行修改了.不过这只是我的大致想法,实际实施起来有一些细节不知如何处理,而且不知这样的做法到底对不对,请高手给予指教(最好能写一个详细的流程出来),或者哪位有其他的办法,也请能详细的写出来,如果可实际解决问题,或对我的思路有帮助,决不吝啬加分:P 谢谢!!!
...全文
147 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
pzyny 2000-09-02
  • 打赏
  • 举报
回复
pbi你好,我看了你的回复,试了一下,可还是不行,因为使用logonUser函数需要的权限在用user登录时根本就抓不到,所以这个办法也解决不了问题。希望继续帮忙,谢谢!
pbi 2000-09-01
  • 打赏
  • 举报
回复
但是如果你的进程没有必要的权限,怎么能使用RegSetKeySecurity改变key的DACL呢?其实你用regedt32程序改变key的访问权限设置就可以了,当然运行regedt32时需要用有设置权限的用户登录。如果你想用程序实现,可以用LogonUser函数,获取一个代表有访问权限的用户的token,然后ImpersonateLoggedOnUser,就可以访问需要的资源了。
luxes 2000-09-01
  • 打赏
  • 举报
回复
attention
pzyny 2000-09-01
  • 打赏
  • 举报
回复
sorry,上面的OpenProcessHandle应为OpenProcessToken.
vcgreener 2000-08-31
  • 打赏
  • 举报
回复
关注

16,466

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Web++
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

试试用AI创作助手写篇文章吧