2017-04-18 209 views

回答

3
#define _WIN32_WINNT 0x600 

#include <iostream> 
#include <windows.h> 
#include <slpublic.h> 


/*' 
From: C:/Windows/System32/SLMGR.vbs 


' Copyright (c) Microsoft Corporation. All rights reserved. 
' 
' Windows Software Licensing Management Tool. 
' 
' Script Name: slmgr.vbs 
' 
' WMI class names 
private const ServiceClass       = "SoftwareLicensingService" 
private const ProductClass       = "SoftwareLicensingProduct" 
private const TkaLicenseClass       = "SoftwareLicensingTokenActivationLicense" 
private const WindowsAppId       = "55c92734-d682-4d71-983e-d6ec3f16059f" 
*/ 


/** Use the WindowsAppId above to check if Windows OS itself is Genuine. **/ 
bool isGenuineWindows() 
{ 
    //WindowsAppId 
    unsigned char uuid_bytes[] = {0x35, 0x35, 0x63, 0x39, 0x32, 0x37, 0x33, 0x34, 0x2d, 0x64, 0x36, 
           0x38, 0x32, 0x2d, 0x34, 0x64, 0x37, 0x31, 0x2d, 0x39, 0x38, 0x33, 
           0x65, 0x2d, 0x64, 0x36, 0x65, 0x63, 0x33, 0x66, 0x31, 0x36, 0x30, 
           0x35, 0x39, 0x66}; 

    GUID uuid; 
    SL_GENUINE_STATE state; 

    UuidFromStringA(uuid_bytes, &uuid); 
    SLIsGenuineLocal(&uuid, &state, nullptr); 
    return state == SL_GEN_STATE_IS_GENUINE; 
} 

int main() 
{ 
    std::cout<<isGenuineWindows(); 
    return 0; 
} 

鏈接反對:librpcrt4.alibslwga.a

+0

將這項工作的所有版本的Windows? – antman1p

+0

@ antman1p不,這隻支持Vista + ..所以Vista,Win7,Win8,Win8.1,Win10。我已經在Win10和Win8上測試過了,工作。我沒有在Win7上測試過它,但我100%肯定它會工作。 – Brandon

相關問題