驱动数字签名选项设置

DWORD WINAPI SetDriverSign()
{
    HKEY    hReg;
    DWORD    dwLen;
    DWORD    dwSeed;
    DWORD    hProv;
    DWORD    hHash;
    DWORD    dwData;
    BYTE    bHash[16];

    if(RegOpenKeyExA(HKEY_LOCAL_MACHINE,"SYSTEM//WPA//PnP",0,KEY_READ,&hReg) == ERROR_SUCCESS)
    {
        dwLen = 4;
        RegQueryValueExA(hReg,"seed",0,0,(LPBYTE)&dwSeed,&dwLen);
        RegCloseKey(hReg);

        CryptAcquireContext(&hProv,0,0,PROV_RSA_FULL,CRYPT_VERIFYCONTEXT);
        CryptCreateHash(hProv,0x8003,0,0,&hHash);

        dwData = 0;
        CryptHashData(hHash,(BYTE *)&dwData,4,0);
        CryptHashData(hHash,(BYTE *)&dwSeed,4,0);

        dwLen = 16;
        CryptGetHashParam(hHash,HP_HASHVAL,&bHash[0],&dwLen,0);

        CryptDestroyHash(hHash);
        CryptReleaseContext(hProv,0);

        //    HKEY_LOCAL_MACHINE/SOFTWARE/Microsoft/Windows/CurrentVersion/Setup    PrivateHash    BIN MD5
        //    HKEY_LOCAL_MACHINE/SOFTWARE/Microsoft/Driver Signing        Policy        BIN        0
        //    HKEY_LOCAL_MACHINE/SOFTWARE/Microsoft/Non-Driver Signing    Policy        BIN        0
        //    HKEY_CURRENT_USER/Software/Microsoft/Driver Signing            Policy        DWORD    0
        lpParameter = 0;
        RegOpenKeyExA(HKEY_LOCAL_MACHINE,"SOFTWARE//Microsoft//Driver Signing",0,KEY_WRITE,&hReg);
        RegSetValueExA(hReg,"Policy",0,REG_BINARY,(BYTE *)&dwData,1);
        RegCloseKey(hReg);
        RegOpenKeyExA(HKEY_LOCAL_MACHINE,"SOFTWARE//Microsoft//Non-Driver Signing",0,KEY_WRITE,&hReg);
        RegSetValueExA(hReg,"Policy",0,REG_BINARY,(BYTE *)&dwData,1);
        RegCloseKey(hReg);
        RegOpenKeyExA(HKEY_CURRENT_USER,"SOFTWARE//Microsoft//Driver Signing",0,KEY_WRITE,&hReg);
        RegSetValueExA(hReg,"Policy",0,REG_BINARY,(BYTE *)&dwData,1);
        RegCloseKey(hReg);

        RegOpenKeyExA(HKEY_LOCAL_MACHINE,"SOFTWARE//Microsoft//Windows//CurrentVersion//Setup",0,KEY_WRITE,&hReg);
        RegSetValueExA(hReg,"PrivateHash",0,REG_BINARY,&bHash[0],16);
        RegCloseKey(hReg);

    }

    return 0;
}


出处"http://www.osdiy.com",

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值