| 首页 | 技术文章 | 软件下载 | 博客 | 论坛 | 精品教程 | 黑客动画 | 视频资源 | 在线服务 | 黑客游戏 | 

您现在的位置: 中国X黑客小组 >> 技术文章 >> 编程技术 >> 黑客编程 >> 文章正文 用户登录 新用户注册
  API实现了regedt32修改注册表权限         ★★★ 【字体:
API实现了regedt32修改注册表权限
作者:未知    文章来源:CnXHacker.Net    点击数:    更新时间:2005-2-21    

#include <Windows.h>
#include <Aclapi.h>
#pragma comment (lib,"Advapi32.lib")

void main()
{
    DWORD dwRet;
    LPSTR SamName = "MACHINE\\SAM\\SAM";
    PSECURITY_DESCRIPTOR pSD = NULL;
    PACL pOldDacl = NULL;
    PACL pNewDacl = NULL;
    EXPLICIT_ACCESS ea;
    HKEY hKey = NULL;

    // 获取SAM主键的DACL
    dwRet = GetNamedSecurityInfo(SamName, SE_REGISTRY_KEY, DACL_SECURITY_INFORMATION,
                NULL, NULL, &pOldDacl, NULL, &pSD);
    if (dwRet != ERROR_SUCCESS)
    {
        printf("GetNamedSecurityInfo Error: %d\n", dwRet);
        goto FreeAndExit;
    }

    // 创建一个ACE,允许Everyone完全控制对象,并允许子对象继承此权限
    ZeroMemory(&ea, sizeof(EXPLICIT_ACCESS));
    BuildExplicitAccessWithName(&ea, "Everyone", KEY_ALL_ACCESS, SET_ACCESS,
        SUB_CONTAINERS_AND_OBJECTS_INHERIT);

    // 将新的ACE加入DACL
    dwRet = SetEntriesInAcl(1, &ea, pOldDacl, &pNewDacl);
    if (dwRet != ERROR_SUCCESS)
    {
        printf("SetEntriesInAcl Error: %d\n", dwRet);
        goto FreeAndExit;
    }

    // 更新SAM主键的DACL
    dwRet = SetNamedSecurityInfo(SamName, SE_REGISTRY_KEY, DACL_SECURITY_INFORMATION,
                NULL, NULL, pNewDacl, NULL);
    if (dwRet != ERROR_SUCCESS)
    {
        printf("SetNamedSecurityInfo Error: %d\n", dwRet);
        goto FreeAndExit;
    }

    // 打开SAM的子键
    dwRet = RegOpenKeyEx(HKEY_LOCAL_MACHINE, "SAM\\SAM\\Domains\\Account\\Users\\000001F4",
                0, KEY_ALL_ACCESS, &hKey);
    if (dwRet != ERROR_SUCCESS)
    {
        printf("RegOpenKeyEx Error: %d\n", dwRet);
        goto FreeAndExit;
    }

    printf("Open SAM Subkey Successfully.\n");

FreeAndExit:
    if (hKey) RegCloseKey(hKey);
    if (pNewDacl) LocalFree(pNewDacl);
    // 还原SAM主键的DACL
    if (pOldDacl) SetNamedSecurityInfo(SamName, SE_REGISTRY_KEY, DACL_SECURITY_INFORMATION,
                        NULL, NULL, pOldDacl, NULL);
    if (pSD) LocalFree(pSD);
    return;
}

文章录入:IceRiver    责任编辑:IceRiver 
  • 上一篇文章:

  • 下一篇文章:
  • 发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口
    最新热点 最新推荐 相关文章
    Epic Games Unreal有多个远程
    Safari在处理Java Applet的下
    通过MSN传播的IRCBot msnmsg
    Google Apps对决Office 与微
    apphelp - apphelp.dll - DL
    采用mod_ssl让Apache更加安全
    wmiapsrv.exe - wmiapsrv - 
    绕开Captcha 新木马可自动创
    microsoft.visualstudio.too
    经典好文 专家解读APR病毒(
      网友评论:(只显示最新5条。评论内容只代表网友观点,与本站立场无关!)
    Powered by ICE RIVER - STUDIO
    » CnXHacker.CoM   © CopyRight 2002-2006, CnXHacker.CoM™, Inc. All Rights Reserved.