如题: 
主要是实现用户的克隆,通过注册表操作可实现。 
先打开regedt32,HKEY_LOCAL_MACHINE\SAM\SAM,把当前用户提权到system, 
然后打开regedit32 HKEY_LOCAL_MACHINE\SAM\SAM,就可见用户了, 
但,怎么编程实现呢,google了好久没发现方法,期待高手解决。 
 

解决方案 »

  1.   

    要提权到System,得用一些非常手段
      

  2.   

    LPCTSTR lpszKeyName = _T("MACHINE\\SAM\\SAM");// Administrators组
    CSid sidAdmins(_T("Administrators"));#include <atlbase.h>
    #include <atlsecurity.h> // 获取注册表键值安全描述符
    CSecurityDesc secDesc;
    bool bRet = AtlGetSecurityDescriptor(lpszKeyName, SE_REGISTRY_KEY, &secDesc );CDacl daclAdminAll;
    secDesc.GetDacl(&daclAdminAll);
    // 添加All权限
    bRet = daclAdminAll.AddAllowedAce(sidAdmins, KEY_ALL_ACCESS, INHERITED_ACE);
    bRet = AtlSetDacl(lpszKeyName, SE_REGISTRY_KEY, daclAdminAll);// 可以操作了// 恢复权限
    CDacl orgDacl;
    secDesc.GetDacl(&orgDacl);
    bRet = AtlSetDacl(lpszKeyName, SE_REGISTRY_KEY, orgDacl);
      

  3.   

    #include <atlbase.h>
    #include <atlsecurity.h> LPCTSTR lpszKeyName = _T("MACHINE\\SAM\\SAM");// Administrators组
    CSid sidAdmins(_T("Administrators"));
    // 获取注册表键值安全描述符
    CSecurityDesc secDesc;
    bool bRet = AtlGetSecurityDescriptor(lpszKeyName, SE_REGISTRY_KEY, &secDesc );CDacl daclAdminAll;
    secDesc.GetDacl(&daclAdminAll);
    // 添加All权限
    bRet = daclAdminAll.AddAllowedAce(sidAdmins, KEY_ALL_ACCESS, INHERITED_ACE);
    bRet = AtlSetDacl(lpszKeyName, SE_REGISTRY_KEY, daclAdminAll);// 可以操作了// 恢复权限
    CDacl orgDacl;
    secDesc.GetDacl(&orgDacl);
    bRet = AtlSetDacl(lpszKeyName, SE_REGISTRY_KEY, orgDacl);
      

  4.   

    WaistCoat17 :有否完整点的代码?
    谢谢。
      

  5.   

    怎么更改成纯c下用?好像纯c下没有CSid, CDacl类型阿
      

  6.   


    那个是VC7的ATL自带的类,在atlsecurity.h中如果你要用API的话自己从里面扣代码吧,都是些简单的类,看下就清楚了
      

  7.   

    本身有Administrator 直接建立一个服务就可以获得LOCALSYSTEM权限 还捣鼓什么注册表 不是绕自己吗?
      

  8.   

    不是用类,引用一个名称空间using System.Runtime.InteropServices,然后就能从Win32 DLL中导入API使用比如[DllImport("User32.dll")]  public static extern int MessageBox(int h, string m, string c, int type);
      

  9.   

    Win32 DLL中导入API使用,怎么用呀,搞不清楚呀,能不能再具体点呢!
      

  10.   


    这段代码在Win7下用不了啊。
    小弟正在找Win7下删除注册表下U盘使用记录的代码,操作错误都是拒绝访问使用OpenProcessTokey()这个函数的方法下无效,跪求解决方法!