uploaded version 2018_11_15 for python2

This commit is contained in:
Matteo ℱan 2018-11-14 23:09:19 +01:00 committed by GitHub
parent 73f66ea40f
commit b0a8ff21fb
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
18 changed files with 1574 additions and 791 deletions

798
py2-kms/KmsDataBase.xml Normal file
View file

@ -0,0 +1,798 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Modded by SystemRage for py-kms -->
<!--
<KmsData
Version="1.7" // Version of the KmsData file, currently must be 1.7 (required),
Author="Hotbird64" // Enter your name here (required)
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" // Loads the xsi namespace (recommended for syntax checking in an XSD capable XML editor)
xsi:noNamespaceSchemaLocation="KmsDataBase.xsd" // relative or absolute path of the validation file
>
<WinBuild
BuildNumber="9200" // Windows Build Number
DisplayName="Windows 8 / Server 2012" // A display name for the build number
PlatformId="5426" // The "Platform ID" for this build number
UseForEpid="true" // Use this build number for EPid generation. Should be true only for RTM builds that can be Windows servers
MayBeServer="true" // Should be true for RTM builds that can be Windows servers
UsesNDR64="true" // Genuine KMS servers use NDR64 for this build
WinBuildIndex="0" // Index of the build (for py-kms)
MinDate="12/10/2016" // GA release date of the build (for py-kms)
/>
<CsvlkItem
>
Id="2e7a9ad1-a849-4b56-babe-17d5a29fe4b4" // SkuId of the CSVLK (required)
DisplayName="Windows Server 2019" // Friendly name that should be displayed instead of the Guid (required)
IsLab="false" // This is a lab CSVLK that also activates retail Windows > 8 (default false)
IsPreview="false" // This is a preview (beta, Non-RTM, etc.) CSVLK (default false)
GroupId="206" // GroupId for EPid generation. If omitted, this is taken from the pkeyconfig. Use only if you don´t have a pkeyconfig for this CSVLK
MinKeyId="551000000" // Minimum key id for EPid generation. If omitted, this is taken from the pkeyconfig. Use only if you don´t have a pkeyconfig for this CSVLK
MaxKeyId="570999999" // Maximum key id for EPid generation. If omitted, this is taken from the pkeyconfig. Use only if you don´t have a pkeyconfig for this CSVLK
VlmcsdIndex="0" // Export this CsvlkItem with Index 0 to vlmcsd. (optional)
IniFileName="Windows" // Name used in vlmcsd.ini to assign specific EPID (required for all CsvlkItems that have VlmcsdIndex=, optional for others)
EPid="03612-00206-568-381813-03-1033-14393.0000-2702018" // If you want a specific EPid, use this. Or omit it to generate a suitable default automatically.
InvalidWinBuild="[0,1,2]" // List of the builds not good for EPID generation with this CSVLK parameters (for py-kms)
<Activate
KmsItem="58e2134f-8e11-4d17-9cb2-91069c151148" // List of KmsItems activated by the CSVLK. The KmsItem must be defined under <AppItem><KmsItem Id= ...>
/>
</CsvlkItem>
<AppItem // Application (Windows, Office 2010 or Office 2013+)
Id="{55c92734-d682-4d71-983e-d6ec3f16059f}" // Guid (required, braces are optional).
DisplayName="Windows" // Friendly name that should be displayed instead of the Guid (required)
VlmcsdIndex="0" // VlmcsdIndex of CsvlkItem to use if an unknown KmsItem activates with that AppItem (required)
MinActiveClients="50" // Minimum clients that this AppItem should maintain
>
<KmsItem // KmsItem aka KMS Counted Id
Id="{e1c51358-fe3e-4203-a4a2-3b6b20c9734e}" // Guid (required, braces are optional).
DisplayName="Windows 10 (Retail)" // Friendly name that should be displayed instead of the Guid (required)
IsRetail="true" // Indicates that this is a retail product group that can't be activated with a genuine KMS server (optional, default false)
IsPreview="false" // Indicates that this a beta/preview product group that can't be activated with a genuine KMS server (optional, default false)
DefaultKmsProtocol="6.0" // Default KMS protocol version that the KMS client uses. Must be "4.0", "5.0" or "6.0" (optional, default 6.0)
NCountPolicy="25" // Minimum number of active clients required for the activation to succeed (optional, default 25, should be 25 for Windows clients and 5 otherwise)
CanMapToDefaultCsvlk="true" // This KmsItem can be omitted in vlmcsd export because it maps to VlmcsdIndex 0 (optional, default true)
>
<SkuItem // VOLUME_KMSCLIENT channel SKU ID (makes no sense to add other SKU IDs than VOLUME_KMSCLIENT channel
Id="{58e97c99-f377-4ef1-81d5-4ad5522b5fd8}" // Guid (required, braces are optional).
DisplayName="Windows 10 Home" // Friendly name that should be displayed instead of the Guid (required)
Gvlk="XXXXX-XXXXX-XXXXX-XXXXX-H8Q99" // The GVLK key to enable this VOLUME_KMSCLIENT channel (optional, recommended, no default)
IsGeneratedGvlk="false" // If true, indicates that this is a generated GVLK (optional, strongly recommended if a generated GVLK is used, default false)
/>
</KmsItem>
</AppItem>
</KmsData>
-->
<KmsData xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" Version="1.7" Author="Hotbird64" xsi:noNamespaceSchemaLocation="KmsDataBase.xsd">
<WinBuilds>
<!-- LM refuses 3-digit build numbers
<WinBuild BuildNumber="528" DisplayName="Windows NT 3.1" PlatformId="55041"/>
<WinBuild BuildNumber="807" DisplayName="Windows NT 3.5" PlatformId="55041"/>
-->
<WinBuild BuildNumber="1057" DisplayName="Windows NT 3.51" PlatformId="55041"/>
<WinBuild BuildNumber="1381" DisplayName="Windows NT 4.0" PlatformId="55041"/>
<WinBuild BuildNumber="2195" DisplayName="Windows 2000" PlatformId="55041"/>
<WinBuild BuildNumber="2600" DisplayName="Windows XP 32-bit" PlatformId="55041"/>
<WinBuild BuildNumber="3790" DisplayName="Windows Server 2003 / XP 64-bit" PlatformId="55041" MayBeServer="true"/>
<WinBuild BuildNumber="6000" DisplayName="Windows Vista / Server 2008 without SP" PlatformId="55041" MayBeServer="true"/>
<WinBuild BuildNumber="6001" DisplayName="Windows Vista / Server 2008 SP1" PlatformId="55041" MayBeServer="true"/>
<WinBuild BuildNumber="6002" DisplayName="Windows Vista / Server 2008 SP2" UseForEpid="true" PlatformId="55041" MayBeServer="true" WinBuildIndex="0" MinDate="26/5/2009"/>
<WinBuild BuildNumber="7600" DisplayName="Windows 7 / Server 2008 R2 without SP" PlatformId="55041" MayBeServer="true"/>
<WinBuild BuildNumber="7601" DisplayName="Windows 7 / Server 2008 R2 SP1" PlatformId="55041" UseForEpid="true" MayBeServer="true" WinBuildIndex="1" MinDate="22/02/2011"/>
<WinBuild BuildNumber="9200" DisplayName="Windows 8 / Server 2012" PlatformId="5426" UseForEpid="true" MayBeServer="true" UsesNDR64="true" WinBuildIndex="2" MinDate="04/09/2012"/>
<WinBuild BuildNumber="9600" DisplayName="Windows 8.1 / Server 2012 R2" PlatformId="6401" UseForEpid="true" MayBeServer="true" UsesNDR64="true" WinBuildIndex="3" MinDate="17/10/2013"/>
<WinBuild BuildNumber="10240" DisplayName="Windows 10 1507" PlatformId="3612" UsesNDR64="true"/>
<WinBuild BuildNumber="14393" DisplayName="Windows 10 1607 / Server 2016" UseForEpid="true" MayBeServer="true" PlatformId="3612" UsesNDR64="true" WinBuildIndex="4" MinDate="12/10/2016"/>
<WinBuild BuildNumber="15063" DisplayName="Windows 10 1703" PlatformId="3612" UsesNDR64="true" MinDate="11/04/2017"/>
<WinBuild BuildNumber="16299" DisplayName="Windows 10 1709" PlatformId="3612" UsesNDR64="true"/>
<WinBuild BuildNumber="17134" DisplayName="Windows 10 1803" PlatformId="3612" UsesNDR64="true"/>
<WinBuild BuildNumber="17763" DisplayName="Windows 10 1809 / Server 2019" UseForEpid="true" PlatformId="3612" MayBeServer="true" UsesNDR64="true" WinBuildIndex="5" MinDate="02/10/2018"/>
</WinBuilds>
<CsvlkItems>
<CsvlkItem DisplayName="Windows 10 China Government" VlmcsdIndex="4" GroupId="3858" MinKeyId="15000000" MaxKeyId="999999999" IniFileName="WinChinaGov" EPid="06401-03858-320-801028-03-1033-9600.0000-2802018" Id="ecc0774a-aed3-4e1a-b815-2b31781adfea" InvalidWinBuild="[0,1,2]">
<Activate KmsItem="7ba0bf23-d0f5-4072-91d9-d55af5a481b6" />
</CsvlkItem>
<CsvlkItem DisplayName="Windows Server 2019" VlmcsdIndex="0" GroupId="206" MinKeyId="551000000" MaxKeyId="570999999" IniFileName="Windows" EPid="06401-00206-566-174993-03-1033-9600.0000-2802018" Id="2e7a9ad1-a849-4b56-babe-17d5a29fe4b4" InvalidWinBuild="[0,1,2]">
<Activate KmsItem="58e2134f-8e11-4d17-9cb2-91069c151148" />
<Activate KmsItem="7fde5219-fbfa-484a-82c9-34d1ad53e856" />
<Activate KmsItem="3c40b358-5948-45af-923b-53d21fcc7e79" />
<Activate KmsItem="cb8fc780-2c05-495a-9710-85afffc904d7" />
<Activate KmsItem="33e156e4-b76f-4a52-9f91-f641dd95ac48" />
<Activate KmsItem="8fe53387-3087-4447-8985-f75132215ac9" />
<Activate KmsItem="8a21fdf3-cbc5-44eb-83f3-fe284e6680a7" />
<Activate KmsItem="0fc6ccaf-ff0e-4fae-9d08-4370785bf7ed" />
<Activate KmsItem="ca87f5b6-cd46-40c0-b06d-8ecd57a4373f" />
<Activate KmsItem="b2ca2689-a9a8-42d7-938d-cf8e9f201958" />
<Activate KmsItem="8665cb71-468c-4aa3-a337-cb9bc9d5eaac" />
<Activate KmsItem="8456efd3-0c04-4089-8740-5b7238535a65" />
<Activate KmsItem="6e9fc069-257d-4bc4-b4a7-750514d32743" />
<Activate KmsItem="969fe3c0-a3ec-491a-9f25-423605deb365" />
<Activate KmsItem="212a64dc-43b1-4d3d-a30c-2fc69d2095c6" />
<Activate KmsItem="d27cd636-1962-44e9-8b4f-27b6c23efb85" />
<Activate KmsItem="8449b1fb-f0ea-497a-99ab-66ca96e9a0f5" />
<Activate KmsItem="11b15659-e603-4cf1-9c1f-f0ec01b81888" />
</CsvlkItem>
<CsvlkItem DisplayName="Windows Server 2019 (Microsoft Internal Lab)" IsLab="true" GroupId="206" MinKeyId="2835000" MaxKeyId="2854999" IniFileName="Windows" Id="9db83b52-9904-4326-8957-ebe6feedf37c" InvalidWinBuild="[0,1,2]">
<Activate KmsItem="e1c51358-fe3e-4203-a4a2-3b6b20c9734e" />
<Activate KmsItem="58e2134f-8e11-4d17-9cb2-91069c151148" />
<Activate KmsItem="7fde5219-fbfa-484a-82c9-34d1ad53e856" />
<Activate KmsItem="bbb97b3b-8ca4-4a28-9717-89fabd42c4ac" />
<Activate KmsItem="3c40b358-5948-45af-923b-53d21fcc7e79" />
<Activate KmsItem="6d646890-3606-461a-86ab-598bb84ace82" />
<Activate KmsItem="cb8fc780-2c05-495a-9710-85afffc904d7" />
<Activate KmsItem="33e156e4-b76f-4a52-9f91-f641dd95ac48" />
<Activate KmsItem="8fe53387-3087-4447-8985-f75132215ac9" />
<Activate KmsItem="8a21fdf3-cbc5-44eb-83f3-fe284e6680a7" />
<Activate KmsItem="0fc6ccaf-ff0e-4fae-9d08-4370785bf7ed" />
<Activate KmsItem="ca87f5b6-cd46-40c0-b06d-8ecd57a4373f" />
<Activate KmsItem="b2ca2689-a9a8-42d7-938d-cf8e9f201958" />
<Activate KmsItem="8665cb71-468c-4aa3-a337-cb9bc9d5eaac" />
<Activate KmsItem="8456efd3-0c04-4089-8740-5b7238535a65" />
<Activate KmsItem="6e9fc069-257d-4bc4-b4a7-750514d32743" />
<Activate KmsItem="969fe3c0-a3ec-491a-9f25-423605deb365" />
<Activate KmsItem="212a64dc-43b1-4d3d-a30c-2fc69d2095c6" />
<Activate KmsItem="d27cd636-1962-44e9-8b4f-27b6c23efb85" />
<Activate KmsItem="8449b1fb-f0ea-497a-99ab-66ca96e9a0f5" />
<Activate KmsItem="11b15659-e603-4cf1-9c1f-f0ec01b81888" />
</CsvlkItem>
<CsvlkItem DisplayName="Windows Server 2016" GroupId="206" MinKeyId="491000000" MaxKeyId="530999999" IniFileName="Windows" Id="d6992aac-29e7-452a-bf10-bbfb8ccabe59" InvalidWinBuild="[0,1]">
<Activate KmsItem="58e2134f-8e11-4d17-9cb2-91069c151148" />
<Activate KmsItem="7fde5219-fbfa-484a-82c9-34d1ad53e856" />
<Activate KmsItem="3c40b358-5948-45af-923b-53d21fcc7e79" />
<Activate KmsItem="cb8fc780-2c05-495a-9710-85afffc904d7" />
<Activate KmsItem="33e156e4-b76f-4a52-9f91-f641dd95ac48" />
<Activate KmsItem="8fe53387-3087-4447-8985-f75132215ac9" />
<Activate KmsItem="8a21fdf3-cbc5-44eb-83f3-fe284e6680a7" />
<Activate KmsItem="0fc6ccaf-ff0e-4fae-9d08-4370785bf7ed" />
<Activate KmsItem="ca87f5b6-cd46-40c0-b06d-8ecd57a4373f" />
<Activate KmsItem="b2ca2689-a9a8-42d7-938d-cf8e9f201958" />
<Activate KmsItem="8665cb71-468c-4aa3-a337-cb9bc9d5eaac" />
<Activate KmsItem="8456efd3-0c04-4089-8740-5b7238535a65" />
<Activate KmsItem="6e9fc069-257d-4bc4-b4a7-750514d32743" />
<Activate KmsItem="969fe3c0-a3ec-491a-9f25-423605deb365" />
<Activate KmsItem="212a64dc-43b1-4d3d-a30c-2fc69d2095c6" />
<Activate KmsItem="d27cd636-1962-44e9-8b4f-27b6c23efb85" />
</CsvlkItem>
<CsvlkItem DisplayName="Windows Server 2016 (Microsoft Internal Lab)" IsLab="true" GroupId="206" MinKeyId="1510000" MaxKeyId="2009999" IniFileName="Windows" Id="3c2da9a5-1c6e-45d1-855f-fdbef536676f" InvalidWinBuild="[0,1]">
<Activate KmsItem="e1c51358-fe3e-4203-a4a2-3b6b20c9734e" />
<Activate KmsItem="58e2134f-8e11-4d17-9cb2-91069c151148" />
<Activate KmsItem="7fde5219-fbfa-484a-82c9-34d1ad53e856" />
<Activate KmsItem="bbb97b3b-8ca4-4a28-9717-89fabd42c4ac" />
<Activate KmsItem="3c40b358-5948-45af-923b-53d21fcc7e79" />
<Activate KmsItem="6d646890-3606-461a-86ab-598bb84ace82" />
<Activate KmsItem="cb8fc780-2c05-495a-9710-85afffc904d7" />
<Activate KmsItem="33e156e4-b76f-4a52-9f91-f641dd95ac48" />
<Activate KmsItem="8fe53387-3087-4447-8985-f75132215ac9" />
<Activate KmsItem="8a21fdf3-cbc5-44eb-83f3-fe284e6680a7" />
<Activate KmsItem="0fc6ccaf-ff0e-4fae-9d08-4370785bf7ed" />
<Activate KmsItem="ca87f5b6-cd46-40c0-b06d-8ecd57a4373f" />
<Activate KmsItem="b2ca2689-a9a8-42d7-938d-cf8e9f201958" />
<Activate KmsItem="8665cb71-468c-4aa3-a337-cb9bc9d5eaac" />
<Activate KmsItem="8456efd3-0c04-4089-8740-5b7238535a65" />
<Activate KmsItem="6e9fc069-257d-4bc4-b4a7-750514d32743" />
<Activate KmsItem="969fe3c0-a3ec-491a-9f25-423605deb365" />
<Activate KmsItem="212a64dc-43b1-4d3d-a30c-2fc69d2095c6" />
<Activate KmsItem="d27cd636-1962-44e9-8b4f-27b6c23efb85" />
</CsvlkItem>
<CsvlkItem DisplayName="Windows 10 2019" GroupId="206" MinKeyId="256000000" MaxKeyId="265999999" IniFileName="Windows" Id="90da7373-1c51-430b-bf26-c97e9c5cdc31" InvalidWinBuild="[0,1,2]">
<Activate KmsItem="58e2134f-8e11-4d17-9cb2-91069c151148" />
<Activate KmsItem="969fe3c0-a3ec-491a-9f25-423605deb365" />
<Activate KmsItem="11b15659-e603-4cf1-9c1f-f0ec01b81888" />
<Activate KmsItem="7fde5219-fbfa-484a-82c9-34d1ad53e856" />
<Activate KmsItem="3c40b358-5948-45af-923b-53d21fcc7e79" />
<Activate KmsItem="cb8fc780-2c05-495a-9710-85afffc904d7" />
<Activate KmsItem="212a64dc-43b1-4d3d-a30c-2fc69d2095c6" />
<Activate KmsItem="d27cd636-1962-44e9-8b4f-27b6c23efb85" />
</CsvlkItem>
<CsvlkItem DisplayName="Windows 10 2015" GroupId="206" MinKeyId="390000000" MaxKeyId="404999999" IniFileName="Windows" Id="0724cb7d-3437-4cb7-93cb-830375d0079d" InvalidWinBuild="[0,1]">
<Activate KmsItem="58e2134f-8e11-4d17-9cb2-91069c151148" />
<Activate KmsItem="7fde5219-fbfa-484a-82c9-34d1ad53e856" />
<Activate KmsItem="3c40b358-5948-45af-923b-53d21fcc7e79" />
<Activate KmsItem="cb8fc780-2c05-495a-9710-85afffc904d7" />
<Activate KmsItem="212a64dc-43b1-4d3d-a30c-2fc69d2095c6" />
<Activate KmsItem="d27cd636-1962-44e9-8b4f-27b6c23efb85" />
</CsvlkItem>
<CsvlkItem DisplayName="Windows 10 2016" GroupId="206" MinKeyId="531000000" MaxKeyId="545999999" IniFileName="Windows" Id="30a42c86-b7a0-4a34-8c90-ff177cb2acb7" InvalidWinBuild="[0,1]">
<Activate KmsItem="58e2134f-8e11-4d17-9cb2-91069c151148" />
<Activate KmsItem="969fe3c0-a3ec-491a-9f25-423605deb365" />
<Activate KmsItem="7fde5219-fbfa-484a-82c9-34d1ad53e856" />
<Activate KmsItem="3c40b358-5948-45af-923b-53d21fcc7e79" />
<Activate KmsItem="cb8fc780-2c05-495a-9710-85afffc904d7" />
<Activate KmsItem="212a64dc-43b1-4d3d-a30c-2fc69d2095c6" />
<Activate KmsItem="d27cd636-1962-44e9-8b4f-27b6c23efb85" />
</CsvlkItem>
<CsvlkItem DisplayName="Windows 10 2015 (Microsoft Internal Lab)" IsLab="true" GroupId="206" MinKeyId="10700000" MaxKeyId="10799999" IniFileName="Windows" Id="7a802526-4c94-4bd1-ba14-835a1aca2120" InvalidWinBuild="[0,1]">
<Activate KmsItem="58e2134f-8e11-4d17-9cb2-91069c151148" />
<Activate KmsItem="7fde5219-fbfa-484a-82c9-34d1ad53e856" />
<Activate KmsItem="3c40b358-5948-45af-923b-53d21fcc7e79" />
<Activate KmsItem="cb8fc780-2c05-495a-9710-85afffc904d7" />
<Activate KmsItem="212a64dc-43b1-4d3d-a30c-2fc69d2095c6" />
<Activate KmsItem="e1c51358-fe3e-4203-a4a2-3b6b20c9734e" />
<Activate KmsItem="bbb97b3b-8ca4-4a28-9717-89fabd42c4ac" />
<Activate KmsItem="6d646890-3606-461a-86ab-598bb84ace82" />
<Activate KmsItem="d27cd636-1962-44e9-8b4f-27b6c23efb85" />
</CsvlkItem>
<CsvlkItem DisplayName="Windows 10 2019 (Microsoft Internal Lab)" IsLab="true" GroupId="206" MinKeyId="2860000" MaxKeyId="2864999" IniFileName="Windows" Id="60b3ec1b-9545-4921-821f-311b129dd6f6" InvalidWinBuild="[0,1,2]">
<Activate KmsItem="58e2134f-8e11-4d17-9cb2-91069c151148" />
<Activate KmsItem="969fe3c0-a3ec-491a-9f25-423605deb365" />
<Activate KmsItem="11b15659-e603-4cf1-9c1f-f0ec01b81888" />
<Activate KmsItem="7fde5219-fbfa-484a-82c9-34d1ad53e856" />
<Activate KmsItem="3c40b358-5948-45af-923b-53d21fcc7e79" />
<Activate KmsItem="cb8fc780-2c05-495a-9710-85afffc904d7" />
<Activate KmsItem="212a64dc-43b1-4d3d-a30c-2fc69d2095c6" />
<Activate KmsItem="e1c51358-fe3e-4203-a4a2-3b6b20c9734e" />
<Activate KmsItem="bbb97b3b-8ca4-4a28-9717-89fabd42c4ac" />
<Activate KmsItem="6d646890-3606-461a-86ab-598bb84ace82" />
<Activate KmsItem="d27cd636-1962-44e9-8b4f-27b6c23efb85" />
</CsvlkItem>
<CsvlkItem DisplayName="Windows 10 2016 (Microsoft Internal Lab)" IsLab="true" GroupId="206" MinKeyId="2015000" MaxKeyId="2114999" IniFileName="Windows" Id="d552befb-48cc-4327-8f39-47d2d94f987c" InvalidWinBuild="[0,1]">
<Activate KmsItem="58e2134f-8e11-4d17-9cb2-91069c151148" />
<Activate KmsItem="969fe3c0-a3ec-491a-9f25-423605deb365" />
<Activate KmsItem="7fde5219-fbfa-484a-82c9-34d1ad53e856" />
<Activate KmsItem="3c40b358-5948-45af-923b-53d21fcc7e79" />
<Activate KmsItem="cb8fc780-2c05-495a-9710-85afffc904d7" />
<Activate KmsItem="212a64dc-43b1-4d3d-a30c-2fc69d2095c6" />
<Activate KmsItem="e1c51358-fe3e-4203-a4a2-3b6b20c9734e" />
<Activate KmsItem="bbb97b3b-8ca4-4a28-9717-89fabd42c4ac" />
<Activate KmsItem="6d646890-3606-461a-86ab-598bb84ace82" />
<Activate KmsItem="d27cd636-1962-44e9-8b4f-27b6c23efb85" />
</CsvlkItem>
<CsvlkItem DisplayName="Windows 10 [Pre-Release]" IsPreview="true" GroupId="206" MinKeyId="1000000" MaxKeyId="1009999" IniFileName="Windows" Id="d521c0fd-1732-4c15-8b98-a41b2a95bbc4" InvalidWinBuild="[0,1]">
<Activate KmsItem="7fde5219-fbfa-484a-82c9-34d1ad53e856" />
<Activate KmsItem="58e2134f-8e11-4d17-9cb2-91069c151148" />
<Activate KmsItem="3c40b358-5948-45af-923b-53d21fcc7e79" />
<Activate KmsItem="cb8fc780-2c05-495a-9710-85afffc904d7" />
<Activate KmsItem="212a64dc-43b1-4d3d-a30c-2fc69d2095c6" />
<Activate KmsItem="5f94a0bb-d5a0-4081-a685-5819418b2fe0" />
<Activate KmsItem="d27cd636-1962-44e9-8b4f-27b6c23efb85" />
</CsvlkItem>
<CsvlkItem DisplayName="Windows Server Next [Pre-Release]" IsPreview="true" GroupId="206" MinKeyId="21001500" MaxKeyId="21010499" IniFileName="Windows" Id="c609957a-dc23-48b3-8c6b-31b303479de2" InvalidWinBuild="[0,1]">
<Activate KmsItem="7fde5219-fbfa-484a-82c9-34d1ad53e856" />
<Activate KmsItem="58e2134f-8e11-4d17-9cb2-91069c151148" />
<Activate KmsItem="969fe3c0-a3ec-491a-9f25-423605deb365" />
<Activate KmsItem="3c40b358-5948-45af-923b-53d21fcc7e79" />
<Activate KmsItem="cb8fc780-2c05-495a-9710-85afffc904d7" />
<Activate KmsItem="212a64dc-43b1-4d3d-a30c-2fc69d2095c6" />
<Activate KmsItem="5f94a0bb-d5a0-4081-a685-5819418b2fe0" />
<Activate KmsItem="33e156e4-b76f-4a52-9f91-f641dd95ac48" />
<Activate KmsItem="8fe53387-3087-4447-8985-f75132215ac9" />
<Activate KmsItem="8a21fdf3-cbc5-44eb-83f3-fe284e6680a7" />
<Activate KmsItem="0fc6ccaf-ff0e-4fae-9d08-4370785bf7ed" />
<Activate KmsItem="ca87f5b6-cd46-40c0-b06d-8ecd57a4373f" />
<Activate KmsItem="b2ca2689-a9a8-42d7-938d-cf8e9f201958" />
<Activate KmsItem="8665cb71-468c-4aa3-a337-cb9bc9d5eaac" />
<Activate KmsItem="8456efd3-0c04-4089-8740-5b7238535a65" />
<Activate KmsItem="6e9fc069-257d-4bc4-b4a7-750514d32743" />
<Activate KmsItem="6d5f5270-31ac-433e-b90a-39892923c657" />
<Activate KmsItem="d27cd636-1962-44e9-8b4f-27b6c23efb85" />
</CsvlkItem>
<CsvlkItem DisplayName="Windows Server 2012 R2 With Win 10" GroupId="206" MinKeyId="405000000" MaxKeyId="424999999" IniFileName="Windows" Id="20e938bb-df44-45ee-bde1-4e4fe7477f37" InvalidWinBuild="[0]">
<Activate KmsItem="58e2134f-8e11-4d17-9cb2-91069c151148" />
<Activate KmsItem="7fde5219-fbfa-484a-82c9-34d1ad53e856" />
<Activate KmsItem="3c40b358-5948-45af-923b-53d21fcc7e79" />
<Activate KmsItem="cb8fc780-2c05-495a-9710-85afffc904d7" />
<Activate KmsItem="33e156e4-b76f-4a52-9f91-f641dd95ac48" />
<Activate KmsItem="8fe53387-3087-4447-8985-f75132215ac9" />
<Activate KmsItem="8a21fdf3-cbc5-44eb-83f3-fe284e6680a7" />
<Activate KmsItem="0fc6ccaf-ff0e-4fae-9d08-4370785bf7ed" />
<Activate KmsItem="ca87f5b6-cd46-40c0-b06d-8ecd57a4373f" />
<Activate KmsItem="b2ca2689-a9a8-42d7-938d-cf8e9f201958" />
<Activate KmsItem="8665cb71-468c-4aa3-a337-cb9bc9d5eaac" />
<Activate KmsItem="8456efd3-0c04-4089-8740-5b7238535a65" />
<Activate KmsItem="212a64dc-43b1-4d3d-a30c-2fc69d2095c6" />
<Activate KmsItem="d27cd636-1962-44e9-8b4f-27b6c23efb85" />
</CsvlkItem>
<CsvlkItem DisplayName="Windows Server 2012 R2 With Win 10 (Microsoft Internal Lab)" IsLab="true" GroupId="206" MinKeyId="17650000" MaxKeyId="17849999" IniFileName="Windows" Id="9e3fde40-d4b3-4c1d-9bde-32735aa19b39" InvalidWinBuild="[0]">
<Activate KmsItem="e1c51358-fe3e-4203-a4a2-3b6b20c9734e" />
<Activate KmsItem="58e2134f-8e11-4d17-9cb2-91069c151148" />
<Activate KmsItem="7fde5219-fbfa-484a-82c9-34d1ad53e856" />
<Activate KmsItem="bbb97b3b-8ca4-4a28-9717-89fabd42c4ac" />
<Activate KmsItem="3c40b358-5948-45af-923b-53d21fcc7e79" />
<Activate KmsItem="6d646890-3606-461a-86ab-598bb84ace82" />
<Activate KmsItem="cb8fc780-2c05-495a-9710-85afffc904d7" />
<Activate KmsItem="33e156e4-b76f-4a52-9f91-f641dd95ac48" />
<Activate KmsItem="8fe53387-3087-4447-8985-f75132215ac9" />
<Activate KmsItem="8a21fdf3-cbc5-44eb-83f3-fe284e6680a7" />
<Activate KmsItem="0fc6ccaf-ff0e-4fae-9d08-4370785bf7ed" />
<Activate KmsItem="ca87f5b6-cd46-40c0-b06d-8ecd57a4373f" />
<Activate KmsItem="b2ca2689-a9a8-42d7-938d-cf8e9f201958" />
<Activate KmsItem="8665cb71-468c-4aa3-a337-cb9bc9d5eaac" />
<Activate KmsItem="8456efd3-0c04-4089-8740-5b7238535a65" />
<Activate KmsItem="212a64dc-43b1-4d3d-a30c-2fc69d2095c6" />
<Activate KmsItem="d27cd636-1962-44e9-8b4f-27b6c23efb85" />
</CsvlkItem>
<CsvlkItem DisplayName="Windows 8.1" GroupId="206" MinKeyId="339000000" MaxKeyId="353999999" IniFileName="Windows" Id="29d0b60f-66da-4858-bcaf-9eb513cd310d" InvalidWinBuild="[0]">
<Activate KmsItem="7fde5219-fbfa-484a-82c9-34d1ad53e856" />
<Activate KmsItem="3c40b358-5948-45af-923b-53d21fcc7e79" />
<Activate KmsItem="cb8fc780-2c05-495a-9710-85afffc904d7" />
<Activate KmsItem="212a64dc-43b1-4d3d-a30c-2fc69d2095c6" />
</CsvlkItem>
<CsvlkItem DisplayName="Windows 8.1 (Microsoft internal Lab)" IsLab="true" GroupId="206" MinKeyId="109500000" MaxKeyId="109999999" IniFileName="Windows" Id="4614b66f-a1d7-441c-9731-23f22d0ff4e5" InvalidWinBuild="[0]">
<Activate KmsItem="7fde5219-fbfa-484a-82c9-34d1ad53e856" />
<Activate KmsItem="bbb97b3b-8ca4-4a28-9717-89fabd42c4ac" />
<Activate KmsItem="3c40b358-5948-45af-923b-53d21fcc7e79" />
<Activate KmsItem="6d646890-3606-461a-86ab-598bb84ace82" />
<Activate KmsItem="212a64dc-43b1-4d3d-a30c-2fc69d2095c6" />
<Activate KmsItem="cb8fc780-2c05-495a-9710-85afffc904d7" />
</CsvlkItem>
<CsvlkItem DisplayName="Windows Server 2012 R2" GroupId="206" MinKeyId="271000000" MaxKeyId="310999999" IniFileName="Windows" Id="dcb88f6f-b090-405b-850e-dabcccf3693f" InvalidWinBuild="[0]">
<Activate KmsItem="7fde5219-fbfa-484a-82c9-34d1ad53e856" />
<Activate KmsItem="3c40b358-5948-45af-923b-53d21fcc7e79" />
<Activate KmsItem="212a64dc-43b1-4d3d-a30c-2fc69d2095c6" />
<Activate KmsItem="cb8fc780-2c05-495a-9710-85afffc904d7" />
<Activate KmsItem="33e156e4-b76f-4a52-9f91-f641dd95ac48" />
<Activate KmsItem="8fe53387-3087-4447-8985-f75132215ac9" />
<Activate KmsItem="8a21fdf3-cbc5-44eb-83f3-fe284e6680a7" />
<Activate KmsItem="0fc6ccaf-ff0e-4fae-9d08-4370785bf7ed" />
<Activate KmsItem="ca87f5b6-cd46-40c0-b06d-8ecd57a4373f" />
<Activate KmsItem="b2ca2689-a9a8-42d7-938d-cf8e9f201958" />
<Activate KmsItem="8665cb71-468c-4aa3-a337-cb9bc9d5eaac" />
<Activate KmsItem="8456efd3-0c04-4089-8740-5b7238535a65" />
</CsvlkItem>
<CsvlkItem DisplayName="Windows Server 2012 R2 (Microsoft Internal Lab)" IsLab="true" GroupId="206" MinKeyId="192000000" MaxKeyId="192499999" IniFileName="Windows" Id="acf1b4fd-1c55-4f2d-a60b-415ac958ad88" InvalidWinBuild="[0]">
<Activate KmsItem="7fde5219-fbfa-484a-82c9-34d1ad53e856" />
<Activate KmsItem="bbb97b3b-8ca4-4a28-9717-89fabd42c4ac" />
<Activate KmsItem="3c40b358-5948-45af-923b-53d21fcc7e79" />
<Activate KmsItem="212a64dc-43b1-4d3d-a30c-2fc69d2095c6" />
<Activate KmsItem="6d646890-3606-461a-86ab-598bb84ace82" />
<Activate KmsItem="cb8fc780-2c05-495a-9710-85afffc904d7" />
<Activate KmsItem="33e156e4-b76f-4a52-9f91-f641dd95ac48" />
<Activate KmsItem="8fe53387-3087-4447-8985-f75132215ac9" />
<Activate KmsItem="8a21fdf3-cbc5-44eb-83f3-fe284e6680a7" />
<Activate KmsItem="0fc6ccaf-ff0e-4fae-9d08-4370785bf7ed" />
<Activate KmsItem="ca87f5b6-cd46-40c0-b06d-8ecd57a4373f" />
<Activate KmsItem="b2ca2689-a9a8-42d7-938d-cf8e9f201958" />
<Activate KmsItem="8665cb71-468c-4aa3-a337-cb9bc9d5eaac" />
<Activate KmsItem="8456efd3-0c04-4089-8740-5b7238535a65" />
</CsvlkItem>
<CsvlkItem DisplayName="Windows 8" GroupId="206" MinKeyId="199000000" MaxKeyId="213999999" IniFileName="Windows" Id="24259a22-3bf0-44af-a68b-1b858bce1894" InvalidWinBuild="[0]">
<Activate KmsItem="7fde5219-fbfa-484a-82c9-34d1ad53e856" />
<Activate KmsItem="3c40b358-5948-45af-923b-53d21fcc7e79" />
<Activate KmsItem="212a64dc-43b1-4d3d-a30c-2fc69d2095c6" />
</CsvlkItem>
<CsvlkItem DisplayName="Windows 8 (Microsoft Internal Lab)" IsLab="true" GroupId="206" MinKeyId="21100000" MaxKeyId="21599999" IniFileName="Windows" Id="044ba67a-4c54-47ee-941a-d6f2efaa6891" InvalidWinBuild="[0]">
<Activate KmsItem="7fde5219-fbfa-484a-82c9-34d1ad53e856" />
<Activate KmsItem="bbb97b3b-8ca4-4a28-9717-89fabd42c4ac" />
<Activate KmsItem="3c40b358-5948-45af-923b-53d21fcc7e79" />
<Activate KmsItem="212a64dc-43b1-4d3d-a30c-2fc69d2095c6" />
</CsvlkItem>
<CsvlkItem DisplayName="Windows Server 2012" GroupId="206" MinKeyId="152000000" MaxKeyId="191999999" IniFileName="Windows" Id="7b37c913-252b-46be-ad80-b2b5ceade8af" InvalidWinBuild="[0]">
<Activate KmsItem="7fde5219-fbfa-484a-82c9-34d1ad53e856" />
<Activate KmsItem="3c40b358-5948-45af-923b-53d21fcc7e79" />
<Activate KmsItem="212a64dc-43b1-4d3d-a30c-2fc69d2095c6" />
<Activate KmsItem="33e156e4-b76f-4a52-9f91-f641dd95ac48" />
<Activate KmsItem="8fe53387-3087-4447-8985-f75132215ac9" />
<Activate KmsItem="8a21fdf3-cbc5-44eb-83f3-fe284e6680a7" />
<Activate KmsItem="0fc6ccaf-ff0e-4fae-9d08-4370785bf7ed" />
<Activate KmsItem="ca87f5b6-cd46-40c0-b06d-8ecd57a4373f" />
<Activate KmsItem="b2ca2689-a9a8-42d7-938d-cf8e9f201958" />
<Activate KmsItem="8665cb71-468c-4aa3-a337-cb9bc9d5eaac" />
</CsvlkItem>
<CsvlkItem DisplayName="Windows Server 2012 (Microsoft internal Lab)" IsLab="true" GroupId="206" MinKeyId="98500000" MaxKeyId="98999999" IniFileName="Windows" Id="fe27276b-a5a9-4b4d-88e3-14271beb79be" InvalidWinBuild="[0]">
<Activate KmsItem="7fde5219-fbfa-484a-82c9-34d1ad53e856" />
<Activate KmsItem="bbb97b3b-8ca4-4a28-9717-89fabd42c4ac" />
<Activate KmsItem="3c40b358-5948-45af-923b-53d21fcc7e79" />
<Activate KmsItem="212a64dc-43b1-4d3d-a30c-2fc69d2095c6" />
<Activate KmsItem="33e156e4-b76f-4a52-9f91-f641dd95ac48" />
<Activate KmsItem="8fe53387-3087-4447-8985-f75132215ac9" />
<Activate KmsItem="8a21fdf3-cbc5-44eb-83f3-fe284e6680a7" />
<Activate KmsItem="0fc6ccaf-ff0e-4fae-9d08-4370785bf7ed" />
<Activate KmsItem="ca87f5b6-cd46-40c0-b06d-8ecd57a4373f" />
<Activate KmsItem="b2ca2689-a9a8-42d7-938d-cf8e9f201958" />
<Activate KmsItem="8665cb71-468c-4aa3-a337-cb9bc9d5eaac" />
</CsvlkItem>
<CsvlkItem DisplayName="Windows 7" GroupId="172" MinKeyId="37000000" MaxKeyId="49749999" IniFileName="Windows" Id="d188820a-cb63-4bad-a9a2-40b843ee23b7" InvalidWinBuild="[0]">
<Activate KmsItem="7fde5219-fbfa-484a-82c9-34d1ad53e856" />
<Activate KmsItem="212a64dc-43b1-4d3d-a30c-2fc69d2095c6" />
</CsvlkItem>
<CsvlkItem DisplayName="Windows Server 2008 R2 C (Datacenter)" GroupId="168" MinKeyId="305000000" MaxKeyId="312119999" IniFileName="Windows" Id="8fe15d04-fc66-40e6-bf34-942481e06fd8" InvalidWinBuild="[0]">
<Activate KmsItem="7fde5219-fbfa-484a-82c9-34d1ad53e856" />
<Activate KmsItem="212a64dc-43b1-4d3d-a30c-2fc69d2095c6" />
<Activate KmsItem="33e156e4-b76f-4a52-9f91-f641dd95ac48" />
<Activate KmsItem="8fe53387-3087-4447-8985-f75132215ac9" />
<Activate KmsItem="8a21fdf3-cbc5-44eb-83f3-fe284e6680a7" />
<Activate KmsItem="0fc6ccaf-ff0e-4fae-9d08-4370785bf7ed" />
<Activate KmsItem="ca87f5b6-cd46-40c0-b06d-8ecd57a4373f" />
<Activate KmsItem="b2ca2689-a9a8-42d7-938d-cf8e9f201958" />
</CsvlkItem>
<CsvlkItem DisplayName="Windows Server 2008 R2 B (Standard &amp; Enterprise)" GroupId="168" MinKeyId="312880000" MaxKeyId="332999999" IniFileName="Windows" Id="c99b641f-c4ea-4e63-bec3-5ed2ccd0f357" InvalidWinBuild="[0]">
<Activate KmsItem="7fde5219-fbfa-484a-82c9-34d1ad53e856" />
<Activate KmsItem="212a64dc-43b1-4d3d-a30c-2fc69d2095c6" />
<Activate KmsItem="33e156e4-b76f-4a52-9f91-f641dd95ac48" />
<Activate KmsItem="8fe53387-3087-4447-8985-f75132215ac9" />
<Activate KmsItem="0fc6ccaf-ff0e-4fae-9d08-4370785bf7ed" />
<Activate KmsItem="ca87f5b6-cd46-40c0-b06d-8ecd57a4373f" />
</CsvlkItem>
<CsvlkItem DisplayName="Windows Server 2008 R2 A (Web &amp; HPC)" GroupId="168" MinKeyId="249000000" MaxKeyId="259119999" IniFileName="Windows" Id="f73d1bcd-0802-47dd-b2d9-81bf2f8c0744" InvalidWinBuild="[0]">
<Activate KmsItem="7fde5219-fbfa-484a-82c9-34d1ad53e856" />
<Activate KmsItem="212a64dc-43b1-4d3d-a30c-2fc69d2095c6" />
<Activate KmsItem="33e156e4-b76f-4a52-9f91-f641dd95ac48" />
<Activate KmsItem="0fc6ccaf-ff0e-4fae-9d08-4370785bf7ed" />
</CsvlkItem>
<CsvlkItem DisplayName="Windows Vista (1 of 2)" GroupId="142" MinKeyId="26000000" MaxKeyId="35999999" IniFileName="Windows" Id="212a64dc-43b1-4d3d-a30c-2fc69d2095c6" InvalidWinBuild="[]">
<Activate KmsItem="212a64dc-43b1-4d3d-a30c-2fc69d2095c6" />
</CsvlkItem>
<CsvlkItem DisplayName="Windows Vista (2 of 2)" GroupId="154" MinKeyId="394000000" MaxKeyId="416999999" IniFileName="Windows" Id="4871de8b-3adf-4455-a7d3-fd7b6c01c939" InvalidWinBuild="[]">
<Activate KmsItem="212a64dc-43b1-4d3d-a30c-2fc69d2095c6" />
</CsvlkItem>
<CsvlkItem DisplayName="Windows Server 2008 C (Datacenter)" GroupId="152" MinKeyId="381000000" MaxKeyId="392999999" IniFileName="Windows" Id="c90d1b4e-8aa8-439e-8b9e-b6d6b6a6d975" InvalidWinBuild="[]">
<Activate KmsItem="212a64dc-43b1-4d3d-a30c-2fc69d2095c6" />
<Activate KmsItem="33e156e4-b76f-4a52-9f91-f641dd95ac48" />
<Activate KmsItem="8fe53387-3087-4447-8985-f75132215ac9" />
<Activate KmsItem="8a21fdf3-cbc5-44eb-83f3-fe284e6680a7" />
</CsvlkItem>
<CsvlkItem DisplayName="Windows Server 2008 B (Standard &amp; Enterprise)" GroupId="152" MinKeyId="339000000" MaxKeyId="358999999" IniFileName="Windows" Id="56df4151-1f9f-41bf-acaa-2941c071872b" InvalidWinBuild="[]">
<Activate KmsItem="212a64dc-43b1-4d3d-a30c-2fc69d2095c6" />
<Activate KmsItem="33e156e4-b76f-4a52-9f91-f641dd95ac48" />
<Activate KmsItem="8fe53387-3087-4447-8985-f75132215ac9" />
</CsvlkItem>
<CsvlkItem DisplayName="Windows Server 2008 A (Web &amp; HPC)" GroupId="152" MinKeyId="368000000" MaxKeyId="380999999" IniFileName="Windows" Id="c448fa06-49d1-44ec-82bb-0085545c3b51" InvalidWinBuild="[]">
<Activate KmsItem="212a64dc-43b1-4d3d-a30c-2fc69d2095c6" />
<Activate KmsItem="33e156e4-b76f-4a52-9f91-f641dd95ac48" />
</CsvlkItem>
<CsvlkItem DisplayName="Office 2019" VlmcsdIndex="5" GroupId="206" MinKeyId="666000000" MaxKeyId="685999999" IniFileName="Office2019" EPid="06401-00206-678-008369-03-1033-9600.0000-2802018" Id="70512334-47b4-44db-a233-be5ea33b914c" InvalidWinBuild="[0,1]">
<Activate KmsItem="617d9eb1-ef36-4f82-86e0-a65ae07b96c6" />
</CsvlkItem>
<CsvlkItem DisplayName="Office 2016" VlmcsdIndex="3" GroupId="206" MinKeyId="437000000" MaxKeyId="458999999" IniFileName="Office2016" EPid="06401-00206-456-865118-03-1033-9600.0000-2802018" Id="98ebfe73-2084-4c97-932c-c0cd1643bea7" InvalidWinBuild="[0]">
<Activate KmsItem="85b5f61b-320b-4be3-814a-b76b2bfafc82" />
</CsvlkItem>
<CsvlkItem DisplayName="Office 2013" VlmcsdIndex="2" GroupId="206" MinKeyId="234000000" MaxKeyId="255999999" IniFileName="Office2013" EPid="06401-00206-243-662026-03-1033-9600.0000-2802018" Id="2e28138a-847f-42bc-9752-61b03fff33cd" InvalidWinBuild="[]">
<Activate KmsItem="e6a6f1bf-9d40-40c3-aa9f-c77ba21578c0" />
</CsvlkItem>
<CsvlkItem DisplayName="Office 2010" VlmcsdIndex="1" GroupId="96" MinKeyId="199000000" MaxKeyId="217999999" IniFileName="Office2010" EPid="06401-00096-208-497764-03-1033-9600.0000-2802018" Id="bfe7a195-4f8f-4f0b-a622-cf13c7d16864" InvalidWinBuild="[]">
<Activate KmsItem="e85af946-2e25-47b7-83e1-bebcebeac611" />
</CsvlkItem>
</CsvlkItems>
<AppItems>
<AppItem DisplayName="Windows" VlmcsdIndex="0" Id="55c92734-d682-4d71-983e-d6ec3f16059f" MinActiveClients="50">
<KmsItem DisplayName="Windows Server 2019" Id="8449b1fb-f0ea-497a-99ab-66ca96e9a0f5" DefaultKmsProtocol="6.0" NCountPolicy="5">
<SkuItem DisplayName="Windows Server 2019 ARM64" Id="8de8eb62-bbe0-40ac-ac17-f75595071ea3" Gvlk="GRFBW-QNDC4-6QBHG-CCK3B-2PR88" />
<SkuItem DisplayName="Windows Server 2019 Azure Core" Id="a99cc1f0-7719-4306-9645-294102fbff95" Gvlk="FDNH6-VW9RW-BXPJ7-4XTYG-239TB" />
<SkuItem DisplayName="Windows Server 2019 Datacenter" Id="34e1ae55-27f8-4950-8877-7a03be5fb181" Gvlk="WMDGN-G9PQG-XVVXX-R3X43-63DFG" />
<SkuItem DisplayName="Windows Server 2019 Essentials" Id="034d3cbb-5d4b-4245-b3f8-f84571314078" Gvlk="WVDHN-86M7X-466P6-VHXV7-YY726" />
<SkuItem DisplayName="Windows Server 2019 Standard" Id="de32eafd-aaee-4662-9444-c1befb41bde2" Gvlk="N69G4-B89J2-4G8F4-WWYCC-J464C" />
<SkuItem DisplayName="Windows Server 2019 Datacenter (Semi-Annual Channel v.1809)" Id="90c362e5-0da1-4bfd-b53b-b87d309ade43" Gvlk="6NMRW-2C8FM-D24W7-TQWMY-CWH2D" />
<SkuItem DisplayName="Windows Server 2019 Standard (Semi-Annual Channel v.1809)" Id="73e3957c-fc0c-400d-9184-5f7b6f2eb409" Gvlk="N2KJX-J94YW-TQVFB-DG9YT-724CC" />
</KmsItem>
<KmsItem DisplayName="Windows 10 2019 (Volume)" Id="11b15659-e603-4cf1-9c1f-f0ec01b81888" DefaultKmsProtocol="6.0" NCountPolicy="25">
<SkuItem DisplayName="Windows 10 Enterprise LTSC 2019" Id="32d2fab3-e4a8-42c2-923b-4bf4fd13e6ee" Gvlk="M7XTQ-FN8P6-TTKYV-9D4CC-J462D" />
<SkuItem DisplayName="Windows 10 Enterprise LTSC 2019 N" Id="7103a333-b8c8-49cc-93ce-d37c09687f92" Gvlk="92NFX-8DJQP-P6BBQ-THF9C-7CG2H" />
</KmsItem>
<KmsItem DisplayName="Windows 10 Unknown (Volume)" Id="d27cd636-1962-44e9-8b4f-27b6c23efb85" DefaultKmsProtocol="6.0" NCountPolicy="25">
</KmsItem>
<KmsItem DisplayName="Windows 10 China Government" Id="7ba0bf23-d0f5-4072-91d9-d55af5a481b6" CanMapToDefaultCsvlk="false" DefaultKmsProtocol="6.0" NCountPolicy="25">
<SkuItem DisplayName="Windows 10 Enterprise G" Id="e0b2d383-d112-413f-8a80-97f373a5820c" Gvlk="YYVX9-NTFWV-6MDM3-9PT4T-4M68B" />
<SkuItem DisplayName="Windows 10 Enterprise GN" Id="e38454fb-41a4-4f59-a5dc-25080e354730" Gvlk="44RPN-FTY23-9VTTB-MP9BX-T84FV" />
</KmsItem>
<KmsItem DisplayName="Windows 10 2016 (Volume)" Id="969fe3c0-a3ec-491a-9f25-423605deb365" DefaultKmsProtocol="6.0" NCountPolicy="25">
<SkuItem DisplayName="Windows 10 Enterprise 2016 LTSB" Id="2d5a5a60-3040-48bf-beb0-fcd770c20ce0" Gvlk="DCPHK-NFMTC-H88MJ-PFHPY-QJ4BJ" />
<SkuItem DisplayName="Windows 10 Enterprise 2016 LTSB N" Id="9f776d83-7156-45b2-8a5c-359b9c9f22a3" Gvlk="QFFDN-GRT3P-VKWWX-X7T3R-8B639" />
</KmsItem>
<KmsItem DisplayName="Windows 10 (Retail)" Id="e1c51358-fe3e-4203-a4a2-3b6b20c9734e" IsRetail="true" DefaultKmsProtocol="6.0" NCountPolicy="25">
<SkuItem DisplayName="Windows 10 Home / Core" Id="58e97c99-f377-4ef1-81d5-4ad5522b5fd8" Gvlk="TX9XD-98N7V-6WMQ6-BX7FG-H8Q99" />
<SkuItem DisplayName="Windows 10 Home / Core Country Specific" Id="a9107544-f4a0-4053-a96a-1479abdef912" Gvlk="PVMJN-6DFY6-9CCP6-7BKTT-D3WVR" />
<SkuItem DisplayName="Windows 10 Home / Core N" Id="7b9e1751-a8da-4f75-9560-5fadfe3d8e38" Gvlk="3KHY7-WNT83-DGQKR-F7HPR-844BM" />
<SkuItem DisplayName="Windows 10 Home / Core Single Language" Id="cd918a57-a41b-4c82-8dce-1a538e221a83" Gvlk="7HNRX-D7KGG-3K4RQ-4WPJ4-YTDFH" />
</KmsItem>
<KmsItem DisplayName="Windows 10 2015 (Volume)" Id="58e2134f-8e11-4d17-9cb2-91069c151148" DefaultKmsProtocol="6.0" NCountPolicy="25">
<SkuItem DisplayName="Windows 10 Education" Id="e0c42288-980c-4788-a014-c080d2e1926e" Gvlk="NW6C2-QMPVW-D7KKK-3GKT6-VCFB2" />
<SkuItem DisplayName="Windows 10 Education N" Id="3c102355-d027-42c6-ad23-2e7ef8a02585" Gvlk="2WH4N-8QGBV-H22JP-CT43Q-MDWWJ" />
<SkuItem DisplayName="Windows 10 Enterprise" Id="73111121-5638-40f6-bc11-f1d7b0d64300" Gvlk="NPPR9-FWDCX-D2C8J-H872K-2YT43" />
<SkuItem DisplayName="Windows 10 Enterprise 2015 LTSB" Id="7b51a46c-0c04-4e8f-9af4-8496cca90d5e" Gvlk="WNMTR-4C88C-JK8YV-HQ7T2-76DF9" />
<SkuItem DisplayName="Windows 10 Enterprise 2015 LTSB N" Id="87b838b7-41b6-4590-8318-5797951d8529" Gvlk="2F77B-TNFGY-69QQF-B8YKP-D69TJ" />
<SkuItem DisplayName="Windows 10 Enterprise N" Id="e272e3e2-732f-4c65-a8f0-484747d0d947" Gvlk="DPH2V-TTNVB-4X9Q3-TJR4H-KHJW4" />
<SkuItem DisplayName="Windows 10 Professional Workstation" Id="82bbc092-bc50-4e16-8e18-b74fc486aec3" Gvlk="NRG8B-VKK3Q-CXVCJ-9G2XF-6Q84J" />
<SkuItem DisplayName="Windows 10 Professional Workstation N" Id="4b1571d3-bafb-4b40-8087-a961be2caf65" Gvlk="9FNHH-K3HBT-3W4TD-6383H-6XYWF" />
<SkuItem DisplayName="Windows 10 Professional" Id="2de67392-b7a7-462a-b1ca-108dd189f588" Gvlk="W269N-WFGWX-YVC9B-4J6C9-T83GX" />
<SkuItem DisplayName="Windows 10 Professional Education" Id="3f1afc82-f8ac-4f6c-8005-1d233e606eee" Gvlk="6TP4R-GNPTD-KYYHQ-7B7DP-J447Y" />
<SkuItem DisplayName="Windows 10 Professional Education N" Id="5300b18c-2e33-4dc2-8291-47ffcec746dd" Gvlk="YVWGF-BXNMC-HTQYQ-CPQ99-66QFC" />
<SkuItem DisplayName="Windows 10 Professional N" Id="a80b5abf-76ad-428b-b05d-a47d2dffeebf" Gvlk="MH37W-N47XK-V7XM9-C7227-GCQG9" />
<SkuItem DisplayName="Windows 10 Professional [Preview]" Id="ff808201-fec6-4fd4-ae16-abbddade5706" Gvlk="XQHPH-N4D9W-M8P96-DPDFP-TMVPY" IsGeneratedGvlk="true" />
<SkuItem DisplayName="Windows 10 Enterprise [Preview]" Id="43f2ab05-7c87-4d56-b27c-44d0f9a3dabd" Gvlk="QNMXX-GCD3W-TCCT4-872RV-G6P4J" IsGeneratedGvlk="true" />
<SkuItem DisplayName="Windows 10 Enterprise for Virtual Desktops" Id="ec868e65-fadf-4759-b23e-93fe37f2cc29" Gvlk="CPWHC-NT2C7-VYW78-DHDB2-PG3GK" />
<SkuItem DisplayName="Windows 10 Remote Server" Id="e4db50ea-bda1-4566-b047-0ca50abc6f07" Gvlk="7NBT4-WGBQX-MP4H7-QXFF8-YP3KX" />
<SkuItem DisplayName="Windows 10 S (Lean)" Id="0df4f814-3f57-4b8b-9a9d-fddadcd69fac" Gvlk="NBTWJ-3DR69-3C4V8-C26MC-GQ9M6" />
</KmsItem>
<KmsItem DisplayName="Windows 7" Id="7fde5219-fbfa-484a-82c9-34d1ad53e856" DefaultKmsProtocol="4.0" NCountPolicy="25">
<SkuItem DisplayName="Windows 7 Enterprise" Id="ae2ee509-1b34-41c0-acb7-6d4650168915" Gvlk="33PXH-7Y6KF-2VJC9-XBBR8-HVTHH" />
<SkuItem DisplayName="Windows 7 Enterprise E" Id="46bbed08-9c7b-48fc-a614-95250573f4ea" Gvlk="C29WB-22CC8-VJ326-GHFJW-H9DH4" />
<SkuItem DisplayName="Windows 7 Enterprise N" Id="1cb6d605-11b3-4e14-bb30-da91c8e3983a" Gvlk="YDRBP-3D83W-TY26F-D46B2-XCKRJ" />
<SkuItem DisplayName="Windows 7 Professional" Id="b92e9980-b9d5-4821-9c94-140f632f6312" Gvlk="FJ82H-XT6CR-J8D7P-XQJJ2-GPDD4" />
<SkuItem DisplayName="Windows 7 Professional E" Id="5a041529-fef8-4d07-b06f-b59b573b32d2" Gvlk="W82YF-2Q76Y-63HXB-FGJG9-GF7QX" />
<SkuItem DisplayName="Windows 7 Professional N" Id="54a09a0d-d57b-4c10-8b69-a842d6590ad5" Gvlk="MRPKT-YTG23-K7D7T-X2JMM-QY7MG" />
<SkuItem DisplayName="Windows 7 Embedded POSReady" Id="db537896-376f-48ae-a492-53d0547773d0" Gvlk="YBYF6-BHCR3-JPKRB-CDW7B-F9BK4" />
<SkuItem DisplayName="Windows 7 Embedded Standard" Id="e1a8296a-db37-44d1-8cce-7bc961d59c54" Gvlk="XGY72-BRBBT-FF8MH-2GG8H-W7KCW" />
<SkuItem DisplayName="Windows 7 ThinPC" Id="aa6dd3aa-c2b4-40e2-a544-a6bbb3f5c395" Gvlk="73KQT-CD9G6-K7TQG-66MRP-CQ22C" />
</KmsItem>
<KmsItem DisplayName="Windows 8 (Retail)" Id="bbb97b3b-8ca4-4a28-9717-89fabd42c4ac" IsRetail="true" DefaultKmsProtocol="5.0" NCountPolicy="25">
<SkuItem DisplayName="Windows 8 Core / Server 2012" Id="c04ed6bf-55c8-4b47-9f8e-5a1f31ceee60" Gvlk="BN3D2-R7TKB-3YPBD-8DRP2-27GG4" />
<SkuItem DisplayName="Windows 8 Core / Server 2012 Country Specific" Id="9d5584a2-2d85-419a-982c-a00888bb9ddf" Gvlk="4K36P-JN4VD-GDC6V-KDT89-DYFKP" />
<SkuItem DisplayName="Windows 8 Core / Server 2012 N" Id="197390a0-65f6-4a95-bdc4-55d58a3b0253" Gvlk="8N2M2-HWPGY-7PGT9-HGDD8-GVGGY" />
<SkuItem DisplayName="Windows 8 Core / Server 2012 Single Language" Id="8860fcd4-a77b-4a20-9045-a150ff11d609" Gvlk="2WN2H-YGCQR-KFX6K-CD6TF-84YXQ" />
<SkuItem DisplayName="Windows 8 Professional WMC" Id="a00018a3-f20f-4632-bf7c-8daa5351c914" Gvlk="GNBB8-YVD74-QJHX6-27H4K-8QHDG" />
</KmsItem>
<KmsItem DisplayName="Windows 8 (Volume)" Id="3c40b358-5948-45af-923b-53d21fcc7e79" DefaultKmsProtocol="5.0" NCountPolicy="25">
<SkuItem DisplayName="Windows 8 Embedded Industry Professional" Id="10018baf-ce21-4060-80bd-47fe74ed4dab" Gvlk="RYXVT-BNQG7-VD29F-DBMRY-HT73M" />
<SkuItem DisplayName="Windows 8 Embedded Industry Enterprise" Id="18db1848-12e0-4167-b9d7-da7fcda507db" Gvlk="NKB3R-R2F8T-3XCDP-7Q2KW-XWYQ2" />
<SkuItem DisplayName="Windows 8 Enterprise" Id="458e1bec-837a-45f6-b9d5-925ed5d299de" Gvlk="32JNW-9KQ84-P47T8-D8GGY-CWCK7" />
<SkuItem DisplayName="Windows 8 Enterprise N" Id="e14997e7-800a-4cf7-ad10-de4b45b578db" Gvlk="JMNMF-RHW7P-DMY6X-RF3DR-X2BQT" />
<SkuItem DisplayName="Windows 8 Professional" Id="a98bcd6d-5343-4603-8afe-5908e4611112" Gvlk="NG4HW-VH26C-733KW-K6F98-J8CK4" />
<SkuItem DisplayName="Windows 8 Professional N" Id="ebf245c1-29a8-4daf-9cb1-38dfc608a8c8" Gvlk="XCVCF-2NXM9-723PB-MHCB7-2RYQQ" />
</KmsItem>
<KmsItem DisplayName="Windows 8.1 (Retail)" Id="6d646890-3606-461a-86ab-598bb84ace82" IsRetail="true" DefaultKmsProtocol="6.0" NCountPolicy="25">
<SkuItem DisplayName="Windows 8.1 Core" Id="fe1c3238-432a-43a1-8e25-97e7d1ef10f3" Gvlk="M9Q9P-WNJJT-6PXPY-DWX8H-6XWKK" />
<SkuItem DisplayName="Windows 8.1 Core ARM" Id="ffee456a-cd87-4390-8e07-16146c672fd0" Gvlk="XYTND-K6QKT-K2MRH-66RTM-43JKP" />
<SkuItem DisplayName="Windows 8.1 Core Country Specific" Id="db78b74f-ef1c-4892-abfe-1e66b8231df6" Gvlk="NCTT7-2RGK8-WMHRF-RY7YQ-JTXG3" />
<SkuItem DisplayName="Windows 8.1 Core N" Id="78558a64-dc19-43fe-a0d0-8075b2a370a3" Gvlk="7B9N3-D94CG-YTVHR-QBPX3-RJP64" />
<SkuItem DisplayName="Windows 8.1 Core Single Language" Id="c72c6a1d-f252-4e7e-bdd1-3fca342acb35" Gvlk="BB6NG-PQ82V-VRDPW-8XVD2-V8P66" />
<SkuItem DisplayName="Windows 8.1 Professional Student" Id="e58d87b5-8126-4580-80fb-861b22f79296" Gvlk="MX3RK-9HNGX-K3QKC-6PJ3F-W8D7B" IsGeneratedGvlk="true" />
<SkuItem DisplayName="Windows 8.1 Professional Student N" Id="cab491c7-a918-4f60-b502-dab75e334f40" Gvlk="TNFGH-2R6PB-8XM3K-QYHX2-J4296" IsGeneratedGvlk="true" />
<SkuItem DisplayName="Windows 8.1 Professional WMC" Id="096ce63d-4fac-48a9-82a9-61ae9e800e5f" Gvlk="789NJ-TQK6T-6XTH8-J39CJ-J8D3P" />
</KmsItem>
<KmsItem DisplayName="Windows 8.1 (Volume)" Id="cb8fc780-2c05-495a-9710-85afffc904d7" DefaultKmsProtocol="6.0" NCountPolicy="25">
<SkuItem DisplayName="Windows 8.1 Core Connected" Id="e9942b32-2e55-4197-b0bd-5ff58cba8860" Gvlk="3PY8R-QHNP9-W7XQD-G6DPH-3J2C9" IsGeneratedGvlk="true" />
<SkuItem DisplayName="Windows 8.1 Core Connected Country Specific" Id="ba998212-460a-44db-bfb5-71bf09d1c68b" Gvlk="R962J-37N87-9VVK2-WJ74P-XTMHR" IsGeneratedGvlk="true" />
<SkuItem DisplayName="Windows 8.1 Core Connected N" Id="c6ddecd6-2354-4c19-909b-306a3058484e" Gvlk="Q6HTR-N24GM-PMJFP-69CD8-2GXKR" IsGeneratedGvlk="true" />
<SkuItem DisplayName="Windows 8.1 Core Connected Single Language" Id="b8f5e3a3-ed33-4608-81e1-37d6c9dcfd9c" Gvlk="KF37N-VDV38-GRRTV-XH8X6-6F3BB" IsGeneratedGvlk="true" />
<SkuItem DisplayName="Windows 8.1 Enterprise" Id="81671aaf-79d1-4eb1-b004-8cbbe173afea" Gvlk="MHF9N-XY6XB-WVXMC-BTDCT-MKKG7" />
<SkuItem DisplayName="Windows 8.1 Enterprise N" Id="113e705c-fa49-48a4-beea-7dd879b46b14" Gvlk="TT4HM-HN7YT-62K67-RGRQJ-JFFXW" />
<SkuItem DisplayName="Windows 8.1 Professional" Id="c06b6981-d7fd-4a35-b7b4-054742b7af67" Gvlk="GCRJD-8NW9H-F2CDX-CCM8D-9D6T9" />
<SkuItem DisplayName="Windows 8.1 Professional N" Id="7476d79f-8e48-49b4-ab63-4d0b813a16e4" Gvlk="HMCNV-VVBFX-7HMBH-CTY9B-B4FXY" />
<SkuItem DisplayName="Windows 8.1 Embedded Industry Professional" Id="0ab82d54-47f4-4acb-818c-cc5bf0ecb649" Gvlk="NMMPB-38DD4-R2823-62W8D-VXKJB" />
<SkuItem DisplayName="Windows 8.1 Embedded Industry Automotive" Id="f7e88590-dfc7-4c78-bccb-6f3865b99d1a" Gvlk="VHXM3-NR6FT-RY6RT-CK882-KW2CJ" />
<SkuItem DisplayName="Windows 8.1 Embedded Industry Enterprise" Id="cd4e2d9f-5059-4a50-a92d-05d5bb1267c7" Gvlk="FNFKF-PWTVT-9RC8H-32HB2-JB34X" />
</KmsItem>
<KmsItem DisplayName="Windows Preview" Id="5f94a0bb-d5a0-4081-a685-5819418b2fe0" DefaultKmsProtocol="5.0" NCountPolicy="25">
<SkuItem DisplayName="Windows 8.1 Enterprise [Preview]" Id="cde952c7-2f96-4d9d-8f2b-2d349f64fc51" Gvlk="2MP7K-98NK8-WPVF3-Q2WDG-VMD98" />
<SkuItem DisplayName="Windows 8.1 Professional (Blue) [Preview]" Id="a4383e6b-dada-423d-a43d-f25678429676" Gvlk="MTWNQ-CKDHJ-3HXW9-Q2PFX-WB2HQ" />
<SkuItem DisplayName="Windows 8 Professional WMC [Preview]" Id="cf59a07b-1a2a-4be0-bfe0-423b5823e663" Gvlk="MY4N9-TGH34-4X4VY-8FG2T-RRDPV" />
<SkuItem DisplayName="Windows 8.x [Preview]" Id="2b9c337f-7a1d-4271-90a3-c6855a2b8a1c" Gvlk="MPWP3-DXNP9-BRD79-W8WFP-3YFJ6" />
<SkuItem DisplayName="Windows 8.x ARM [Preview]" Id="631ead72-a8ab-4df8-bbdf-372029989bdd" />
</KmsItem>
<KmsItem DisplayName="Windows Server 2008 A (Web and HPC)" Id="33e156e4-b76f-4a52-9f91-f641dd95ac48" DefaultKmsProtocol="4.0" NCountPolicy="5">
<SkuItem DisplayName="Windows Server 2008 Web" Id="ddfa9f7c-f09e-40b9-8c1a-be877a9a7f4b" Gvlk="WYR28-R7TFJ-3X2YQ-YCY4H-M249D" />
<SkuItem DisplayName="Windows Server 2008 Compute Cluster" Id="7afb1156-2c1d-40fc-b260-aab7442b62fe" Gvlk="RCTX3-KWVHP-BR6TB-RB6DM-6X7HP" />
</KmsItem>
<KmsItem DisplayName="Windows Server 2008 B (Standard and Enterprise)" Id="8fe53387-3087-4447-8985-f75132215ac9" DefaultKmsProtocol="4.0" NCountPolicy="5">
<SkuItem DisplayName="Windows Server 2008 Standard" Id="ad2542d4-9154-4c6d-8a44-30f11ee96989" Gvlk="TM24T-X9RMF-VWXK6-X8JC9-BFGM2" />
<SkuItem DisplayName="Windows Server 2008 Standard without Hyper-V" Id="2401e3d0-c50a-4b58-87b2-7e794b7d2607" Gvlk="W7VD6-7JFBR-RX26B-YKQ3Y-6FFFJ" />
<SkuItem DisplayName="Windows Server 2008 Enterprise" Id="c1af4d90-d1bc-44ca-85d4-003ba33db3b9" Gvlk="YQGMW-MPWTJ-34KDK-48M3W-X4Q6V" />
<SkuItem DisplayName="Windows Server 2008 Enterprise without Hyper-V" Id="8198490a-add0-47b2-b3ba-316b12d647b4" Gvlk="39BXF-X8Q23-P2WWT-38T2F-G3FPG" />
</KmsItem>
<KmsItem DisplayName="Windows Server 2008 C (Datacenter)" Id="8a21fdf3-cbc5-44eb-83f3-fe284e6680a7" DefaultKmsProtocol="4.0" NCountPolicy="5">
<SkuItem DisplayName="Windows Server 2008 Datacenter" Id="68b6e220-cf09-466b-92d3-45cd964b9509" Gvlk="7M67G-PC374-GR742-YH8V4-TCBY3" />
<SkuItem DisplayName="Windows Server 2008 Datacenter without Hyper-V" Id="fd09ef77-5647-4eff-809c-af2b64659a45" Gvlk="22XQ2-VRXRG-P8D42-K34TD-G3QQC" />
<SkuItem DisplayName="Windows Server 2008 for Itanium" Id="01ef176b-3e0d-422a-b4f8-4ea880035e8f" Gvlk="4DWFP-JF3DJ-B7DTH-78FJB-PDRHK" />
</KmsItem>
<KmsItem DisplayName="Windows Server 2008 R2 A (Web and HPC)" Id="0fc6ccaf-ff0e-4fae-9d08-4370785bf7ed" DefaultKmsProtocol="4.0" NCountPolicy="5">
<SkuItem DisplayName="Windows MultiPoint Server 2010" Id="f772515c-0e87-48d5-a676-e6962c3e1195" Gvlk="736RG-XDKJK-V34PF-BHK87-J6X3K" />
<SkuItem DisplayName="Windows Server 2008 R2 Web" Id="a78b8bd9-8017-4df5-b86a-09f756affa7c" Gvlk="6TPJF-RBVHG-WBW2R-86QPH-6RTM4" />
<SkuItem DisplayName="Windows Server 2008 R2 HPC Edition" Id="cda18cf3-c196-46ad-b289-60c072869994" Gvlk="TT8MH-CG224-D3D7Q-498W2-9QCTX" />
</KmsItem>
<KmsItem DisplayName="Windows Server 2008 R2 B (Standard and Enterprise)" Id="ca87f5b6-cd46-40c0-b06d-8ecd57a4373f" DefaultKmsProtocol="4.0" NCountPolicy="5">
<SkuItem DisplayName="Windows Server 2008 R2 Standard" Id="68531fb9-5511-4989-97be-d11a0f55633f" Gvlk="YC6KT-GKW9T-YTKYR-T4X34-R7VHC" />
<SkuItem DisplayName="Windows Server 2008 R2 Enterprise" Id="620e2b3d-09e7-42fd-802a-17a13652fe7a" Gvlk="489J6-VHDMP-X63PK-3K798-CPX3Y" />
</KmsItem>
<KmsItem DisplayName="Windows Server 2008 R2 C (Datacenter)" Id="b2ca2689-a9a8-42d7-938d-cf8e9f201958" DefaultKmsProtocol="4.0" NCountPolicy="5">
<SkuItem DisplayName="Windows Server 2008 R2 Datacenter" Id="7482e61b-c589-4b7f-8ecc-46d455ac3b87" Gvlk="74YFP-3QFB3-KQT8W-PMXWJ-7M648" />
<SkuItem DisplayName="Windows Server 2008 R2 for Itanium Enterprise" Id="8a26851c-1c7e-48d3-a687-fbca9b9ac16b" Gvlk="GT63C-RJFQ3-4GMB6-BRFB9-CB83V" />
</KmsItem>
<KmsItem DisplayName="Windows Server 2012" Id="8665cb71-468c-4aa3-a337-cb9bc9d5eaac" DefaultKmsProtocol="5.0" NCountPolicy="5">
<SkuItem DisplayName="Windows Server 2012 Datacenter" Id="d3643d60-0c42-412d-a7d6-52e6635327f6" Gvlk="48HP8-DN98B-MYWDG-T2DCC-8W83P" />
<SkuItem DisplayName="Windows Server 2012 MultiPoint Premium" Id="95fd1c83-7df5-494a-be8b-1300e1c9d1cd" Gvlk="XNH6W-2V9GX-RGJ4K-Y8X6F-QGJ2G" />
<SkuItem DisplayName="Windows Server 2012 MultiPoint Standard" Id="7d5486c7-e120-4771-b7f1-7b56c6d3170c" Gvlk="HM7DN-YVMH3-46JC3-XYTG7-CYQJJ" />
<SkuItem DisplayName="Windows Server 2012 Standard" Id="f0f5ec41-0d55-4732-af02-440a44a3cf0f" Gvlk="XC9B7-NBPP2-83J2H-RHMBY-92BT4" />
</KmsItem>
<KmsItem DisplayName="Windows Server 2012 R2" Id="8456efd3-0c04-4089-8740-5b7238535a65" DefaultKmsProtocol="6.0" NCountPolicy="5">
<SkuItem DisplayName="Windows Server 2012 R2 Cloud Storage" Id="b743a2be-68d4-4dd3-af32-92425b7bb623" Gvlk="3NPTF-33KPT-GGBPR-YX76B-39KDD" />
<SkuItem DisplayName="Windows Server 2012 R2 Datacenter" Id="00091344-1ea4-4f37-b789-01750ba6988c" Gvlk="W3GGN-FT8W3-Y4M27-J84CP-Q3VJ9" />
<SkuItem DisplayName="Windows Server 2012 R2 Essentials" Id="21db6ba4-9a7b-4a14-9e29-64a60c59301d" Gvlk="KNC87-3J2TX-XB4WP-VCPJV-M4FWM" />
<SkuItem DisplayName="Windows Server 2012 R2 Standard" Id="b3ca044e-a358-4d68-9883-aaa2941aca99" Gvlk="D2N9P-3P6X9-2R39C-7RTCD-MDVJX" />
</KmsItem>
<KmsItem DisplayName="Windows Server 2016" Id="6e9fc069-257d-4bc4-b4a7-750514d32743" DefaultKmsProtocol="6.0" NCountPolicy="5">
<SkuItem DisplayName="Windows Server 2016 Azure Core" Id="3dbf341b-5f6c-4fa7-b936-699dce9e263f" Gvlk="VP34G-4NPPG-79JTQ-864T4-R3MQX" />
<SkuItem DisplayName="Windows Server 2016 Cloud Storage" Id="7b4433f4-b1e7-4788-895a-c45378d38253" Gvlk="QN4C6-GBJD2-FB422-GHWJK-GJG2R" />
<SkuItem DisplayName="Windows Server 2016 Datacenter" Id="21c56779-b449-4d20-adfc-eece0e1ad74b" Gvlk="CB7KF-BWN84-R7R2Y-793K2-8XDDG" />
<SkuItem DisplayName="Windows Server 2016 Essentials" Id="2b5a1b0f-a5ab-4c54-ac2f-a6d94824a283" Gvlk="JCKRF-N37P4-C2D82-9YXRT-4M63B" />
<SkuItem DisplayName="Windows Server 2016 Standard" Id="8c1c5410-9f39-4805-8c9d-63a07706358f" Gvlk="WC2BQ-8NRM3-FDDYY-2BFGV-KHKQY" />
<SkuItem DisplayName="Windows Server 2016 ARM64" Id="43d9af6e-5e86-4be8-a797-d072a046896c" Gvlk="K9FYF-G6NCK-73M32-XMVPY-F9DRR" />
<SkuItem DisplayName="Windows Server 2016 Datacenter (Semi-Annual Channel v.1803)" Id="e49c08e7-da82-42f8-bde2-b570fbcae76c" Gvlk="2HXDN-KRXHB-GPYC7-YCKFJ-7FVDG" />
<SkuItem DisplayName="Windows Server 2016 Standard (Semi-Annual Channel v.1803)" Id="61c5ef22-f14f-4553-a824-c4b31e84b100" Gvlk="PTXN8-JFHJM-4WC78-MPCBR-9W4KR" />
</KmsItem>
<KmsItem DisplayName="Windows Server Preview" Id="6d5f5270-31ac-433e-b90a-39892923c657" IsPreview="true" DefaultKmsProtocol="6.0" NCountPolicy="5">
<SkuItem DisplayName="Windows Server 2016 Datacenter [Preview]" Id="ba947c44-d19d-4786-b6ae-22770bc94c54" Gvlk="VRDD2-NVGDP-K7QG8-69BR4-TVFHB" />
</KmsItem>
<KmsItem DisplayName="Windows Vista" Id="212a64dc-43b1-4d3d-a30c-2fc69d2095c6" DefaultKmsProtocol="4.0" NCountPolicy="25">
<SkuItem DisplayName="Windows Vista Business" Id="4f3d1606-3fea-4c01-be3c-8d671c401e3b" Gvlk="YFKBB-PQJJV-G996G-VWGXY-2V3X8" />
<SkuItem DisplayName="Windows Vista Business N" Id="2c682dc2-8b68-4f63-a165-ae291d4cf138" Gvlk="HMBQG-8H2RH-C77VX-27R82-VMQBT" />
<SkuItem DisplayName="Windows Vista Enterprise" Id="cfd8ff08-c0d7-452b-9f60-ef5c70c32094" Gvlk="VKK3X-68KWM-X2YGT-QR4M6-4BWMV" />
<SkuItem DisplayName="Windows Vista Enterprise N" Id="d4f54950-26f2-4fb4-ba21-ffab16afcade" Gvlk="VTC42-BM838-43QHV-84HX6-XJXKV" />
</KmsItem>
</AppItem>
<AppItem DisplayName="Office 14 (2010)" VlmcsdIndex="1" MinActiveClients="10" Id="59a52881-a989-479d-af46-f275c6370663">
<KmsItem DisplayName="Office 2010" Id="e85af946-2e25-47b7-83e1-bebcebeac611" CanMapToDefaultCsvlk="false" DefaultKmsProtocol="4.0" NCountPolicy="5">
<SkuItem DisplayName="Office Access 2010" Id="8ce7e872-188c-4b98-9d90-f8f90b7aad02" Gvlk="V7Y44-9T38C-R2VJK-666HK-T7DDX" />
<SkuItem DisplayName="Office Excel 2010" Id="cee5d470-6e3b-4fcc-8c2b-d17428568a9f" Gvlk="H62QG-HXVKF-PP4HP-66KMR-CW9BM" />
<SkuItem DisplayName="Office Groove (SharePoint Workspace) 2010" Id="8947d0b8-c33b-43e1-8c56-9b674c052832" Gvlk="QYYW6-QP4CB-MBV6G-HYMCJ-4T3J4" />
<SkuItem DisplayName="Office InfoPath 2010" Id="ca6b6639-4ad6-40ae-a575-14dee07f6430" Gvlk="K96W8-67RPQ-62T9Y-J8FQJ-BT37T" />
<SkuItem DisplayName="Office Mondo 1 2010" Id="09ed9640-f020-400a-acd8-d7d867dfd9c2" Gvlk="YBJTT-JG6MD-V9Q7P-DBKXJ-38W9R" />
<SkuItem DisplayName="Office Mondo 2 2010" Id="ef3d4e49-a53d-4d81-a2b1-2ca6c2556b2c" Gvlk="7TC2V-WXF6P-TD7RT-BQRXR-B8K32" />
<SkuItem DisplayName="Office OneNote 2010" Id="ab586f5c-5256-4632-962f-fefd8b49e6f4" Gvlk="Q4Y4M-RHWJM-PY37F-MTKWH-D3XHX" />
<SkuItem DisplayName="Office OutLook 2010" Id="ecb7c192-73ab-4ded-acf4-2399b095d0cc" Gvlk="7YDC2-CWM8M-RRTJC-8MDVC-X3DWQ" />
<SkuItem DisplayName="Office PowerPoint 2010" Id="45593b1d-dfb1-4e91-bbfb-2d5d0ce2227a" Gvlk="RC8FX-88JRY-3PF7C-X8P67-P4VTT" />
<SkuItem DisplayName="Office Professional Plus 2010" Id="6f327760-8c5c-417c-9b61-836a98287e0c" Gvlk="VYBBJ-TRJPB-QFQRF-QFT4D-H3GVB" />
<SkuItem DisplayName="Office Project Professional 2010" Id="df133ff7-bf14-4f95-afe3-7b48e7e331ef" Gvlk="YGX6F-PGV49-PGW3J-9BTGG-VHKC6" />
<SkuItem DisplayName="Office Project Standard 2010" Id="5dc7bf61-5ec9-4996-9ccb-df806a2d0efe" Gvlk="4HP3K-88W3F-W2K3D-6677X-F9PGB" />
<SkuItem DisplayName="Office Publisher 2010" Id="b50c4f75-599b-43e8-8dcd-1081a7967241" Gvlk="BFK7F-9MYHM-V68C7-DRQ66-83YTP" />
<SkuItem DisplayName="Office Small Business Basics 2010" Id="ea509e87-07a1-4a45-9edc-eba5a39f36af" Gvlk="D6QFG-VBYP2-XQHM7-J97RH-VVRCK" />
<SkuItem DisplayName="Office Standard 2010" Id="9da2a678-fb6b-4e67-ab84-60dd6a9c819a" Gvlk="V7QKV-4XVVR-XYV4D-F7DFM-8R6BM" />
<SkuItem DisplayName="Office Visio Premium 2010" Id="92236105-bb67-494f-94c7-7f7a607929bd" Gvlk="D9DWC-HPYVV-JGF4P-BTWQB-WX8BJ" />
<SkuItem DisplayName="Office Visio Professional 2010" Id="e558389c-83c3-4b29-adfe-5e4d7f46c358" Gvlk="7MCW8-VRQVK-G677T-PDJCM-Q8TCP" />
<SkuItem DisplayName="Office Visio Standard 2010" Id="9ed833ff-4f92-4f36-b370-8683a4f13275" Gvlk="767HD-QGMWX-8QTDB-9G3R2-KHFGJ" />
<SkuItem DisplayName="Office Word 2010" Id="2d0882e7-a4e7-423b-8ccc-70d91e0158b1" Gvlk="HVHB3-C6FV7-KQX9W-YQG79-CRY7T" />
</KmsItem>
</AppItem>
<AppItem DisplayName="Office 15 (2013) / 16 (2016) / 17 (2019)" VlmcsdIndex="5" MinActiveClients="10" Id="0ff1ce15-a989-479d-af46-f275c6370663">
<KmsItem DisplayName="Office 2013" Id="e6a6f1bf-9d40-40c3-aa9f-c77ba21578c0" CanMapToDefaultCsvlk="false" DefaultKmsProtocol="5.0" NCountPolicy="5">
<SkuItem DisplayName="Office Access 2013" Id="6ee7622c-18d8-4005-9fb7-92db644a279b" Gvlk="NG2JY-H4JBT-HQXYP-78QH9-4JM2D" />
<SkuItem DisplayName="Office Excel 2013" Id="f7461d52-7c2b-43b2-8744-ea958e0bd09a" Gvlk="VGPNG-Y7HQW-9RHP7-TKPV3-BG7GB" />
<SkuItem DisplayName="Office InfoPath 2013" Id="a30b8040-d68a-423f-b0b5-9ce292ea5a8f" Gvlk="DKT8B-N7VXH-D963P-Q4PHY-F8894" />
<SkuItem DisplayName="Office Lync 2013" Id="1b9f11e3-c85c-4e1b-bb29-879ad2c909e3" Gvlk="2MG3G-3BNTT-3MFW9-KDQW3-TCK7R" />
<SkuItem DisplayName="Office Mondo 2013" Id="dc981c6b-fc8e-420f-aa43-f8f33e5c0923" Gvlk="42QTK-RN8M7-J3C4G-BBGYM-88CYV" />
<SkuItem DisplayName="Office OneNote 2013" Id="efe1f3e6-aea2-4144-a208-32aa872b6545" Gvlk="TGN6P-8MMBC-37P2F-XHXXK-P34VW" />
<SkuItem DisplayName="Office OutLook 2013" Id="771c3afa-50c5-443f-b151-ff2546d863a0" Gvlk="QPN8Q-BJBTJ-334K3-93TGY-2PMBT" />
<SkuItem DisplayName="Office PowerPoint 2013" Id="8c762649-97d1-4953-ad27-b7e2c25b972e" Gvlk="4NT99-8RJFH-Q2VDH-KYG2C-4RD4F" />
<SkuItem DisplayName="Office Professional Plus 2013" Id="b322da9c-a2e2-4058-9e4e-f59a6970bd69" Gvlk="YC7DK-G2NP3-2QQC3-J6H88-GVGXT" />
<SkuItem DisplayName="Office Project Professional 2013" Id="4a5d124a-e620-44ba-b6ff-658961b33b9a" Gvlk="FN8TT-7WMH6-2D4X9-M337T-2342K" />
<SkuItem DisplayName="Office Project Standard 2013" Id="427a28d1-d17c-4abf-b717-32c780ba6f07" Gvlk="6NTH3-CW976-3G3Y2-JK3TX-8QHTT" />
<SkuItem DisplayName="Office Publisher 2013" Id="00c79ff1-6850-443d-bf61-71cde0de305f" Gvlk="PN2WF-29XG2-T9HJ7-JQPJR-FCXK4" />
<SkuItem DisplayName="Office Standard 2013" Id="b13afb38-cd79-4ae5-9f7f-eed058d750ca" Gvlk="KBKQT-2NMXY-JJWGP-M62JB-92CD4" />
<SkuItem DisplayName="Office Visio Professional 2013" Id="e13ac10e-75d0-4aff-a0cd-764982cf541c" Gvlk="C2FG9-N6J68-H8BTJ-BW3QX-RM3B3" />
<SkuItem DisplayName="Office Visio Standard 2013" Id="ac4efaf0-f81f-4f61-bdf7-ea32b02ab117" Gvlk="J484Y-4NKBF-W2HMG-DBMJC-PGWR7" />
<SkuItem DisplayName="Office Word 2013" Id="d9f5b1c6-5386-495a-88f9-9ad6b41ac9b3" Gvlk="6Q7VD-NX8JD-WJ2VH-88V73-4GBJ7" />
</KmsItem>
<KmsItem DisplayName="Office 2013 [Pre-Release]" Id="aa4c7968-b9da-4680-92b6-acb25e2f866c" IsPreview="true" CanMapToDefaultCsvlk="false" DefaultKmsProtocol="5.0" NCountPolicy="5">
<SkuItem DisplayName="Office Access 2013 [Pre-Release]" Id="44b538e2-fb34-4732-81e4-644c17d2e746" Gvlk="DJBH8-RGN7Q-836KD-DMP3M-DM9MF" />
<SkuItem DisplayName="Office Excel 2013 [Pre-Release]" Id="9373bfa0-97b3-4587-ab73-30934461d55c" Gvlk="Q3BNP-3WXDT-GG8HF-24KMW-HMDBK" />
<SkuItem DisplayName="Office Groove (SharePoint Workspace) 2013 [Pre-Release]" Id="aa286eb4-556f-4eeb-967c-c1b771b7673e" Gvlk="WVCGG-NK4FG-7XKXM-BD4WF-3C624" />
<SkuItem DisplayName="Office InfoPath 2013 [Pre-Release]" Id="7ccc8256-fbaa-49c6-b2a9-f5afb4257cd2" Gvlk="7KPJJ-N8TT7-CK3KR-QTV98-YPVXQ" />
<SkuItem DisplayName="Office Lync 2013 [Pre-Release]" Id="c53dfe17-cc00-4967-b188-a088a965494d" Gvlk="XNVD3-RYC7T-7R6BT-WX6CF-8BYH7" />
<SkuItem DisplayName="Office Mondo 2013 [Pre-Release]" Id="2816a87d-e1ed-4097-b311-e2341c57b179" Gvlk="GCGCN-6FJRM-TR9Q3-BGMWJ-78KQV" />
<SkuItem DisplayName="Office OneNote 2013 [Pre-Release]" Id="67c0f908-184f-4f64-8250-12db797ab3c3" Gvlk="VYNYX-8GPBC-7FQMD-D6B7B-7MDFD" />
<SkuItem DisplayName="Office Outlook 2013 [Pre-Release]" Id="7bce4e7a-dd80-4682-98fa-f993725803d2" Gvlk="X2KNB-FRRG2-WXDPH-739DM-DM9RH" />
<SkuItem DisplayName="Office PowerPoint 2013 [Pre-Release]" Id="1ec10c0a-54f6-453e-b85a-6fa1bbfea9b7" Gvlk="B8CT8-BTNFQ-XQXBK-BFWV8-HMDFQ" />
<SkuItem DisplayName="Office Professional Plus 2013 [Pre-Release]" Id="87d2b5bf-d47b-41fb-af62-71c382f5cc85" Gvlk="PGD67-JN23K-JGVWV-KTHP4-GXR9G" />
<SkuItem DisplayName="Office Project Professional 2013 [Pre-Release]" Id="3cfe50a9-0e03-4b29-9754-9f193f07b71f" Gvlk="NFKVM-DVG7F-TYWYR-3RPHY-F872K" />
<SkuItem DisplayName="Office Project Standard 2013 [Pre-Release]" Id="39e49e57-ae68-4ee3-b098-26480df3da96" Gvlk="N89QF-GGB8J-BKD28-C4V28-W4XTK" />
<SkuItem DisplayName="Office Publisher 2013 [Pre-Release]" Id="15aa2117-8f79-49a8-8317-753026d6a054" Gvlk="NB67P-J8XP4-XDK9B-V73VH-M4CKR" />
<SkuItem DisplayName="Office Visio Professional 2013 [Pre-Release]" Id="cfbfd60e-0b5f-427d-917c-a4df42a80e44" Gvlk="B3C7Q-D6NH2-2VRFW-HHWDG-FVQB6" />
<SkuItem DisplayName="Office Visio Standard 2013 [Pre-Release]" Id="7012cc81-8887-42e9-b17d-4e5e42760f0d" Gvlk="9MKNF-J9XQ6-JV4XB-FJQPY-43F43" />
<SkuItem DisplayName="Office Word 2013 [Pre-Release]" Id="de9c7eb6-5a85-420d-9703-fff11bdd4d43" Gvlk="JBGD4-3JNG7-JWWGV-CR6TP-DC62Q" />
</KmsItem>
<KmsItem DisplayName="Office 2016" Id="85b5f61b-320b-4be3-814a-b76b2bfafc82" CanMapToDefaultCsvlk="false" DefaultKmsProtocol="6.0" NCountPolicy="5">
<SkuItem DisplayName="Office Access 2016" Id="67c0fc0c-deba-401b-bf8b-9c8ad8395804" Gvlk="GNH9Y-D2J4T-FJHGG-QRVH7-QPFDW" />
<SkuItem DisplayName="Office Excel 2016" Id="c3e65d36-141f-4d2f-a303-a842ee756a29" Gvlk="9C2PK-NWTVB-JMPW8-BFT28-7FTBF" />
<SkuItem DisplayName="Office Mondo 2016" Id="9caabccb-61b1-4b4b-8bec-d10a3c3ac2ce" Gvlk="HFTND-W9MK4-8B7MJ-B6C4G-XQBR2" />
<SkuItem DisplayName="Office Mondo Retail 2016" Id="e914ea6e-a5fa-4439-a394-a9bb3293ca09" Gvlk="DMTCJ-KNRKX-26982-JYCKT-P7KB6" />
<SkuItem DisplayName="Office OneNote 2016" Id="d8cace59-33d2-4ac7-9b1b-9b72339c51c8" Gvlk="DR92N-9HTF2-97XKM-XW2WJ-XW3J6" />
<SkuItem DisplayName="Office Outlook 2016" Id="ec9d9265-9d1e-4ed0-838a-cdc20f2551a1" Gvlk="R69KK-NTPKF-7M3Q4-QYBHW-6MT9B" />
<SkuItem DisplayName="Office Powerpoint 2016" Id="d70b1bba-b893-4544-96e2-b7a318091c33" Gvlk="J7MQP-HNJ4Y-WJ7YM-PFYGF-BY6C6" />
<SkuItem DisplayName="Office Professional Plus 2016" Id="d450596f-894d-49e0-966a-fd39ed4c4c64" Gvlk="XQNVK-8JYDB-WJ9W3-YJ8YR-WFG99" />
<SkuItem DisplayName="Office Project Professional 2016" Id="4f414197-0fc2-4c01-b68a-86cbb9ac254c" Gvlk="YG9NW-3K39V-2T3HJ-93F3Q-G83KT" />
<SkuItem DisplayName="Office Project Professional 2016 C2R [Preview]" Id="829b8110-0e6f-4349-bca4-42803577788d" Gvlk="WGT24-HCNMF-FQ7XH-6M8K7-DRTW9" />
<SkuItem DisplayName="Office Project Standard 2016" Id="da7ddabc-3fbe-4447-9e01-6ab7440b4cd4" Gvlk="GNFHQ-F6YQM-KQDGJ-327XX-KQBVC" />
<SkuItem DisplayName="Office Project Standard 2016 C2R [Preview]" Id="cbbaca45-556a-4416-ad03-bda598eaa7c8" Gvlk="D8NRQ-JTYM3-7J2DX-646CT-6836M" />
<SkuItem DisplayName="Office Publisher 2016" Id="041a06cb-c5b8-4772-809f-416d03d16654" Gvlk="F47MM-N3XJP-TQXJ9-BP99D-8K837" />
<SkuItem DisplayName="Office Skype for Business 2016" Id="83e04ee1-fa8d-436d-8994-d31a862cab77" Gvlk="869NQ-FJ69K-466HW-QYCP2-DDBV6" />
<SkuItem DisplayName="Office Standard 2016" Id="dedfa23d-6ed1-45a6-85dc-63cae0546de6" Gvlk="JNRGM-WHDWX-FJJG3-K47QV-DRTFM" />
<SkuItem DisplayName="Office Visio Professional 2016" Id="6bf301c1-b94a-43e9-ba31-d494598c47fb" Gvlk="PD3PC-RHNGV-FXJ29-8JK7D-RJRJK" />
<SkuItem DisplayName="Office Visio Professional 2016 C2R [Preview]" Id="b234abe3-0857-4f9c-b05a-4dc314f85557" Gvlk="69WXN-MBYV6-22PQG-3WGHK-RM6XC" />
<SkuItem DisplayName="Office Visio Standard 2016" Id="aa2a7821-1827-4c2c-8f1d-4513a34dda97" Gvlk="7WHWN-4T7MP-G96JF-G33KR-W8GF4" />
<SkuItem DisplayName="Office Visio Standard 2016 C2R [Preview]" Id="361fe620-64f4-41b5-ba77-84f8e079b1f7" Gvlk="NY48V-PPYYH-3F4PX-XJRKJ-W4423" />
<SkuItem DisplayName="Office Word 2016" Id="bb11badf-d8aa-470e-9311-20eaf80fe5cc" Gvlk="WXY84-JN2Q9-RBCCQ-3Q3J3-3PFJ6" />
<SkuItem DisplayName="Office Professional Plus 2019 C2R [Preview]" Id="0bc88885-718c-491d-921f-6f214349e79c" Gvlk="VQ9DP-NVHPH-T9HJC-J9PDT-KTQRG" />
<SkuItem DisplayName="Office Project Professional 2019 C2R [Preview]" Id="fc7c4d0c-2e85-4bb9-afd4-01ed1476b5e9" Gvlk="XM2V9-DN9HH-QB449-XDGKC-W2RMW" />
<SkuItem DisplayName="Office Visio Professional 2019 C2R [Preview]" Id="500f6619-ef93-4b75-bcb4-82819998a3ca" Gvlk="N2CG9-YD3YK-936X4-3WR82-Q3X4H" />
</KmsItem>
<KmsItem DisplayName="Office 2019" Id="617d9eb1-ef36-4f82-86e0-a65ae07b96c6" CanMapToDefaultCsvlk="false" DefaultKmsProtocol="6.0" NCountPolicy="5">
<SkuItem DisplayName="Office Access 2019" Id="9e9bceeb-e736-4f26-88de-763f87dcc485" Gvlk="9N9PT-27V4Y-VJ2PD-YXFMF-YTFQT" />
<SkuItem DisplayName="Office Excel 2019" Id="237854e9-79fc-4497-a0c1-a70969691c6b" Gvlk="TMJWT-YYNMB-3BKTF-644FC-RVXBD" />
<SkuItem DisplayName="Office Outlook 2019" Id="c8f8a301-19f5-4132-96ce-2de9d4adbd33" Gvlk="7HD7K-N4PVK-BHBCQ-YWQRW-XW4VK" />
<SkuItem DisplayName="Office Powerpoint 2019" Id="3131fd61-5e4f-4308-8d6d-62be1987c92c" Gvlk="RRNCX-C64HY-W2MM7-MCH9G-TJHMQ" />
<SkuItem DisplayName="Office Professional Plus 2019" Id="85dd8b5f-eaa4-4af3-a628-cce9e77c9a03" Gvlk="NMMKJ-6RK4F-KMJVX-8D9MJ-6MWKP" />
<SkuItem DisplayName="Office Project Professional 2019" Id="2ca2bf3f-949e-446a-82c7-e25a15ec78c4" Gvlk="B4NPR-3FKK7-T2MBV-FRQ4W-PKD2B" />
<SkuItem DisplayName="Office Project Standard 2019" Id="1777f0e3-7392-4198-97ea-8ae4de6f6381" Gvlk="C4F7P-NCP8C-6CQPT-MQHV9-JXD2M" />
<SkuItem DisplayName="Office Publisher 2019" Id="9d3e4cca-e172-46f1-a2f4-1d2107051444" Gvlk="G2KWX-3NW6P-PY93R-JXK2T-C9Y9V" />
<SkuItem DisplayName="Office Skype for Business 2019" Id="734c6c6e-b0ba-4298-a891-671772b2bd1b" Gvlk="NCJ33-JHBBY-HTK98-MYCV8-HMKHJ" />
<SkuItem DisplayName="Office Standard 2019" Id="6912a74b-a5fb-401a-bfdb-2e3ab46f4b02" Gvlk="6NWWJ-YQWMR-QKGCB-6TMB3-9D9HK" />
<SkuItem DisplayName="Office Visio Professional 2019" Id="5b5cf08f-b81a-431d-b080-3450d8620565" Gvlk="9BGNQ-K37YR-RQHF2-38RQ3-7VCBB" />
<SkuItem DisplayName="Office Visio Standard 2019" Id="e06d7df3-aad0-419d-8dfb-0ac37e2bdf39" Gvlk="7TQNQ-K3YQQ-3PFH7-CCPPM-X4VQ2" />
<SkuItem DisplayName="Office Word 2019" Id="059834fe-a8ea-4bff-b67b-4d006b5447d3" Gvlk="PBX3G-NWMT6-Q7XBW-PYJGG-WXD33" />
</KmsItem>
</AppItem>
</AppItems>
</KmsData>

View file

@ -4,13 +4,17 @@
# from the SlowAES project, http://code.google.com/p/slowaes/
#
# Copyright (c) 2008 Josh Davis ( http://www.josh-davis.org ),
# Alex Martelli ( http://www.aleax.it )
# Alex Martelli ( http://www.aleax.it )
#
# Ported from C code written by Laurent Haan ( http://www.progressive-coding.com )
#
# Licensed under the Apache License, Version 2.0
# http://www.apache.org/licenses/
"""
Modified for py-kms
"""
import os
import math

View file

@ -1,16 +1,17 @@
#!/usr/bin/env python
import re
import argparse
import binascii
import datetime
import random
import socket
import string
import struct
import sys
import uuid
import logging
import os
import errno
import filetimes, rpcBind, rpcRequest
from dcerpc import MSRPCHeader, MSRPCBindNak, MSRPCRequestHeader, MSRPCRespHeader
@ -19,6 +20,7 @@ from kmsRequestV4 import kmsRequestV4
from kmsRequestV5 import kmsRequestV5
from kmsRequestV6 import kmsRequestV6
from rpcBase import rpcBase
from kmsDB2Dict import kmsDB2Dict
from formatText import shell_message, justify
config = {}
@ -29,7 +31,8 @@ def main():
parser.add_argument("port", nargs="?", action="store", default=1688,
help='The port the KMS service is listening on. The default is \"1688\".', type=int)
parser.add_argument("-m", "--mode", dest="mode",
choices=["WindowsVista","Windows7","Windows8","Windows81","Windows10","Office2010","Office2013","Office2016"], default="Windows81",
choices=["WindowsVista","Windows7","Windows8","Windows8.1","Windows10",
"Office2010","Office2013","Office2016","Office2019"], default="Windows8.1",
help='Use this flag to manually specify a Microsoft product for testing the server. The default is \"Windows81\".', type=str)
parser.add_argument("-c", "--cmid", dest="cmid", default=None,
help='Use this flag to manually specify a CMID to use. If no CMID is specified, a random CMID will be generated.', type=str)
@ -62,7 +65,7 @@ a random machineName will be generated.', type=str)
shell_message(nshell = [-4, 7])
bindResponse = s.recv(1024)
except socket.error, e:
if e[0] == 104:
if e.errno == errno.ECONNRESET:
logging.error("Connection reset by peer. Exiting...")
sys.exit()
else:
@ -84,15 +87,13 @@ a random machineName will be generated.', type=str)
parsed = MSRPCRespHeader(response)
kmsData = readKmsResponse(parsed['pduData'], kmsRequest, config)
kmsResp = kmsData['response']
try:
hwid = kmsData['hwid']
except:
hwid = None
logging.info("KMS Host ePID: %s" % kmsResp['kmsEpid'].decode('utf-16le').encode('utf-8'))
if hwid is not None:
logging.info("KMS Host HWID: %s" % binascii.b2a_hex(hwid).upper())
except KeyError:
pass
logging.info("KMS Host ePID: %s" % kmsResp['kmsEpid'].decode('utf-16le').encode('utf-8'))
logging.info("KMS Host Current Client Count: %s" % kmsResp['currentClientCount'])
logging.info("KMS VL Activation Interval: %s" % kmsResp['vLActivationInterval'])
logging.info("KMS VL Renewal Interval: %s" % kmsResp['vLRenewalInterval'])
@ -110,79 +111,45 @@ def checkConfig():
if config['cmid'] is not None:
try:
uuid.UUID(config['cmid'])
except:
except ValueError:
logging.error("Bad CMID. Exiting...")
sys.exit()
if config['machineName'] is not None:
if len(config['machineName']) < 2 or len(config['machineName']) > 63:
logging.error("machineName must be between 2 and 63 characters in length.")
logging.error("Error: machineName must be between 2 and 63 characters in length.")
sys.exit()
def updateConfig():
if config['mode'] == 'WindowsVista':
config['RequiredClientCount'] = 25
config['KMSProtocolMajorVersion'] = 4
config['KMSProtocolMinorVersion'] = 0
config['KMSClientLicenseStatus'] = 2
config['KMSClientAppID'] = "55c92734-d682-4d71-983e-d6ec3f16059f"
config['KMSClientSkuID'] = "cfd8ff08-c0d7-452b-9f60-ef5c70c32094"
config['KMSClientKMSCountedID'] = "212a64dc-43b1-4d3d-a30c-2fc69d2095c6"
elif config['mode'] == 'Windows7':
config['RequiredClientCount'] = 25
config['KMSProtocolMajorVersion'] = 4
config['KMSProtocolMinorVersion'] = 0
config['KMSClientLicenseStatus'] = 2
config['KMSClientAppID'] = "55c92734-d682-4d71-983e-d6ec3f16059f"
config['KMSClientSkuID'] = "ae2ee509-1b34-41c0-acb7-6d4650168915"
config['KMSClientKMSCountedID'] = "7fde5219-fbfa-484a-82c9-34d1ad53e856"
elif config['mode'] == 'Windows8':
config['RequiredClientCount'] = 25
config['KMSProtocolMajorVersion'] = 5
config['KMSProtocolMinorVersion'] = 0
config['KMSClientLicenseStatus'] = 2
config['KMSClientAppID'] = "55c92734-d682-4d71-983e-d6ec3f16059f"
config['KMSClientSkuID'] = "458e1bec-837a-45f6-b9d5-925ed5d299de"
config['KMSClientKMSCountedID'] = "3c40b358-5948-45af-923b-53d21fcc7e79"
elif config['mode'] == 'Windows81':
config['RequiredClientCount'] = 25
config['KMSProtocolMajorVersion'] = 6
config['KMSProtocolMinorVersion'] = 0
config['KMSClientLicenseStatus'] = 2
config['KMSClientAppID'] = "55c92734-d682-4d71-983e-d6ec3f16059f"
config['KMSClientSkuID'] = "81671aaf-79d1-4eb1-b004-8cbbe173afea"
config['KMSClientKMSCountedID'] = "cb8fc780-2c05-495a-9710-85afffc904d7"
elif config['mode'] == 'Windows10':
config['RequiredClientCount'] = 25
config['KMSProtocolMajorVersion'] = 6
config['KMSProtocolMinorVersion'] = 0
config['KMSClientLicenseStatus'] = 2
config['KMSClientAppID'] = "55c92734-d682-4d71-983e-d6ec3f16059f"
config['KMSClientSkuID'] = "73111121-5638-40f6-bc11-f1d7b0d64300"
config['KMSClientKMSCountedID'] = "58e2134f-8e11-4d17-9cb2-91069c151148"
elif config['mode'] == 'Office2010':
config['RequiredClientCount'] = 5
config['KMSProtocolMajorVersion'] = 4
config['KMSProtocolMinorVersion'] = 0
config['KMSClientLicenseStatus'] = 2
config['KMSClientAppID'] = "59a52881-a989-479d-af46-f275c6370663"
config['KMSClientSkuID'] = "6f327760-8c5c-417c-9b61-836a98287e0c"
config['KMSClientKMSCountedID'] = "e85af946-2e25-47b7-83e1-bebcebeac611"
elif config['mode'] == 'Office2013':
config['RequiredClientCount'] = 5
config['KMSProtocolMajorVersion'] = 5
config['KMSProtocolMinorVersion'] = 0
config['KMSClientLicenseStatus'] = 2
config['KMSClientAppID'] = "0ff1ce15-a989-479d-af46-f275c6370663"
config['KMSClientSkuID'] = "b322da9c-a2e2-4058-9e4e-f59a6970bd69"
config['KMSClientKMSCountedID'] = "e6a6f1bf-9d40-40c3-aa9f-c77ba21578c0"
elif config['mode'] == 'Office2016':
config['RequiredClientCount'] = 5
config['KMSProtocolMajorVersion'] = 6
config['KMSProtocolMinorVersion'] = 0
config['KMSClientLicenseStatus'] = 2
config['KMSClientAppID'] = "0ff1ce15-a989-479d-af46-f275c6370663"
config['KMSClientSkuID'] = "d450596f-894d-49e0-966a-fd39ed4c4c64"
config['KMSClientKMSCountedID'] = "85b5f61b-320b-4be3-814a-b76b2bfafc82"
kmsdb = kmsDB2Dict()
appitems = kmsdb[2]
for appitem in appitems:
kmsitems = appitem['KmsItems']
for kmsitem in kmsitems:
# Threshold.
try:
count = int(kmsitem['NCountPolicy'])
except KeyError:
count = 25
name = re.sub('\(.*\)', '', kmsitem['DisplayName']).replace('2015', '').replace(' ', '')
if name == config['mode']:
skuitems = kmsitem['SkuItems']
# Select 'Enterprise' for Windows or 'Professional Plus' for Office.
# (improvement: choice could be also random: skuitem = random.choice(skuitems))
for skuitem in skuitems:
if skuitem['DisplayName'].replace(' ','') == name + 'Enterprise' or \
skuitem['DisplayName'].replace(' ','') == name[:6] + 'ProfessionalPlus' + name[6:]:
config['KMSClientSkuID'] = skuitem['Id']
config['RequiredClientCount'] = count
config['KMSProtocolMajorVersion'] = int(float(kmsitem['DefaultKmsProtocol']))
config['KMSProtocolMinorVersion'] = 0
config['KMSClientLicenseStatus'] = 2
config['KMSClientAppID'] = appitem['Id']
config['KMSClientKMSCountedID'] = kmsitem['Id']
break
def createKmsRequestBase():
requestDict = kmsBase.kmsRequestStruct()
@ -198,7 +165,8 @@ def createKmsRequestBase():
requestDict['previousClientMachineId'] = '\0' * 16 #requestDict['clientMachineId'] # I'm pretty sure this is supposed to be a null UUID.
requestDict['requiredClientCount'] = config['RequiredClientCount']
requestDict['requestTime'] = filetimes.dt_to_filetime(datetime.datetime.utcnow())
requestDict['machineName'] = (config['machineName'] if (config['machineName'] is not None) else ''.join(random.choice(string.letters + string.digits) for i in range(random.randint(2,63)))).encode('utf-16le')
requestDict['machineName'] = (config['machineName'] if (config['machineName'] is not None) else
''.join(random.choice(string.letters + string.digits) for i in range(random.randint(2,63)))).encode('utf-16le')
requestDict['mnPad'] = '\0'.encode('utf-16le') * (63 - len(requestDict['machineName'].decode('utf-16le')))
# Debug Stuff
@ -242,7 +210,8 @@ def readKmsResponse(data, request, config):
def readKmsResponseV4(data, request):
response = kmsRequestV4.ResponseV4(data)
hashed = kmsRequestV4(data, config).generateHash(bytearray(str(response['response'])))
logging.info("Response Hash has expected value: ", hashed == response['hash'])
if hashed == response['hash']:
logging.info("Response Hash has expected value !")
return response
def readKmsResponseV5(data):

View file

@ -1,14 +1,17 @@
#!/usr/bin/env python
# Copyright (c) 2003-2012 CORE Security Technologies
# Copyright (c) 2003-2016 CORE Security Technologies
#
# This software is provided under under a slightly modified version
# of the Apache Software License. See the accompanying LICENSE file
# for more information.
#
# $Id: dcerpc.py 917 2013-11-10 20:47:57Z bethus $
# Description:
# Partial C706.pdf + [MS-RPCE] implementation
#
# Partial C706.pdf + [MS-RPCE] implementation
# Best way to learn how to use these calls is to grab the protocol standard
# so you understand what the call does, and then read the test case located
# at https://github.com/CoreSecurity/impacket/tree/master/impacket/testcases/SMB_RPC
#
# ToDo:
# [ ] Take out all the security provider stuff out of here (e.g. RPC_C_AUTHN_WINNT)
@ -16,7 +19,11 @@
# more SSP (e.g. NETLOGON)
#
from structure import Structure,pack,unpack
"""
Stripped down version of: https://github.com/SecureAuthCorp/impacket/blob/master/impacket/dcerpc/v5/rpcrt.py
"""
from structure import Structure
# MS/RPC Constants
MSRPC_REQUEST = 0x00
@ -41,8 +48,8 @@ MSRPC_CO_CANCEL = 0x12
MSRPC_ORPHANED = 0x13
# MS/RPC Packet Flags
MSRPC_FIRSTFRAG = 0x01
MSRPC_LASTFRAG = 0x02
PFC_FIRST_FRAG = 0x01
PFC_LAST_FRAG = 0x02
# For PDU types bind, bind_ack, alter_context, and
# alter_context_resp, this flag MUST be interpreted as PFC_SUPPORT_HEADER_SIGN
@ -52,12 +59,11 @@ MSRPC_SUPPORT_SIGN = 0x04
#remaining PDU types, this flag MUST be interpreted as PFC_PENDING_CANCEL.
MSRPC_PENDING_CANCEL= 0x04
MSRPC_NOTAFRAG = 0x04
MSRPC_RECRESPOND = 0x08
MSRPC_NOMULTIPLEX = 0x10
MSRPC_NOTFORIDEMP = 0x20
MSRPC_NOTFORBCAST = 0x40
MSRPC_NOUUID = 0x80
PFC_RESERVED_1 = 0x08
PFC_CONC_MPX = 0x10
PFC_DID_NOT_EXECUTE = 0x20
PFC_MAYBE = 0x40
PFC_OBJECT_UUID = 0x80
# Auth Types - Security Providers
RPC_C_AUTHN_NONE = 0x00
@ -155,12 +161,379 @@ rpc_status_codes = {
0x1C000022L : 'nca_s_fault_tx_open_failed',
0x1C000023L : 'nca_s_fault_codeset_conv_error',
0x1C000024L : 'nca_s_fault_object_not_found ',
0x1C000025L : 'nca_s_fault_no_client_stub'
0x1C000025L : 'nca_s_fault_no_client_stub',
0x16c9a000L : "rpc_s_mod",
0x16c9a001L : "rpc_s_op_rng_error",
0x16c9a002L : "rpc_s_cant_create_socket",
0x16c9a003L : "rpc_s_cant_bind_socket",
0x16c9a004L : "rpc_s_not_in_call",
0x16c9a005L : "rpc_s_no_port",
0x16c9a006L : "rpc_s_wrong_boot_time",
0x16c9a007L : "rpc_s_too_many_sockets",
0x16c9a008L : "rpc_s_illegal_register",
0x16c9a009L : "rpc_s_cant_recv",
0x16c9a00aL : "rpc_s_bad_pkt",
0x16c9a00bL : "rpc_s_unbound_handle",
0x16c9a00cL : "rpc_s_addr_in_use",
0x16c9a00dL : "rpc_s_in_args_too_big",
0x16c9a00eL : "rpc_s_string_too_long",
0x16c9a00fL : "rpc_s_too_many_objects",
0x16c9a010L : "rpc_s_binding_has_no_auth",
0x16c9a011L : "rpc_s_unknown_authn_service",
0x16c9a012L : "rpc_s_no_memory",
0x16c9a013L : "rpc_s_cant_nmalloc",
0x16c9a014L : "rpc_s_call_faulted",
0x16c9a015L : "rpc_s_call_failed",
0x16c9a016L : "rpc_s_comm_failure",
0x16c9a017L : "rpc_s_rpcd_comm_failure",
0x16c9a018L : "rpc_s_illegal_family_rebind",
0x16c9a019L : "rpc_s_invalid_handle",
0x16c9a01aL : "rpc_s_coding_error",
0x16c9a01bL : "rpc_s_object_not_found",
0x16c9a01cL : "rpc_s_cthread_not_found",
0x16c9a01dL : "rpc_s_invalid_binding",
0x16c9a01eL : "rpc_s_already_registered",
0x16c9a01fL : "rpc_s_endpoint_not_found",
0x16c9a020L : "rpc_s_invalid_rpc_protseq",
0x16c9a021L : "rpc_s_desc_not_registered",
0x16c9a022L : "rpc_s_already_listening",
0x16c9a023L : "rpc_s_no_protseqs",
0x16c9a024L : "rpc_s_no_protseqs_registered",
0x16c9a025L : "rpc_s_no_bindings",
0x16c9a026L : "rpc_s_max_descs_exceeded",
0x16c9a027L : "rpc_s_no_interfaces",
0x16c9a028L : "rpc_s_invalid_timeout",
0x16c9a029L : "rpc_s_cant_inq_socket",
0x16c9a02aL : "rpc_s_invalid_naf_id",
0x16c9a02bL : "rpc_s_inval_net_addr",
0x16c9a02cL : "rpc_s_unknown_if",
0x16c9a02dL : "rpc_s_unsupported_type",
0x16c9a02eL : "rpc_s_invalid_call_opt",
0x16c9a02fL : "rpc_s_no_fault",
0x16c9a030L : "rpc_s_cancel_timeout",
0x16c9a031L : "rpc_s_call_cancelled",
0x16c9a032L : "rpc_s_invalid_call_handle",
0x16c9a033L : "rpc_s_cannot_alloc_assoc",
0x16c9a034L : "rpc_s_cannot_connect",
0x16c9a035L : "rpc_s_connection_aborted",
0x16c9a036L : "rpc_s_connection_closed",
0x16c9a037L : "rpc_s_cannot_accept",
0x16c9a038L : "rpc_s_assoc_grp_not_found",
0x16c9a039L : "rpc_s_stub_interface_error",
0x16c9a03aL : "rpc_s_invalid_object",
0x16c9a03bL : "rpc_s_invalid_type",
0x16c9a03cL : "rpc_s_invalid_if_opnum",
0x16c9a03dL : "rpc_s_different_server_instance",
0x16c9a03eL : "rpc_s_protocol_error",
0x16c9a03fL : "rpc_s_cant_recvmsg",
0x16c9a040L : "rpc_s_invalid_string_binding",
0x16c9a041L : "rpc_s_connect_timed_out",
0x16c9a042L : "rpc_s_connect_rejected",
0x16c9a043L : "rpc_s_network_unreachable",
0x16c9a044L : "rpc_s_connect_no_resources",
0x16c9a045L : "rpc_s_rem_network_shutdown",
0x16c9a046L : "rpc_s_too_many_rem_connects",
0x16c9a047L : "rpc_s_no_rem_endpoint",
0x16c9a048L : "rpc_s_rem_host_down",
0x16c9a049L : "rpc_s_host_unreachable",
0x16c9a04aL : "rpc_s_access_control_info_inv",
0x16c9a04bL : "rpc_s_loc_connect_aborted",
0x16c9a04cL : "rpc_s_connect_closed_by_rem",
0x16c9a04dL : "rpc_s_rem_host_crashed",
0x16c9a04eL : "rpc_s_invalid_endpoint_format",
0x16c9a04fL : "rpc_s_unknown_status_code",
0x16c9a050L : "rpc_s_unknown_mgr_type",
0x16c9a051L : "rpc_s_assoc_creation_failed",
0x16c9a052L : "rpc_s_assoc_grp_max_exceeded",
0x16c9a053L : "rpc_s_assoc_grp_alloc_failed",
0x16c9a054L : "rpc_s_sm_invalid_state",
0x16c9a055L : "rpc_s_assoc_req_rejected",
0x16c9a056L : "rpc_s_assoc_shutdown",
0x16c9a057L : "rpc_s_tsyntaxes_unsupported",
0x16c9a058L : "rpc_s_context_id_not_found",
0x16c9a059L : "rpc_s_cant_listen_socket",
0x16c9a05aL : "rpc_s_no_addrs",
0x16c9a05bL : "rpc_s_cant_getpeername",
0x16c9a05cL : "rpc_s_cant_get_if_id",
0x16c9a05dL : "rpc_s_protseq_not_supported",
0x16c9a05eL : "rpc_s_call_orphaned",
0x16c9a05fL : "rpc_s_who_are_you_failed",
0x16c9a060L : "rpc_s_unknown_reject",
0x16c9a061L : "rpc_s_type_already_registered",
0x16c9a062L : "rpc_s_stop_listening_disabled",
0x16c9a063L : "rpc_s_invalid_arg",
0x16c9a064L : "rpc_s_not_supported",
0x16c9a065L : "rpc_s_wrong_kind_of_binding",
0x16c9a066L : "rpc_s_authn_authz_mismatch",
0x16c9a067L : "rpc_s_call_queued",
0x16c9a068L : "rpc_s_cannot_set_nodelay",
0x16c9a069L : "rpc_s_not_rpc_tower",
0x16c9a06aL : "rpc_s_invalid_rpc_protid",
0x16c9a06bL : "rpc_s_invalid_rpc_floor",
0x16c9a06cL : "rpc_s_call_timeout",
0x16c9a06dL : "rpc_s_mgmt_op_disallowed",
0x16c9a06eL : "rpc_s_manager_not_entered",
0x16c9a06fL : "rpc_s_calls_too_large_for_wk_ep",
0x16c9a070L : "rpc_s_server_too_busy",
0x16c9a071L : "rpc_s_prot_version_mismatch",
0x16c9a072L : "rpc_s_rpc_prot_version_mismatch",
0x16c9a073L : "rpc_s_ss_no_import_cursor",
0x16c9a074L : "rpc_s_fault_addr_error",
0x16c9a075L : "rpc_s_fault_context_mismatch",
0x16c9a076L : "rpc_s_fault_fp_div_by_zero",
0x16c9a077L : "rpc_s_fault_fp_error",
0x16c9a078L : "rpc_s_fault_fp_overflow",
0x16c9a079L : "rpc_s_fault_fp_underflow",
0x16c9a07aL : "rpc_s_fault_ill_inst",
0x16c9a07bL : "rpc_s_fault_int_div_by_zero",
0x16c9a07cL : "rpc_s_fault_int_overflow",
0x16c9a07dL : "rpc_s_fault_invalid_bound",
0x16c9a07eL : "rpc_s_fault_invalid_tag",
0x16c9a07fL : "rpc_s_fault_pipe_closed",
0x16c9a080L : "rpc_s_fault_pipe_comm_error",
0x16c9a081L : "rpc_s_fault_pipe_discipline",
0x16c9a082L : "rpc_s_fault_pipe_empty",
0x16c9a083L : "rpc_s_fault_pipe_memory",
0x16c9a084L : "rpc_s_fault_pipe_order",
0x16c9a085L : "rpc_s_fault_remote_comm_failure",
0x16c9a086L : "rpc_s_fault_remote_no_memory",
0x16c9a087L : "rpc_s_fault_unspec",
0x16c9a088L : "uuid_s_bad_version",
0x16c9a089L : "uuid_s_socket_failure",
0x16c9a08aL : "uuid_s_getconf_failure",
0x16c9a08bL : "uuid_s_no_address",
0x16c9a08cL : "uuid_s_overrun",
0x16c9a08dL : "uuid_s_internal_error",
0x16c9a08eL : "uuid_s_coding_error",
0x16c9a08fL : "uuid_s_invalid_string_uuid",
0x16c9a090L : "uuid_s_no_memory",
0x16c9a091L : "rpc_s_no_more_entries",
0x16c9a092L : "rpc_s_unknown_ns_error",
0x16c9a093L : "rpc_s_name_service_unavailable",
0x16c9a094L : "rpc_s_incomplete_name",
0x16c9a095L : "rpc_s_group_not_found",
0x16c9a096L : "rpc_s_invalid_name_syntax",
0x16c9a097L : "rpc_s_no_more_members",
0x16c9a098L : "rpc_s_no_more_interfaces",
0x16c9a099L : "rpc_s_invalid_name_service",
0x16c9a09aL : "rpc_s_no_name_mapping",
0x16c9a09bL : "rpc_s_profile_not_found",
0x16c9a09cL : "rpc_s_not_found",
0x16c9a09dL : "rpc_s_no_updates",
0x16c9a09eL : "rpc_s_update_failed",
0x16c9a09fL : "rpc_s_no_match_exported",
0x16c9a0a0L : "rpc_s_entry_not_found",
0x16c9a0a1L : "rpc_s_invalid_inquiry_context",
0x16c9a0a2L : "rpc_s_interface_not_found",
0x16c9a0a3L : "rpc_s_group_member_not_found",
0x16c9a0a4L : "rpc_s_entry_already_exists",
0x16c9a0a5L : "rpc_s_nsinit_failure",
0x16c9a0a6L : "rpc_s_unsupported_name_syntax",
0x16c9a0a7L : "rpc_s_no_more_elements",
0x16c9a0a8L : "rpc_s_no_ns_permission",
0x16c9a0a9L : "rpc_s_invalid_inquiry_type",
0x16c9a0aaL : "rpc_s_profile_element_not_found",
0x16c9a0abL : "rpc_s_profile_element_replaced",
0x16c9a0acL : "rpc_s_import_already_done",
0x16c9a0adL : "rpc_s_database_busy",
0x16c9a0aeL : "rpc_s_invalid_import_context",
0x16c9a0afL : "rpc_s_uuid_set_not_found",
0x16c9a0b0L : "rpc_s_uuid_member_not_found",
0x16c9a0b1L : "rpc_s_no_interfaces_exported",
0x16c9a0b2L : "rpc_s_tower_set_not_found",
0x16c9a0b3L : "rpc_s_tower_member_not_found",
0x16c9a0b4L : "rpc_s_obj_uuid_not_found",
0x16c9a0b5L : "rpc_s_no_more_bindings",
0x16c9a0b6L : "rpc_s_invalid_priority",
0x16c9a0b7L : "rpc_s_not_rpc_entry",
0x16c9a0b8L : "rpc_s_invalid_lookup_context",
0x16c9a0b9L : "rpc_s_binding_vector_full",
0x16c9a0baL : "rpc_s_cycle_detected",
0x16c9a0bbL : "rpc_s_nothing_to_export",
0x16c9a0bcL : "rpc_s_nothing_to_unexport",
0x16c9a0bdL : "rpc_s_invalid_vers_option",
0x16c9a0beL : "rpc_s_no_rpc_data",
0x16c9a0bfL : "rpc_s_mbr_picked",
0x16c9a0c0L : "rpc_s_not_all_objs_unexported",
0x16c9a0c1L : "rpc_s_no_entry_name",
0x16c9a0c2L : "rpc_s_priority_group_done",
0x16c9a0c3L : "rpc_s_partial_results",
0x16c9a0c4L : "rpc_s_no_env_setup",
0x16c9a0c5L : "twr_s_unknown_sa",
0x16c9a0c6L : "twr_s_unknown_tower",
0x16c9a0c7L : "twr_s_not_implemented",
0x16c9a0c8L : "rpc_s_max_calls_too_small",
0x16c9a0c9L : "rpc_s_cthread_create_failed",
0x16c9a0caL : "rpc_s_cthread_pool_exists",
0x16c9a0cbL : "rpc_s_cthread_no_such_pool",
0x16c9a0ccL : "rpc_s_cthread_invoke_disabled",
0x16c9a0cdL : "ept_s_cant_perform_op",
0x16c9a0ceL : "ept_s_no_memory",
0x16c9a0cfL : "ept_s_database_invalid",
0x16c9a0d0L : "ept_s_cant_create",
0x16c9a0d1L : "ept_s_cant_access",
0x16c9a0d2L : "ept_s_database_already_open",
0x16c9a0d3L : "ept_s_invalid_entry",
0x16c9a0d4L : "ept_s_update_failed",
0x16c9a0d5L : "ept_s_invalid_context",
0x16c9a0d6L : "ept_s_not_registered",
0x16c9a0d7L : "ept_s_server_unavailable",
0x16c9a0d8L : "rpc_s_underspecified_name",
0x16c9a0d9L : "rpc_s_invalid_ns_handle",
0x16c9a0daL : "rpc_s_unknown_error",
0x16c9a0dbL : "rpc_s_ss_char_trans_open_fail",
0x16c9a0dcL : "rpc_s_ss_char_trans_short_file",
0x16c9a0ddL : "rpc_s_ss_context_damaged",
0x16c9a0deL : "rpc_s_ss_in_null_context",
0x16c9a0dfL : "rpc_s_socket_failure",
0x16c9a0e0L : "rpc_s_unsupported_protect_level",
0x16c9a0e1L : "rpc_s_invalid_checksum",
0x16c9a0e2L : "rpc_s_invalid_credentials",
0x16c9a0e3L : "rpc_s_credentials_too_large",
0x16c9a0e4L : "rpc_s_call_id_not_found",
0x16c9a0e5L : "rpc_s_key_id_not_found",
0x16c9a0e6L : "rpc_s_auth_bad_integrity",
0x16c9a0e7L : "rpc_s_auth_tkt_expired",
0x16c9a0e8L : "rpc_s_auth_tkt_nyv",
0x16c9a0e9L : "rpc_s_auth_repeat",
0x16c9a0eaL : "rpc_s_auth_not_us",
0x16c9a0ebL : "rpc_s_auth_badmatch",
0x16c9a0ecL : "rpc_s_auth_skew",
0x16c9a0edL : "rpc_s_auth_badaddr",
0x16c9a0eeL : "rpc_s_auth_badversion",
0x16c9a0efL : "rpc_s_auth_msg_type",
0x16c9a0f0L : "rpc_s_auth_modified",
0x16c9a0f1L : "rpc_s_auth_badorder",
0x16c9a0f2L : "rpc_s_auth_badkeyver",
0x16c9a0f3L : "rpc_s_auth_nokey",
0x16c9a0f4L : "rpc_s_auth_mut_fail",
0x16c9a0f5L : "rpc_s_auth_baddirection",
0x16c9a0f6L : "rpc_s_auth_method",
0x16c9a0f7L : "rpc_s_auth_badseq",
0x16c9a0f8L : "rpc_s_auth_inapp_cksum",
0x16c9a0f9L : "rpc_s_auth_field_toolong",
0x16c9a0faL : "rpc_s_invalid_crc",
0x16c9a0fbL : "rpc_s_binding_incomplete",
0x16c9a0fcL : "rpc_s_key_func_not_allowed",
0x16c9a0fdL : "rpc_s_unknown_stub_rtl_if_vers",
0x16c9a0feL : "rpc_s_unknown_ifspec_vers",
0x16c9a0ffL : "rpc_s_proto_unsupp_by_auth",
0x16c9a100L : "rpc_s_authn_challenge_malformed",
0x16c9a101L : "rpc_s_protect_level_mismatch",
0x16c9a102L : "rpc_s_no_mepv",
0x16c9a103L : "rpc_s_stub_protocol_error",
0x16c9a104L : "rpc_s_class_version_mismatch",
0x16c9a105L : "rpc_s_helper_not_running",
0x16c9a106L : "rpc_s_helper_short_read",
0x16c9a107L : "rpc_s_helper_catatonic",
0x16c9a108L : "rpc_s_helper_aborted",
0x16c9a109L : "rpc_s_not_in_kernel",
0x16c9a10aL : "rpc_s_helper_wrong_user",
0x16c9a10bL : "rpc_s_helper_overflow",
0x16c9a10cL : "rpc_s_dg_need_way_auth",
0x16c9a10dL : "rpc_s_unsupported_auth_subtype",
0x16c9a10eL : "rpc_s_wrong_pickle_type",
0x16c9a10fL : "rpc_s_not_listening",
0x16c9a110L : "rpc_s_ss_bad_buffer",
0x16c9a111L : "rpc_s_ss_bad_es_action",
0x16c9a112L : "rpc_s_ss_wrong_es_version",
0x16c9a113L : "rpc_s_fault_user_defined",
0x16c9a114L : "rpc_s_ss_incompatible_codesets",
0x16c9a115L : "rpc_s_tx_not_in_transaction",
0x16c9a116L : "rpc_s_tx_open_failed",
0x16c9a117L : "rpc_s_partial_credentials",
0x16c9a118L : "rpc_s_ss_invalid_codeset_tag",
0x16c9a119L : "rpc_s_mgmt_bad_type",
0x16c9a11aL : "rpc_s_ss_invalid_char_input",
0x16c9a11bL : "rpc_s_ss_short_conv_buffer",
0x16c9a11cL : "rpc_s_ss_iconv_error",
0x16c9a11dL : "rpc_s_ss_no_compat_codeset",
0x16c9a11eL : "rpc_s_ss_no_compat_charsets",
0x16c9a11fL : "dce_cs_c_ok",
0x16c9a120L : "dce_cs_c_unknown",
0x16c9a121L : "dce_cs_c_notfound",
0x16c9a122L : "dce_cs_c_cannot_open_file",
0x16c9a123L : "dce_cs_c_cannot_read_file",
0x16c9a124L : "dce_cs_c_cannot_allocate_memory",
0x16c9a125L : "rpc_s_ss_cleanup_failed",
0x16c9a126L : "rpc_svc_desc_general",
0x16c9a127L : "rpc_svc_desc_mutex",
0x16c9a128L : "rpc_svc_desc_xmit",
0x16c9a129L : "rpc_svc_desc_recv",
0x16c9a12aL : "rpc_svc_desc_dg_state",
0x16c9a12bL : "rpc_svc_desc_cancel",
0x16c9a12cL : "rpc_svc_desc_orphan",
0x16c9a12dL : "rpc_svc_desc_cn_state",
0x16c9a12eL : "rpc_svc_desc_cn_pkt",
0x16c9a12fL : "rpc_svc_desc_pkt_quotas",
0x16c9a130L : "rpc_svc_desc_auth",
0x16c9a131L : "rpc_svc_desc_source",
0x16c9a132L : "rpc_svc_desc_stats",
0x16c9a133L : "rpc_svc_desc_mem",
0x16c9a134L : "rpc_svc_desc_mem_type",
0x16c9a135L : "rpc_svc_desc_dg_pktlog",
0x16c9a136L : "rpc_svc_desc_thread_id",
0x16c9a137L : "rpc_svc_desc_timestamp",
0x16c9a138L : "rpc_svc_desc_cn_errors",
0x16c9a139L : "rpc_svc_desc_conv_thread",
0x16c9a13aL : "rpc_svc_desc_pid",
0x16c9a13bL : "rpc_svc_desc_atfork",
0x16c9a13cL : "rpc_svc_desc_cma_thread",
0x16c9a13dL : "rpc_svc_desc_inherit",
0x16c9a13eL : "rpc_svc_desc_dg_sockets",
0x16c9a13fL : "rpc_svc_desc_timer",
0x16c9a140L : "rpc_svc_desc_threads",
0x16c9a141L : "rpc_svc_desc_server_call",
0x16c9a142L : "rpc_svc_desc_nsi",
0x16c9a143L : "rpc_svc_desc_dg_pkt",
0x16c9a144L : "rpc_m_cn_ill_state_trans_sa",
0x16c9a145L : "rpc_m_cn_ill_state_trans_ca",
0x16c9a146L : "rpc_m_cn_ill_state_trans_sg",
0x16c9a147L : "rpc_m_cn_ill_state_trans_cg",
0x16c9a148L : "rpc_m_cn_ill_state_trans_sr",
0x16c9a149L : "rpc_m_cn_ill_state_trans_cr",
0x16c9a14aL : "rpc_m_bad_pkt_type",
0x16c9a14bL : "rpc_m_prot_mismatch",
0x16c9a14cL : "rpc_m_frag_toobig",
0x16c9a14dL : "rpc_m_unsupp_stub_rtl_if",
0x16c9a14eL : "rpc_m_unhandled_callstate",
0x16c9a14fL : "rpc_m_call_failed",
0x16c9a150L : "rpc_m_call_failed_no_status",
0x16c9a151L : "rpc_m_call_failed_errno",
0x16c9a152L : "rpc_m_call_failed_s",
0x16c9a153L : "rpc_m_call_failed_c",
0x16c9a154L : "rpc_m_errmsg_toobig",
0x16c9a155L : "rpc_m_invalid_srchattr",
0x16c9a156L : "rpc_m_nts_not_found",
0x16c9a157L : "rpc_m_invalid_accbytcnt",
0x16c9a158L : "rpc_m_pre_v2_ifspec",
0x16c9a159L : "rpc_m_unk_ifspec",
0x16c9a15aL : "rpc_m_recvbuf_toosmall",
0x16c9a15bL : "rpc_m_unalign_authtrl",
0x16c9a15cL : "rpc_m_unexpected_exc",
0x16c9a15dL : "rpc_m_no_stub_data",
0x16c9a15eL : "rpc_m_eventlist_full",
0x16c9a15fL : "rpc_m_unk_sock_type",
0x16c9a160L : "rpc_m_unimp_call",
0x16c9a161L : "rpc_m_invalid_seqnum",
0x16c9a162L : "rpc_m_cant_create_uuid",
0x16c9a163L : "rpc_m_pre_v2_ss",
0x16c9a164L : "rpc_m_dgpkt_pool_corrupt",
0x16c9a165L : "rpc_m_dgpkt_bad_free",
0x16c9a166L : "rpc_m_lookaside_corrupt",
0x16c9a167L : "rpc_m_alloc_fail",
0x16c9a168L : "rpc_m_realloc_fail",
0x16c9a169L : "rpc_m_cant_open_file",
0x16c9a16aL : "rpc_m_cant_read_addr",
0x16c9a16bL : "rpc_svc_desc_libidl",
0x16c9a16cL : "rpc_m_ctxrundown_nomem",
0x16c9a16dL : "rpc_m_ctxrundown_exc",
0x16c9a16eL : "rpc_s_fault_codeset_conv_error",
0x16c9a16fL : "rpc_s_no_call_active",
0x16c9a170L : "rpc_s_cannot_support",
0x16c9a171L : "rpc_s_no_context_available",
}
class Exception(Exception):
pass
# Context Item
class CtxItem(Structure):
structure = (
@ -195,15 +568,15 @@ class MSRPCHeader(Structure):
('type','B=0'), # 2
('flags','B=0'), # 3
('representation','<L=0x10'), # 4
('frag_len','<H=self._SIZE+len(pduData)+len(pad)+len(sec_trailer)+len(auth_data)'), # 8
('frag_len','<H=self._SIZE+len(auth_data)+(16 if (self["flags"] & 0x80) > 0 else 0)+len(pduData)+len(pad)+len(sec_trailer)'), # 8
('auth_len','<H=len(auth_data)'), # 10
('call_id','<L=1'), # 12 <-- Common up to here (including this)
)
structure = (
('dataLen','_-pduData','self["frag_len"]-self["auth_len"]-self._SIZE-(8 if self["auth_len"] > 0 else 0)'),
('dataLen','_-pduData','self["frag_len"]-self["auth_len"]-self._SIZE-(8 if self["auth_len"] > 0 else 0)'),
('pduData',':'),
('_pad', '_-pad','(4 - ((self._SIZE + len(self["pduData"])) & 3) & 3)'),
('_pad', '_-pad','(4 - ((self._SIZE + (16 if (self["flags"] & 0x80) > 0 else 0) + len(self["pduData"])) & 3) & 3)'),
('pad', ':'),
('_sec_trailer', '_-sec_trailer', '8 if self["auth_len"] > 0 else 0'),
('sec_trailer',':'),
@ -216,7 +589,7 @@ class MSRPCHeader(Structure):
if data is None:
self['ver_major'] = 5
self['ver_minor'] = 0
self['flags'] = MSRPC_FIRSTFRAG | MSRPC_LASTFRAG
self['flags'] = PFC_FIRST_FRAG | PFC_LAST_FRAG
self['type'] = MSRPC_REQUEST
self.__frag_len_set = 0
self['auth_len'] = 0
@ -226,7 +599,7 @@ class MSRPCHeader(Structure):
self['pad'] = ''
def get_header_size(self):
return self._SIZE
return self._SIZE + (16 if (self["flags"] & PFC_OBJECT_UUID) > 0 else 0)
def get_packet(self):
if self['auth_data'] != '':
@ -244,6 +617,8 @@ class MSRPCRequestHeader(MSRPCHeader):
('alloc_hint','<L=0'), # 16
('ctx_id','<H=0'), # 20
('op_num','<H=0'), # 22
('_uuid','_-uuid','16 if self["flags"] & 0x80 > 0 else 0' ), # 22
('uuid',':'), # 22
)
def __init__(self, data = None, alignment = 0):
@ -251,6 +626,7 @@ class MSRPCRequestHeader(MSRPCHeader):
if data is None:
self['type'] = MSRPC_REQUEST
self['ctx_id'] = 0
self['uuid'] = ''
class MSRPCRespHeader(MSRPCHeader):
_SIZE = 24
@ -299,19 +675,9 @@ class MSRPCBind(Structure):
self['ctx_items'] += i.getData()
return Structure.getData(self)
class MSRPCBindAck(Structure):
class MSRPCBindAck(MSRPCHeader):
_SIZE = 26 # Up to SecondaryAddr
_CTX_ITEM_LEN = len(CtxItemResult())
commonHdr = (
('ver_major','B=5'), # 0
('ver_minor','B=0'), # 1
('type','B=0'), # 2
('flags','B=0'), # 3
('representation','<L=0x10'), # 4
('frag_len','<H=0'), # 8
('auth_len','<H=0'), # 10
('call_id','<L=1'), # 12 <-- Common up to here (including this)
)
structure = (
('max_tfrag','<H=0'),
('max_rfrag','<H=0'),
@ -332,7 +698,7 @@ class MSRPCBindAck(Structure):
)
def __init__(self, data = None, alignment = 0):
self.__ctx_items = []
Structure.__init__(self,data,alignment)
MSRPCHeader.__init__(self,data,alignment)
if data is None:
self['Pad'] = ''
self['ctx_items'] = ''

View file

@ -103,4 +103,3 @@ if __name__ == "__main__":
import doctest
doctest.testmod()

View file

@ -1,7 +1,5 @@
#!/usr/bin/env python
import sys
def justify(astring, indent = 35, break_every = 100):
str_indent = ('\n' + ' ' * indent)
splitted = astring.split('\n')
@ -53,8 +51,6 @@ class ShellStyle(object):
return self.style(s, '\033[4m')
def shell_message(nshell):
shelldict = {0: ShellStyle().yellow("Client generating RPC Bind Request..."),
@ -90,7 +86,3 @@ def shell_message(nshell):
print shelldict[n]
else:
print shelldict[nshell]

View file

@ -2,14 +2,13 @@
import binascii
import logging
import datetime
import os
import struct
import sys
import time
import uuid
from structure import Structure
from kmsDB2Dict import kmsDB2Dict
import kmsPidGenerator
import filetimes
from formatText import justify, shell_message
@ -17,10 +16,9 @@ from formatText import justify, shell_message
# sqlite3 is optional
try:
import sqlite3
except:
except ImportError:
pass
class UUID(Structure):
commonHdr = ()
structure = (
@ -31,6 +29,10 @@ class UUID(Structure):
return uuid.UUID(bytes_le=str(self))
class kmsBase:
def __init__(self, data, config):
self.data = data
self.config = config
class kmsRequestStruct(Structure):
commonHdr = ()
structure = (
@ -81,359 +83,6 @@ class kmsBase:
('remainder', '_'),
)
appIds = {
uuid.UUID("55C92734-D682-4D71-983E-D6EC3F16059F") : "Windows",
uuid.UUID("59A52881-A989-479D-AF46-F275C6370663") : "Office 14 (2010)",
uuid.UUID("0FF1CE15-A989-479D-AF46-F275C6370663") : "Office 15 (2013) / Office 16 (2016)"
}
skuIds = {
#########################
## Windows Server 2019 ##
#########################
uuid.UUID("34e1ae55-27f8-4950-8877-7a03be5fb181") : "Windows Server 2019 Datacenter",
uuid.UUID("de32eafd-aaee-4662-9444-c1befb41bde2") : "Windows Server 2019 Standard",
uuid.UUID("034d3cbb-5d4b-4245-b3f8-f84571314078") : "Windows Server 2019 Essentials",
uuid.UUID("a99cc1f0-7719-4306-9645-294102fbff95") : "Windows Server 2019 Azure Core",
#########################
## Windows Server 2016 ##
#########################
uuid.UUID("21c56779-b449-4d20-adfc-eece0e1ad74b") : "Windows Server 2016 Datacenter",
uuid.UUID("8c1c5410-9f39-4805-8c9d-63a07706358f") : "Windows Server 2016 Standard",
uuid.UUID("2b5a1b0f-a5ab-4c54-ac2f-a6d94824a283") : "Windows Server 2016 Essentials",
uuid.UUID("7b4433f4-b1e7-4788-895a-c45378d38253") : "Windows Server 2016 Cloud Storage",
uuid.UUID("3dbf341b-5f6c-4fa7-b936-699dce9e263f") : "Windows Server 2016 Azure Core",
################
## Windows 10 ##
################
uuid.UUID("2de67392-b7a7-462a-b1ca-108dd189f588") : "Windows 10 Professional",
uuid.UUID("a80b5abf-76ad-428b-b05d-a47d2dffeebf") : "Windows 10 Professional N",
uuid.UUID("3f1afc82-f8ac-4f6c-8005-1d233e606eee") : "Windows 10 Professional Education",
uuid.UUID("5300b18c-2e33-4dc2-8291-47ffcec746dd") : "Windows 10 Professional Education N",
uuid.UUID("e0c42288-980c-4788-a014-c080d2e1926e") : "Windows 10 Education",
uuid.UUID("3c102355-d027-42c6-ad23-2e7ef8a02585") : "Windows 10 Education N",
uuid.UUID("73111121-5638-40f6-bc11-f1d7b0d64300") : "Windows 10 Enterprise",
uuid.UUID("e272e3e2-732f-4c65-a8f0-484747d0d947") : "Windows 10 Enterprise N",
uuid.UUID("7b51a46c-0c04-4e8f-9af4-8496cca90d5e") : "Windows 10 Enterprise 2015 LTSB",
uuid.UUID("87b838b7-41b6-4590-8318-5797951d8529") : "Windows 10 Enterprise 2015 LTSB N",
uuid.UUID("2d5a5a60-3040-48bf-beb0-fcd770c20ce0") : "Windows 10 Enterprise 2016 LTSB",
uuid.UUID("9f776d83-7156-45b2-8a5c-359b9c9f22a3") : "Windows 10 Enterprise 2016 LTSB N",
uuid.UUID("58e97c99-f377-4ef1-81d5-4ad5522b5fd8") : "Windows 10 Home / Core",
uuid.UUID("7b9e1751-a8da-4f75-9560-5fadfe3d8e38") : "Windows 10 Home / Core N",
uuid.UUID("cd918a57-a41b-4c82-8dce-1a538e221a83") : "Windows 10 Home / Core Single Language",
uuid.UUID("a9107544-f4a0-4053-a96a-1479abdef912") : "Windows 10 Home / Core Country Specific",
############################
## Windows Server 2012 R2 ##
############################
uuid.UUID("b3ca044e-a358-4d68-9883-aaa2941aca99") : "Windows Server 2012 R2 Standard",
uuid.UUID("00091344-1ea4-4f37-b789-01750ba6988c") : "Windows Server 2012 R2 Datacenter",
uuid.UUID("21db6ba4-9a7b-4a14-9e29-64a60c59301d") : "Windows Server 2012 R2 Essentials",
uuid.UUID("b743a2be-68d4-4dd3-af32-92425b7bb623") : "Windows Server 2012 R2 Cloud Storage",
#################
## Windows 8.1 ##
#################
uuid.UUID("c06b6981-d7fd-4a35-b7b4-054742b7af67") : "Windows 8.1 Professional",
uuid.UUID("7476d79f-8e48-49b4-ab63-4d0b813a16e4") : "Windows 8.1 Professional N",
uuid.UUID("096ce63d-4fac-48a9-82a9-61ae9e800e5f") : "Windows 8.1 Professional WMC",
uuid.UUID("81671aaf-79d1-4eb1-b004-8cbbe173afea") : "Windows 8.1 Enterprise",
uuid.UUID("113e705c-fa49-48a4-beea-7dd879b46b14") : "Windows 8.1 Enterprise N",
uuid.UUID("f7e88590-dfc7-4c78-bccb-6f3865b99d1a") : "Windows 8.1 Embedded Industry Automotive",
uuid.UUID("cd4e2d9f-5059-4a50-a92d-05d5bb1267c7") : "Windows 8.1 Embedded Industry Enterprise",
uuid.UUID("0ab82d54-47f4-4acb-818c-cc5bf0ecb649") : "Windows 8.1 Embedded Industry Professional",
uuid.UUID("fe1c3238-432a-43a1-8e25-97e7d1ef10f3") : "Windows 8.1 Core",
uuid.UUID("78558a64-dc19-43fe-a0d0-8075b2a370a3") : "Windows 8.1 Core N",
uuid.UUID("c72c6a1d-f252-4e7e-bdd1-3fca342acb35") : "Windows 8.1 Core Single Language",
uuid.UUID("db78b74f-ef1c-4892-abfe-1e66b8231df6") : "Windows 8.1 Core Country Specific",
uuid.UUID("ffee456a-cd87-4390-8e07-16146c672fd0") : "Windows 8.1 Core ARM",
uuid.UUID("e9942b32-2e55-4197-b0bd-5ff58cba8860") : "Windows 8.1 Core Connected",
uuid.UUID("c6ddecd6-2354-4c19-909b-306a3058484e") : "Windows 8.1 Core Connected N",
uuid.UUID("ba998212-460a-44db-bfb5-71bf09d1c68b") : "Windows 8.1 Core Connected Country Specific",
uuid.UUID("b8f5e3a3-ed33-4608-81e1-37d6c9dcfd9c") : "Windows 8.1 Core Connected Single Language",
uuid.UUID("e58d87b5-8126-4580-80fb-861b22f79296") : "Windows 8.1 Professional Student",
uuid.UUID("cab491c7-a918-4f60-b502-dab75e334f40") : "Windows 8.1 Professional Student N",
#########################
## Windows Server 2012 ##
#########################
uuid.UUID("c04ed6bf-55c8-4b47-9f8e-5a1f31ceee60") : "Windows Server 2012 / Windows 8 Core",
uuid.UUID("197390a0-65f6-4a95-bdc4-55d58a3b0253") : "Windows Server 2012 N / Windows 8 Core N",
uuid.UUID("8860fcd4-a77b-4a20-9045-a150ff11d609") : "Windows Server 2012 Single Language / Windows 8 Core Single Language",
uuid.UUID("9d5584a2-2d85-419a-982c-a00888bb9ddf") : "Windows Server 2012 Country Specific / Windows 8 Core Country Specific",
uuid.UUID("f0f5ec41-0d55-4732-af02-440a44a3cf0f") : "Windows Server 2012 Standard",
uuid.UUID("7d5486c7-e120-4771-b7f1-7b56c6d3170c") : "Windows Server 2012 MultiPoint Standard",
uuid.UUID("95fd1c83-7df5-494a-be8b-1300e1c9d1cd") : "Windows Server 2012 MultiPoint Premium",
uuid.UUID("d3643d60-0c42-412d-a7d6-52e6635327f6") : "Windows Server 2012 Datacenter",
#########################
## Windows Server 2010 ##
#########################
uuid.UUID("f772515c-0e87-48d5-a676-e6962c3e1195") : "Windows MultiPoint Server 2010",
###############
## Windows 8 ##
###############
uuid.UUID("a98bcd6d-5343-4603-8afe-5908e4611112") : "Windows 8 Professional",
uuid.UUID("ebf245c1-29a8-4daf-9cb1-38dfc608a8c8") : "Windows 8 Professional N",
uuid.UUID("a00018a3-f20f-4632-bf7c-8daa5351c914") : "Windows 8 Professional WMC",
uuid.UUID("458e1bec-837a-45f6-b9d5-925ed5d299de") : "Windows 8 Enterprise",
uuid.UUID("e14997e7-800a-4cf7-ad10-de4b45b578db") : "Windows 8 Enterprise N",
uuid.UUID("10018baf-ce21-4060-80bd-47fe74ed4dab") : "Windows 8 Embedded Industry Professional",
uuid.UUID("18db1848-12e0-4167-b9d7-da7fcda507db") : "Windows 8 Embedded Industry Enterprise",
uuid.UUID("af35d7b7-5035-4b63-8972-f0b747b9f4dc") : "Windows 8 Core ARM",
############################
## Windows Server 2008 R2 ##
############################
uuid.UUID("a78b8bd9-8017-4df5-b86a-09f756affa7c") : "Windows Server 2008 R2 Web",
uuid.UUID("cda18cf3-c196-46ad-b289-60c072869994") : "Windows Server 2008 R2 HPC Edition (Compute Cluster)",
uuid.UUID("68531fb9-5511-4989-97be-d11a0f55633f") : "Windows Server 2008 R2 Standard",
uuid.UUID("620e2b3d-09e7-42fd-802a-17a13652fe7a") : "Windows Server 2008 R2 Enterprise",
uuid.UUID("7482e61b-c589-4b7f-8ecc-46d455ac3b87") : "Windows Server 2008 R2 Datacenter",
uuid.UUID("8a26851c-1c7e-48d3-a687-fbca9b9ac16b") : "Windows Server 2008 R2 for Itanium-based Systems",
###############
## Windows 7 ##
###############
uuid.UUID("b92e9980-b9d5-4821-9c94-140f632f6312") : "Windows 7 Professional",
uuid.UUID("54a09a0d-d57b-4c10-8b69-a842d6590ad5") : "Windows 7 Professional N",
uuid.UUID("5a041529-fef8-4d07-b06f-b59b573b32d2") : "Windows 7 Professional E",
uuid.UUID("ae2ee509-1b34-41c0-acb7-6d4650168915") : "Windows 7 Enterprise",
uuid.UUID("1cb6d605-11b3-4e14-bb30-da91c8e3983a") : "Windows 7 Enterprise N",
uuid.UUID("46bbed08-9c7b-48fc-a614-95250573f4ea") : "Windows 7 Enterprise E",
uuid.UUID("db537896-376f-48ae-a492-53d0547773d0") : "Windows 7 Embedded POSReady",
uuid.UUID("aa6dd3aa-c2b4-40e2-a544-a6bbb3f5c395") : "Windows 7 Embedded ThinPC",
uuid.UUID("e1a8296a-db37-44d1-8cce-7bc961d59c54") : "Windows 7 Embedded Standard",
#########################
## Windows Server 2008 ##
#########################
uuid.UUID("ddfa9f7c-f09e-40b9-8c1a-be877a9a7f4b") : "Windows Server 2008 Web",
uuid.UUID("ad2542d4-9154-4c6d-8a44-30f11ee96989") : "Windows Server 2008 Standard",
uuid.UUID("2401e3d0-c50a-4b58-87b2-7e794b7d2607") : "Windows Server 2008 Standard without Hyper-V",
uuid.UUID("c1af4d90-d1bc-44ca-85d4-003ba33db3b9") : "Windows Server 2008 Enterprise",
uuid.UUID("8198490a-add0-47b2-b3ba-316b12d647b4") : "Windows Server 2008 Enterprise without Hyper-V",
uuid.UUID("7afb1156-2c1d-40fc-b260-aab7442b62fe") : "Windows Server 2008 HPC Edition (Compute Cluster)",
uuid.UUID("68b6e220-cf09-466b-92d3-45cd964b9509") : "Windows Server 2008 Datacenter",
uuid.UUID("fd09ef77-5647-4eff-809c-af2b64659a45") : "Windows Server 2008 Datacenter without Hyper-V",
uuid.UUID("01ef176b-3e0d-422a-b4f8-4ea880035e8f") : "Windows Server 2008 for Itanium-based Systems",
###################
## Windows Vista ##
###################
uuid.UUID("4f3d1606-3fea-4c01-be3c-8d671c401e3b") : "Windows Vista Business",
uuid.UUID("2c682dc2-8b68-4f63-a165-ae291d4cf138") : "Windows Vista Business N",
uuid.UUID("cfd8ff08-c0d7-452b-9f60-ef5c70c32094") : "Windows Vista Enterprise",
uuid.UUID("d4f54950-26f2-4fb4-ba21-ffab16afcade") : "Windows Vista Enterprise N",
#################
## Office 2019 ##
#################
uuid.UUID("0bc88885-718c-491d-921f-6f214349e79c") : "Office Professional Plus 2019 [Click-to-Run]",
uuid.UUID("fc7c4d0c-2e85-4bb9-afd4-01ed1476b5e9") : "Office Project Professional 2019 [Click-to-Run]",
uuid.UUID("500f6619-ef93-4b75-bcb4-82819998a3ca") : "Office Visio Professional 2019 [Click-to-Run]",
uuid.UUID("85dd8b5f-eaa4-4af3-a628-cce9e77c9a03") : "Office Professional Plus 2019",
uuid.UUID("6912a74b-a5fb-401a-bfdb-2e3ab46f4b02") : "Office Standard 2019",
uuid.UUID("2ca2bf3f-949e-446a-82c7-e25a15ec78c4") : "Office Project Professional 2019",
uuid.UUID("1777f0e3-7392-4198-97ea-8ae4de6f6381") : "Office Project Standard 2019",
uuid.UUID("5b5cf08f-b81a-431d-b080-3450d8620565") : "Office Visio Professional 2019",
uuid.UUID("e06d7df3-aad0-419d-8dfb-0ac37e2bdf39") : "Office Visio Standard 2019",
uuid.UUID("9e9bceeb-e736-4f26-88de-763f87dcc485") : "Office Access 2019",
uuid.UUID("237854e9-79fc-4497-a0c1-a70969691c6b") : "Office Excel 2019",
uuid.UUID("c8f8a301-19f5-4132-96ce-2de9d4adbd33") : "Office Outlook 2019",
uuid.UUID("3131fd61-5e4f-4308-8d6d-62be1987c92c") : "Office PowerPoint 2019",
uuid.UUID("9d3e4cca-e172-46f1-a2f4-1d2107051444") : "Office Publisher 2019",
uuid.UUID("734c6c6e-b0ba-4298-a891-671772b2bd1b") : "Office Skype for Business 2019",
uuid.UUID("059834fe-a8ea-4bff-b67b-4d006b5447d3") : "Office Word 2019",
#################
## Office 2016 ##
#################
uuid.UUID("d450596f-894d-49e0-966a-fd39ed4c4c64") : "Office Professional Plus 2016",
uuid.UUID("dedfa23d-6ed1-45a6-85dc-63cae0546de6") : "Office Standard 2016",
uuid.UUID("4f414197-0fc2-4c01-b68a-86cbb9ac254c") : "Office Project Professional 2016",
uuid.UUID("829b8110-0e6f-4349-bca4-42803577788d") : "Office Project Professional 2016 [Click-to-Run]",
uuid.UUID("da7ddabc-3fbe-4447-9e01-6ab7440b4cd4") : "Office Project Standard 2016",
uuid.UUID("cbbaca45-556a-4416-ad03-bda598eaa7c8") : "Office Project Standard 2016 [Click-to-Run]",
uuid.UUID("6bf301c1-b94a-43e9-ba31-d494598c47fb") : "Office Visio Professional 2016",
uuid.UUID("b234abe3-0857-4f9c-b05a-4dc314f85557") : "Office Visio Professional 2016 [Click-to-Run]",
uuid.UUID("aa2a7821-1827-4c2c-8f1d-4513a34dda97") : "Office Visio Standard 2016",
uuid.UUID("361fe620-64f4-41b5-ba77-84f8e079b1f7") : "Office Visio Standard 2016 [Click-to-Run]",
uuid.UUID("67c0fc0c-deba-401b-bf8b-9c8ad8395804") : "Office Access 2016",
uuid.UUID("c3e65d36-141f-4d2f-a303-a842ee756a29") : "Office Excel 2016",
uuid.UUID("9caabccb-61b1-4b4b-8bec-d10a3c3ac2ce") : "Office Mondo 2016",
uuid.UUID("e914ea6e-a5fa-4439-a394-a9bb3293ca09") : "Office Mondo Retail 2016",
uuid.UUID("d8cace59-33d2-4ac7-9b1b-9b72339c51c8") : "Office OneNote 2016",
uuid.UUID("ec9d9265-9d1e-4ed0-838a-cdc20f2551a1") : "Office Outlook 2016",
uuid.UUID("d70b1bba-b893-4544-96e2-b7a318091c33") : "Office Powerpoint 2016",
uuid.UUID("041a06cb-c5b8-4772-809f-416d03d16654") : "Office Publisher 2016",
uuid.UUID("83e04ee1-fa8d-436d-8994-d31a862cab77") : "Office Skype for Business 2016",
uuid.UUID("bb11badf-d8aa-470e-9311-20eaf80fe5cc") : "Office Word 2016",
#################
## Office 2013 ##
#################
uuid.UUID("87d2b5bf-d47b-41fb-af62-71c382f5cc85") : "Office Professional Plus 2013 [Preview]",
uuid.UUID("b322da9c-a2e2-4058-9e4e-f59a6970bd69") : "Office Professional Plus 2013",
uuid.UUID("b13afb38-cd79-4ae5-9f7f-eed058d750ca") : "Office Standard 2013",
uuid.UUID("3cfe50a9-0e03-4b29-9754-9f193f07b71f") : "Office Project Professional 2013 [Preview]",
uuid.UUID("4a5d124a-e620-44ba-b6ff-658961b33b9a") : "Office Project Professional 2013",
uuid.UUID("39e49e57-ae68-4ee3-b098-26480df3da96") : "Office Project Standard 2013 [Preview]",
uuid.UUID("427a28d1-d17c-4abf-b717-32c780ba6f07") : "Office Project Standard 2013",
uuid.UUID("cfbfd60e-0b5f-427d-917c-a4df42a80e44") : "Office Visio Professional 2013 [Preview]",
uuid.UUID("e13ac10e-75d0-4aff-a0cd-764982cf541c") : "Office Visio Professional 2013",
uuid.UUID("7012cc81-8887-42e9-b17d-4e5e42760f0d") : "Office Visio Standard 2013 [Preview]",
uuid.UUID("ac4efaf0-f81f-4f61-bdf7-ea32b02ab117") : "Office Visio Standard 2013",
uuid.UUID("44b538e2-fb34-4732-81e4-644c17d2e746") : "Office Access 2013 [Preview]",
uuid.UUID("6ee7622c-18d8-4005-9fb7-92db644a279b") : "Office Access 2013",
uuid.UUID("9373bfa0-97b3-4587-ab73-30934461d55c") : "Office Excel 2013 [Preview]",
uuid.UUID("f7461d52-7c2b-43b2-8744-ea958e0bd09a") : "Office Excel 2013",
uuid.UUID("67c0f908-184f-4f64-8250-12db797ab3c3") : "Office OneNote 2013 [Preview]",
uuid.UUID("efe1f3e6-aea2-4144-a208-32aa872b6545") : "Office OneNote 2013",
uuid.UUID("7bce4e7a-dd80-4682-98fa-f993725803d2") : "Office Outlook 2013 [Preview]",
uuid.UUID("771c3afa-50c5-443f-b151-ff2546d863a0") : "Office OutLook 2013",
uuid.UUID("1ec10c0a-54f6-453e-b85a-6fa1bbfea9b7") : "Office PowerPoint 2013 [Preview]",
uuid.UUID("8c762649-97d1-4953-ad27-b7e2c25b972e") : "Office PowerPoint 2013",
uuid.UUID("15aa2117-8f79-49a8-8317-753026d6a054") : "Office Publisher 2013 [Preview]",
uuid.UUID("00c79ff1-6850-443d-bf61-71cde0de305f") : "Office Publisher 2013",
uuid.UUID("7ccc8256-fbaa-49c6-b2a9-f5afb4257cd2") : "Office InfoPath 2013 [Preview]",
uuid.UUID("a30b8040-d68a-423f-b0b5-9ce292ea5a8f") : "Office InfoPath 2013",
uuid.UUID("c53dfe17-cc00-4967-b188-a088a965494d") : "Office Lync 2013 [Preview]",
uuid.UUID("1b9f11e3-c85c-4e1b-bb29-879ad2c909e3") : "Office Lync 2013",
uuid.UUID("de9c7eb6-5a85-420d-9703-fff11bdd4d43") : "Office Word 2013 [Preview]",
uuid.UUID("d9f5b1c6-5386-495a-88f9-9ad6b41ac9b3") : "Office Word 2013",
uuid.UUID("2816a87d-e1ed-4097-b311-e2341c57b179") : "Office Mondo 2013 [Preview]",
uuid.UUID("dc981c6b-fc8e-420f-aa43-f8f33e5c0923") : "Office Mondo 2013",
uuid.UUID("aa286eb4-556f-4eeb-967c-c1b771b7673e") : "Office SharePoint Workspace (Groove) 2013 [Preview]",
uuid.UUID("fb4875ec-0c6b-450f-b82b-ab57d8D1677f") : "Office SharePoint Workspace (Groove) 2013",
## uuid.UUID("???") : "Office SharePoint Designer (Frontpage) 2013 [Preview]",
uuid.UUID("ba3e3833-6a7e-445a-89d0-7802a9a68588") : "Office SharePoint Designer (Frontpage) 2013",
uuid.UUID("1dc00701-03af-4680-b2af-007ffc758a1f") : "Office Mondo Retail 2013",
#################
## Office 2010 ##
#################
uuid.UUID("6f327760-8c5c-417c-9b61-836a98287e0c") : "Office Professional Plus 2010",
uuid.UUID("9da2a678-fb6b-4e67-ab84-60dd6a9c819a") : "Office Standard 2010",
uuid.UUID("df133ff7-bf14-4f95-afe3-7b48e7e331ef") : "Office Project Professional 2010",
uuid.UUID("5dc7bf61-5ec9-4996-9ccb-df806a2d0efe") : "Office Project Standard 2010",
uuid.UUID("e558389c-83c3-4b29-adfe-5e4d7f46c358") : "Office Visio Professional 2010",
uuid.UUID("9ed833ff-4f92-4f36-b370-8683a4f13275") : "Office Visio Standard 2010",
uuid.UUID("92236105-bb67-494f-94c7-7f7a607929bd") : "Office Visio Premium 2010",
uuid.UUID("8ce7e872-188c-4b98-9d90-f8f90b7aad02") : "Office Access 2010",
uuid.UUID("cee5d470-6e3b-4fcc-8c2b-d17428568a9f") : "Office Excel 2010",
uuid.UUID("ab586f5c-5256-4632-962f-fefd8b49e6f4") : "Office OneNote 2010",
uuid.UUID("ecb7c192-73ab-4ded-acf4-2399b095d0cc") : "Office OutLook 2010",
uuid.UUID("45593b1d-dfb1-4e91-bbfb-2d5d0ce2227a") : "Office PowerPoint 2010",
uuid.UUID("b50c4f75-599b-43e8-8dcd-1081a7967241") : "Office Publisher 2010",
uuid.UUID("ca6b6639-4ad6-40ae-a575-14dee07f6430") : "Office InfoPath 2010",
uuid.UUID("8947d0b8-c33b-43e1-8c56-9b674c052832") : "Office SharePoint Workspace (Groove) 2010",
uuid.UUID("2d0882e7-a4e7-423b-8ccc-70d91e0158b1") : "Office Word 2010",
uuid.UUID("ea509e87-07a1-4a45-9edc-eba5a39f36af") : "Office Small Business Basics 2010",
uuid.UUID("2745e581-565a-4670-ae90-6bf7c57ffe43") : "Office Starter 2010 Retail",
## uuid.UUID("???") : "Office SharePoint Designer (Frontpage) 2010",
uuid.UUID("09ed9640-f020-400a-acd8-d7d867dfd9c2") : "Office Mondo 1 2010",
uuid.UUID("ef3d4e49-a53d-4d81-a2b1-2ca6c2556b2c") : "Office Mondo 2 2010",
######################
## Windows Previews ##
######################
uuid.UUID("a4383e6b-dada-423d-a43d-f25678429676") : "Windows 8.1 Professional (Blue) [Preview]",
uuid.UUID("631ead72-a8ab-4df8-bbdf-372029989bdd") : "Windows 8.1 ARM [Beta Pre-Release]",
uuid.UUID("2b9c337f-7a1d-4271-90a3-c6855a2b8a1c") : "Windows 8.1 [Beta Pre-Release]",
uuid.UUID("ba947c44-d19d-4786-b6ae-22770bc94c54") : "Windows Server 2016 Datacenter [Preview]",
uuid.UUID("ff808201-fec6-4fd4-ae16-abbddade5706") : "Windows 10 Professional [Pre-Release]",
uuid.UUID("cf59a07b-1a2a-4be0-bfe0-423b5823e663") : "Windows 8 Professional WMC [RC]",
#################################
## A lot of Previews to define ##
#################################
uuid.UUID("34260150-69ac-49a3-8a0d-4a403ab55763") : "Windows 10 Professional N [Pre-Release]",
uuid.UUID("64192251-81b0-4898-ac63-913cc3edf919") : "Windows XX [XX]",
uuid.UUID("cc17e18a-fa93-43d6-9179-72950a1e931a") : "Windows 10 Professional WMC [Pre-Release]",
uuid.UUID("903663f7-d2ab-49c9-8942-14aa9e0a9c72") : "Windows 10 Home / Core [Pre-Release]",
uuid.UUID("4dfd543d-caa6-4f69-a95f-5ddfe2b89567") : "Windows 10 Home / Core N [Pre-Release]",
uuid.UUID("6496e59d-89dc-49eb-a353-09ceb9404845") : "Windows 10 Home / Core [Pre-Release]",
uuid.UUID("2cc171ef-db48-4adc-af09-7c574b37f139") : "Windows 10 Home / Core Single Language [Pre-Release]",
uuid.UUID("5fe40dd6-cf1f-4cf2-8729-92121ac2e997") : "Windows 10 Home / Core Country Specific [Pre-Release]",
uuid.UUID("af43f7f0-3b1e-4266-a123-1fdb53f4323b") : "Windows 10 Education [Pre-Release]",
uuid.UUID("075aca1f-05d7-42e5-a3ce-e349e7be7078") : "Windows 10 Education N [Pre-Release]",
uuid.UUID("e8ced63e-420d-4ab6-8723-aaf165efb5eb") : "Windows XX Education [Pre-Release]",
uuid.UUID("3885bca5-11c1-4d4e-9395-df38f7f09a0e") : "Windows XX Education N [Pre-Release]",
uuid.UUID("6ae51eeb-c268-4a21-9aae-df74c38b586d") : "Windows 10 Enterprise N [Pre-Release]",
uuid.UUID("c23947f3-3f2e-401f-a38c-f38fe0ecb0bd") : "Windows XX Enterprise N [XX]",
uuid.UUID("38fbe2ac-465a-4ef7-b9d8-72044f2792b6") : "Windows XX Enterprise [XX]",
uuid.UUID("2cf5af84-abab-4ff0-83f8-f040fb2576eb") : "Windows 10 Enterprise XX LTSB [Pre-Release]",
uuid.UUID("11a37f09-fb7f-4002-bd84-f3ae71d11e90") : "Windows 10 Enterprise XX LTSB N [Pre-Release]",
uuid.UUID("75d003b0-dc66-42c0-b3a1-308a3f35741a") : "Windows 10 Enterprise XX LTSB [Pre-Release]",
uuid.UUID("4e4d5504-e7b1-419c-913d-3c80c15294fc") : "Windows 10 Enterprise XX LTSB N [Pre-Release]",
uuid.UUID("43f2ab05-7c87-4d56-b27c-44d0f9a3dabd") : "Windows 10 Enterprise [Pre-Release]",
uuid.UUID("b554b49f-4d57-4f08-955e-87886f514d49") : "Windows 10 Core ARM [Pre-Release]",
uuid.UUID("f18bbe32-16dc-48d4-a27b-5f3966f82513") : "Windows 10 Core Connected N [Pre-Release]",
uuid.UUID("964a60f6-1505-4ddb-af03-6a9ce6997d3b") : "Windows 10 Core Connected Single Language [Pre-Release]",
uuid.UUID("b5fe5eaa-14cc-4075-84ae-57c0206d1133") : "Windows 10 Core Connected Country Specific [Pre-Release]",
uuid.UUID("827a0032-dced-4609-ab6e-16b9d8a40280") : "Windows 10 Core Connected [Pre-Release]",
uuid.UUID("b15187db-11c6-4f13-91ca-8121cebf5b88") : "Windows 10 Professional S [Pre-Release]",
uuid.UUID("6cdbc9fb-63f5-431b-a5c0-c6f19ae26a9b") : "Windows 10 Professional S N [Pre-Release]",
uuid.UUID("aa234c15-ee34-4e5f-adb5-73afafb77143") : "Windows XX Professional S [Pre-Release]",
uuid.UUID("9f6a1bc9-5278-4991-88c9-7301c87a75ea") : "Windows XX Professional S N [Pre-Release]",
uuid.UUID("49066601-00dc-4d2c-83a8-4343a7b990d1") : "Windows 10 Professional Student [Pre-Release]",
uuid.UUID("bd64ebf7-d5ec-44c5-ba00-6813441c8c87") : "Windows 10 Professional Student N [Pre-Release]",
uuid.UUID("5b2add49-b8f4-42e0-a77c-adad4efeeeb1") : "Windows 10 PPIPro [Pre-Release]",
uuid.UUID("3a9a9414-24bf-4836-866d-ba13a298efb0") : "Windows 8 Core ARM [RC]",
uuid.UUID("c8cca3ca-bea8-4f6f-87e0-4d050ce8f0a9") : "Windows 8 Embedded Industry Enterprise [TAP-CTP]",
uuid.UUID("5ca3e488-dbae-4fae-8282-a98fbcd21126") : "Windows 8 Embedded Industry Enterprise [Beta]",
uuid.UUID("cde952c7-2f96-4d9d-8f2b-2d349f64fc51") : "Windows 8.1 Enterprise [Pre-Release]",
uuid.UUID("c436def1-0dcc-4849-9a59-8b6142eb70f3") : "Windows 8.1 Core Connected [Pre-Release]",
uuid.UUID("86f72c8d-8363-4188-b574-1a53cb374711") : "Windows 8.1 Core Connected N [Pre-Release]",
uuid.UUID("a8651bfb-7fe0-40df-b156-87337ecd5acc") : "Windows 8.1 Core Connected Country Specific [Pre-Release]",
uuid.UUID("5b120df4-ea3f-4e82-b0c0-6568f719730e") : "Windows 8.1 Core Connected Single Language [Pre-Release]",
uuid.UUID("fd5ae385-f5cf-4b53-b1fa-1af6fff7c0d8") : "Windows 8.1 Professional Student [Pre-Release]",
uuid.UUID("687f6358-6a21-453a-a712-3b3b57123827") : "Windows 8.1 Professional Student N [Pre-Release]",
uuid.UUID("c35a9336-fb02-48db-8f4d-245c17f03667") : "Windows 8.1 Embedded Industry [Beta]",
uuid.UUID("4daf1e3e-6be9-4848-8f5a-a18a0d2895e1") : "Windows 8.1 Embedded Industry Enterprise [Beta]",
uuid.UUID("9cc2564c-292e-4d8a-b9f9-1f5007d9409a") : "Windows 8.1 Embedded Industry Automotive [Beta]",
uuid.UUID("3ddb92aa-332e-46f9-abb7-8bdf62f8d967") : "Windows Longhorn Web Edition [XX]",
uuid.UUID("7ea4f647-9e67-453b-a7ba-56f7102afde2") : "Windows Longhorn Standard Server [XX]",
uuid.UUID("5a99526c-1c09-4481-80fb-b60e8b3d99f8") : "Windows Longhorn Enterprise Server [XX]",
uuid.UUID("8372b47d-5221-41d8-88d0-3f924e50623e") : "Windows Longhorn Computer Cluster [XX]",
uuid.UUID("932ef1f5-4327-4548-b147-51b0f5502995") : "Windows Longhorn Datacenter Server [XX]",
uuid.UUID("bebf03b1-a184-4c5e-9103-88af08055e68") : "Windows Longhorn Enterprise Server IA64 [XX]",
uuid.UUID("bfa6b683-56be-47b8-a22e-461b27b9cf11") : "Windows Server XX MultiPoint Standard [XX]",
uuid.UUID("bc20fb5b-4097-484f-84d2-55b18dac95eb") : "Windows Server XX MultiPoint Premium [XX]",
uuid.UUID("8a409d61-30fe-4903-bdbc-1fb28603ba3a") : "Windows Server XX Enterprise [XX]",
uuid.UUID("9dce1f29-bb10-4be0-8027-35b953dd46d5") : "Windows 7 Server Enterprise [XX]",
uuid.UUID("bf9eda2f-74cc-4ba3-8967-cde30f18c230") : "Windows 7 Server Enterprise IA64 [XX]",
uuid.UUID("dc06c019-b222-4706-a820-645e77d26a91") : "Windows 7 Server Enterprise without Hyper-V [XX]",
uuid.UUID("d3872724-5c08-4b1b-91f2-fc9eafed4990") : "Windows XX Server Standard [XX]",
uuid.UUID("92374131-ed4c-4d1b-846a-32f43c3eb90d") : "Windows 7 Server Standard [XX]",
uuid.UUID("f963bf4b-9693-46e6-9d9d-09c73eaa2b60") : "Windows 7 Server Standard without Hyper-V [XX]",
uuid.UUID("e5676f13-9b66-4a1f-8b0c-43490e236202") : "Windows XX Server Web [XX]",
uuid.UUID("4f4cfa6c-76d8-49f5-9c41-0a57f8af1bbc") : "Windows 7 Server Web [XX]",
uuid.UUID("0839e017-cfef-4ac6-a97e-ed2ea7962787") : "Windows 7 Server Datacenter without Hyper-V [XX]",
uuid.UUID("cc64c548-1867-4777-a1cc-0022691bc2a0") : "Windows 7 Server Datacenter [XX]",
uuid.UUID("2412bea9-b6e0-441e-8dc2-a13720b42de9") : "Windows XX Server HPC Edition [XX]",
uuid.UUID("c6e3410d-e48d-41eb-8ca9-848397f46d02") : "Windows Server 2012 N / Windows 8 Core N [RC]",
uuid.UUID("b148c3f4-6248-4d2f-8c6d-31cce7ae95c3") : "Windows Server 2012 Single Language / Windows 8 Core Single Language [RC]",
uuid.UUID("c7a8a09a-571c-4ea8-babc-0cbe4d48a89d") : "Windows Server 2012 Country Specific / Windows 8 Core Country Specific [RC]",
uuid.UUID("8f365ba6-c1b9-4223-98fc-282a0756a3ed") : "Windows Server 2012 R2 Essentials [RTM]",
uuid.UUID("b995b62c-eae2-40aa-afb9-111889a84ef4") : "Windows XX Server HI [Beta]",
uuid.UUID("99ff9b26-016a-49d3-982e-fc492f352e57") : "Windows Vista Business [XX]",
uuid.UUID("90284483-de09-44a2-a406-98957f8dd09d") : "Windows Vista Business [XX]",
uuid.UUID("af46f56f-f06b-49f0-a420-caa8a8d2bf8c") : "Windows Vista Business N [XX]",
uuid.UUID("cf67834d-db4a-402c-ab1f-2c134f02b700") : "Windows Vista Enterprise [XX]",
uuid.UUID("14478aca-ea15-4958-ac34-359281101c99") : "Windows Vista Enterprise [XX]",
uuid.UUID("0707c7fc-143d-46a4-a830-3705e908202c") : "Windows Vista Enterprise N [XX]",
uuid.UUID("957ec1e8-97cd-42a8-a091-01a30cf779da") : "Windows 7 Business [XX]",
uuid.UUID("0ff4e536-a746-4018-b107-e81dd0b6d33a") : "Windows 7 Business N [XX]",
uuid.UUID("ea77973e-4930-4fa1-a899-02dfaeada1db") : "Windows 7 Enterprise [XX]",
uuid.UUID("e4ecef68-4372-4740-98e8-6c157cd301c2") : "Windows 7 Enterprise N [XX]",
uuid.UUID("2a4403df-877f-4046-8271-db6fb6ec54c8") : "Enterprise ProdKey3 Win 9984 DLA/Bypass NQR Test",
uuid.UUID("38fbe2ac-465a-4ef7-b9d8-72044f2792b6") : "Windows XX Enterprise [XX]",
}
licenseStates = {
0 : "Unlicensed",
1 : "Activated",
@ -464,29 +113,10 @@ class kmsBase:
'SL_E_VL_MACHINE_NOT_BOUND' : 0xC004F056
}
def __init__(self, data, config):
self.data = data
self.config = config
def getConfig(self):
return self.config
def getOptions(self):
return self.config
def getData(self):
return self.data
def getResponse(self):
return ''
def getResponsePadding(self, bodyLength):
if bodyLength % 8 == 0:
paddingLength = 0
else:
paddingLength = 8 - bodyLength % 8
padding = bytearray(paddingLength)
return padding
def getPadding(self, bodyLength):
## https://forums.mydigitallife.info/threads/71213-Source-C-KMS-Server-from-Microsoft-Toolkit?p=1277542&viewfull=1#post1277542
return 4 + (((~bodyLength & 3) + 1) & 3)
def serverLogic(self, kmsRequest):
if self.config['sqlite'] and self.config['dbSupport']:
@ -497,10 +127,11 @@ class kmsBase:
try:
con = sqlite3.connect(self.dbName)
cur = con.cursor()
cur.execute("CREATE TABLE clients(clientMachineId TEXT, machineName TEXT, applicationId TEXT, skuId TEXT, licenseStatus TEXT, lastRequestTime INTEGER, kmsEpid TEXT, requestCount INTEGER)")
cur.execute("CREATE TABLE clients(clientMachineId TEXT, machineName TEXT, applicationId TEXT, \
skuId TEXT, licenseStatus TEXT, lastRequestTime INTEGER, kmsEpid TEXT, requestCount INTEGER)")
except sqlite3.Error, e:
logging.error("%s:" % e.args[0])
logging.error("Error %s:" % e.args[0])
sys.exit(1)
finally:
@ -513,30 +144,68 @@ class kmsBase:
logging.debug("KMS Request: \n%s\n" % justify(kmsRequest.dump(print_to_stdout = False)))
clientMachineId = kmsRequest['clientMachineId'].get()
global applicationId
applicationId = kmsRequest['applicationId'].get()
skuId = kmsRequest['skuId'].get()
requestDatetime = filetimes.filetime_to_dt(kmsRequest['requestTime'])
# Try and localize the request time, if pytz is available
# Localize the request time, if module "tzlocal" is available.
try:
import timezones
from pytz import utc
local_dt = utc.localize(requestDatetime).astimezone(timezones.localtz())
except ImportError:
local_dt = requestDatetime
from tzlocal import get_localzone
from pytz.exceptions import UnknownTimeZoneError
try:
tz = get_localzone()
local_dt = tz.localize(requestDatetime)
except UnknownTimeZoneError:
logging.warning('Unknown time zone ! Request time not localized.')
local_dt = requestDatetime
except ImportError:
logging.warning('Module "tzlocal" not available ! Request time not localized.')
local_dt = requestDatetime
# Get SkuId, AppId and client threshold.
appName, skuName = applicationId, skuId
kmsdb = kmsDB2Dict()
appitems = kmsdb[2]
for appitem in appitems:
kmsitems = appitem['KmsItems']
for kmsitem in kmsitems:
# Activation threshold.
try:
count = int(kmsitem['NCountPolicy'])
except KeyError:
count = 25
if self.config["CurrentClientCount"] <= count:
currentClientCount = count + 1
else:
currentClientCount = self.config["CurrentClientCount"]
skuitems = kmsitem['SkuItems']
for skuitem in skuitems:
try:
if uuid.UUID(skuitem['Id']) == skuId:
skuName = skuitem['DisplayName']
break
except IndexError:
pass
if uuid.UUID(appitem['Id']) == applicationId:
appName = appitem['DisplayName']
infoDict = {
"machineName" : kmsRequest.getMachineName(),
"clientMachineId" : str(clientMachineId),
"appId" : self.appIds.get(applicationId, str(applicationId)),
"skuId" : self.skuIds.get(skuId, str(skuId)),
"appId" : appName,
"skuId" : skuName,
"licenseStatus" : kmsRequest.getLicenseStatus(),
"requestTime" : int(time.time()),
"kmsEpid" : None
}
#print infoDict
logging.info("Machine Name: %s" % infoDict["machineName"])
logging.info("Client Machine ID: %s" % infoDict["clientMachineId"])
logging.info("Application ID: %s" % infoDict["appId"])
@ -554,48 +223,57 @@ class kmsBase:
data = cur.fetchone()
if not data:
#print "Inserting row..."
cur.execute("INSERT INTO clients (clientMachineId, machineName, applicationId, skuId, licenseStatus, lastRequestTime, requestCount) VALUES (:clientMachineId, :machineName, :appId, :skuId, :licenseStatus, :requestTime, 1);", infoDict)
cur.execute("INSERT INTO clients (clientMachineId, machineName, applicationId, \
skuId, licenseStatus, lastRequestTime, requestCount) VALUES (:clientMachineId, :machineName, :appId, :skuId, :licenseStatus, :requestTime, 1);", infoDict)
else:
#print "Data:", data
if data[1] != infoDict["machineName"]:
cur.execute("UPDATE clients SET machineName=:machineName WHERE clientMachineId=:clientMachineId;", infoDict)
cur.execute("UPDATE clients SET machineName=:machineName WHERE \
clientMachineId=:clientMachineId;", infoDict)
if data[2] != infoDict["appId"]:
cur.execute("UPDATE clients SET applicationId=:appId WHERE clientMachineId=:clientMachineId;", infoDict)
cur.execute("UPDATE clients SET applicationId=:appId WHERE \
clientMachineId=:clientMachineId;", infoDict)
if data[3] != infoDict["skuId"]:
cur.execute("UPDATE clients SET skuId=:skuId WHERE clientMachineId=:clientMachineId;", infoDict)
cur.execute("UPDATE clients SET skuId=:skuId WHERE \
clientMachineId=:clientMachineId;", infoDict)
if data[4] != infoDict["licenseStatus"]:
cur.execute("UPDATE clients SET licenseStatus=:licenseStatus WHERE clientMachineId=:clientMachineId;", infoDict)
cur.execute("UPDATE clients SET licenseStatus=:licenseStatus WHERE \
clientMachineId=:clientMachineId;", infoDict)
if data[5] != infoDict["requestTime"]:
cur.execute("UPDATE clients SET lastRequestTime=:requestTime WHERE clientMachineId=:clientMachineId;", infoDict)
cur.execute("UPDATE clients SET lastRequestTime=:requestTime WHERE \
clientMachineId=:clientMachineId;", infoDict)
# Increment requestCount
cur.execute("UPDATE clients SET requestCount=requestCount+1 WHERE clientMachineId=:clientMachineId;", infoDict)
cur.execute("UPDATE clients SET requestCount=requestCount+1 WHERE \
clientMachineId=:clientMachineId;", infoDict)
except sqlite3.Error, e:
logging.error("%s:" % e.args[0])
logging.error("Error %s:" % e.args[0])
except sqlite3.Error, e:
logging.error("%s:" % e.args[0])
logging.error("Error %s:" % e.args[0])
sys.exit(1)
finally:
if con:
con.commit()
con.close()
return self.createKmsResponse(kmsRequest)
return self.createKmsResponse(kmsRequest, currentClientCount)
def createKmsResponse(self, kmsRequest):
def createKmsResponse(self, kmsRequest, currentClientCount):
response = self.kmsResponseStruct()
response['versionMinor'] = kmsRequest['versionMinor']
response['versionMajor'] = kmsRequest['versionMajor']
#print " : ", kmsRequest['applicationId'] ----> This line was returning garbage in the pidGenerator
if not self.config["epid"]:
response["kmsEpid"] = kmsPidGenerator.epidGenerator(applicationId, kmsRequest['versionMajor'], self.config["lcid"]).encode('utf-16le')
response["kmsEpid"] = kmsPidGenerator.epidGenerator(kmsRequest['kmsCountedId'].get(), kmsRequest['versionMajor'],
self.config["lcid"]).encode('utf-16le')
else:
response["kmsEpid"] = self.config["epid"].encode('utf-16le')
response['clientMachineId'] = kmsRequest['clientMachineId']
response['responseTime'] = kmsRequest['requestTime']
response['currentClientCount'] = self.config["CurrentClientCount"]
response['currentClientCount'] = currentClientCount
response['vLActivationInterval'] = self.config["VLActivationInterval"]
response['vLRenewalInterval'] = self.config["VLRenewalInterval"]
@ -607,18 +285,18 @@ class kmsBase:
cur.execute("SELECT * FROM clients WHERE clientMachineId=?;", [str(kmsRequest['clientMachineId'].get())])
try:
data = cur.fetchone()
#print "Data:", data
if data[6]:
response["kmsEpid"] = data[6].encode('utf-16le')
else:
cur.execute("UPDATE clients SET kmsEpid=? WHERE clientMachineId=?;", (str(response["kmsEpid"].decode('utf-16le')), str(kmsRequest['clientMachineId'].get())))
cur.execute("UPDATE clients SET kmsEpid=? WHERE clientMachineId=?;",
(str(response["kmsEpid"].decode('utf-16le')), str(kmsRequest['clientMachineId'].get())))
except sqlite3.Error, e:
logging.error("%s:" % e.args[0])
logging.error("Error %s:" % e.args[0])
except sqlite3.Error, e:
logging.error("%s:" % e.args[0])
sys.exit(1)
logging.error("Error %s:" % e.args[0])
sys.exit(1)
finally:
if con:
con.commit()
@ -633,22 +311,19 @@ import kmsRequestV4, kmsRequestV5, kmsRequestV6, kmsRequestUnknown
def generateKmsResponseData(data, config):
version = kmsBase.GenericRequestHeader(data)['versionMajor']
currentDate = datetime.datetime.now().ctime()
currentDate = time.strftime("%a %b %d %H:%M:%S %Y")
if version == 4:
logging.info("Received V%d request on %s." % (version, currentDate))
messagehandler = kmsRequestV4.kmsRequestV4(data, config)
messagehandler.executeRequestLogic()
messagehandler = kmsRequestV4.kmsRequestV4(data, config)
elif version == 5:
logging.info("Received V%d request on %s." % (version, currentDate))
messagehandler = kmsRequestV5.kmsRequestV5(data, config)
messagehandler.executeRequestLogic()
elif version == 6:
logging.info("Received V%d request on %s." % (version, currentDate))
messagehandler = kmsRequestV6.kmsRequestV6(data, config)
messagehandler.executeRequestLogic()
else:
logging.info("Unhandled KMS version V%d." % version)
messagehandler = kmsRequestUnknown.kmsRequestUnknown(data, config)
return messagehandler.getResponse()
return messagehandler.executeRequestLogic()

45
py2-kms/kmsDB2Dict.py Normal file
View file

@ -0,0 +1,45 @@
#!/usr/bin/env python
import os
import xml.etree.ElementTree as ET
def kmsDB2Dict():
path = os.path.join(os.path.dirname(__file__), 'KmsDataBase.xml')
root = ET.parse(path).getroot()
kmsdb, child1, child2, child3 = [ [] for _ in range(4) ]
## Get winbuilds.
for winbuild in root.iter('WinBuild'):
child1.append(winbuild.attrib)
kmsdb.append(child1)
## Get csvlkitem data.
child1 = []
for csvlk in root.iter('CsvlkItem'):
for activ in csvlk.iter('Activate'):
child2.append(activ.attrib['KmsItem'])
csvlk.attrib.update({'Activate' : child2})
child1.append(csvlk.attrib)
child2 = []
kmsdb.append(child1)
## Get appitem data.
child1 = []
for app in root.iter('AppItem'):
for kms in app.iter('KmsItem'):
for sku in kms.iter('SkuItem'):
child3.append(sku.attrib)
kms.attrib.update({'SkuItems' : child3})
child2.append(kms.attrib)
child3 = []
app.attrib.update({'KmsItems' : child2})
child1.append(app.attrib)
child2 = []
kmsdb.append(child1)
return kmsdb

View file

@ -4,122 +4,74 @@ import datetime
import random
import time
import uuid
from ast import literal_eval
APP_ID_WINDOWS = uuid.UUID("55C92734-D682-4D71-983E-D6EC3F16059F")
APP_ID_OFFICE14 = uuid.UUID("59A52881-A989-479D-AF46-F275C6370663")
APP_ID_OFFICE15 = uuid.UUID("0FF1CE15-A989-479D-AF46-F275C6370663")
from kmsDB2Dict import kmsDB2Dict
# KMS Host OS Type
hostOsList = {}
# Windows Server 2008 R2 SP1
hostOsList["HOST_SERVER2008R2"] = {
"type" : 55041,
"osBuild" : 7601
}
# Windows Server 2012 RTM
hostOsList["HOST_SERVER2012"] = {
"type" : 5426,
"osBuild" : 9200
}
# Windows Server 2012 R2 RTM
hostOsList["HOST_SERVER2012R2"] = {
"type" : 6401,
"osBuild" : 9600
}
# Windows Server 2016 RTM
hostOsList["HOST_SERVER2016"] = {
"type" : 3612,
"osBuild" : 14393
}
# Product Specific KeyConfig
pkeyConfigList = {}
# Windows Server KMS Host PID, actual PIDRangeMax = 191999999
pkeyConfigList["windows"] = {
"GroupID" : 206,
"PIDRangeMin" : 152000000,
"PIDRangeMax" : 191999999
}
# Windows Server 2012 R2 KMS Host PID, actual PIDRangeMax = 310999999
pkeyConfigList["windows2012r2"] = {
"GroupID" : 206,
"PIDRangeMin" : 271000000,
"PIDRangeMax" : 310999999
}
# Office 2010 KMSHost Class PID, actual PIDRangeMax = 217999999
pkeyConfigList["office14"] = {
"GroupID" : 96,
"PIDRangeMin" : 199000000,
"PIDRangeMax" : 217999999
}
# Office 2013 KMSHost Class PID, actual PIDRangeMax = 255999999
pkeyConfigList["office15"] = {
"GroupID" : 206,
"PIDRangeMin" : 234000000,
"PIDRangeMax" : 255999999
}
def epidGenerator(appId, version, lcid):
# Generate Part 1 & 7: Host Type and KMS Server OS Build
hostOsType = random.choice(hostOsList.keys())
hostOsDict = hostOsList[hostOsType]
def epidGenerator(kmsId, version, lcid):
kmsdb = kmsDB2Dict()
winbuilds, csvlkitems, appitems = kmsdb[0], kmsdb[1], kmsdb[2]
hosts, pkeys = [ [] for _ in range(2) ]
# Product Specific Detection (Get all CSVLK GroupID and PIDRange good for EPID generation), then
# Generate Part 2: Group ID and Product Key ID Range
if appId == APP_ID_OFFICE14:
keyConfig = pkeyConfigList["office14"]
elif appId == APP_ID_OFFICE15:
keyConfig = pkeyConfigList["office15"]
else:
# Default to Windows
if hostOsDict['osBuild'] == 14393:
keyConfig = pkeyConfigList["windows2012r2"]
elif hostOsDict['osBuild'] == 9600:
keyConfig = pkeyConfigList["windows2012r2"]
else:
keyConfig = pkeyConfigList["windows"]
for csvlkitem in csvlkitems:
try:
if kmsId in [ uuid.UUID(kmsitem) for kmsitem in csvlkitem['Activate'] ]:
pkeys.append( (csvlkitem['GroupId'], csvlkitem['MinKeyId'], csvlkitem['MaxKeyId'], csvlkitem['InvalidWinBuild']) )
except IndexError:
# fallback to Windows Server 2019 parameters.
GroupId, MinKeyId, MaxKeyId, Invalid = 206, 551000000, 570999999, [0,1,2]
pkey = random.choice(pkeys)
GroupId, MinKeyId, MaxKeyId, Invalid = int(pkey[0]), int(pkey[1]), int(pkey[2]), literal_eval(pkey[3])
# Get all KMS Server Host Builds good for EPID generation, then
# Generate Part 1 & 7: Host Type and KMS Server OS Build
# https://www.itprotoday.com/windows-78/volume-activation-server-2008
# https://docs.microsoft.com/en-us/windows-server/get-started-19/activation-19
# https://docs.microsoft.com/en-us/windows-server/get-started/windows-server-release-info
# https://support.microsoft.com/en-us/help/13853/windows-lifecycle-fact-sheet
for winbuild in winbuilds:
try:
# Check versus "InvalidWinBuild".
if int(winbuild['WinBuildIndex']) not in Invalid:
# Re-check versus "version" protocol.
if ((version == 4 and int(winbuild['BuildNumber']) >= 7601) or
(version == 5 and int(winbuild['BuildNumber']) >= 9200) or
(version == 6 and int(winbuild['BuildNumber']) >= 9600)):
hosts.append(winbuild)
except KeyError:
# fallback to Windows Server 2019 parameters.
BuildNumber, PlatformId, MinDate = '17763', '3612', '02/10/2018'
host = random.choice(hosts)
BuildNumber, PlatformId, MinDate = host['BuildNumber'], host['PlatformId'], host['MinDate']
# Generate Part 3 and Part 4: Product Key ID
productKeyID = random.randint(keyConfig["PIDRangeMin"], keyConfig["PIDRangeMax"])
productKeyID = random.randint(MinKeyId, MaxKeyId)
# Generate Part 5: License Channel (00=Retail, 01=Retail, 02=OEM,
# 03=Volume(GVLK,MAK)) - always 03
# Generate Part 5: License Channel (00=Retail, 01=Retail, 02=OEM, 03=Volume(GVLK,MAK)) - always 03
licenseChannel = 3
# Generate Part 6: Language - use system default language
# 1033 is en-us
languageCode = lcid # C# CultureInfo.InstalledUICulture.LCID
# Generate Part 6: Language - use system default language, 1033 is en-us
languageCode = lcid # (C# CultureInfo.InstalledUICulture.LCID)
# Generate Part 8: KMS Host Activation Date
# Get Minimum Possible Date: Newer Products first
if hostOsType == "HOST_SERVER2016":
# Microsoft Windows Server 2016 RTM
minTime = datetime.date(2016, 7, 27)
elif hostOsType == "HOST_SERVER2012R2" or version == 6:
# Microsoft Windows Server 2012 R2 RTM (October 17, 2013)
minTime = datetime.date(2013, 10, 17)
elif appId == APP_ID_OFFICE15:
# Microsoft Office 2013 RTM (October 24, 2012)
minTime = datetime.date(2012, 10, 24)
elif hostOsType == "HOST_SERVER2012" or version == 5:
# Microsoft Windows Server 2012 RTM (September 4, 2012)
minTime = datetime.date(2012, 9, 4)
else:
# Windows Server 2008 R2 SP1 (February 16, 2011)
minTime = datetime.date(2011, 2, 16)
d = datetime.datetime.strptime(MinDate, "%d/%m/%Y")
minTime = datetime.date(d.year, d.month, d.day)
# Generate Year and Day Number
randomDate = datetime.date.fromtimestamp(random.randint(time.mktime(minTime.timetuple()), time.mktime(datetime.datetime.now().timetuple())))
firstOfYear = datetime.date(randomDate.year, 1, 1)
randomDayNumber = int((time.mktime(randomDate.timetuple()) - time.mktime(firstOfYear.timetuple())) / 86400 + 0.5)
# generate the epid string
# Generate the EPID string
result = []
result.append(str(hostOsDict["type"]).rjust(5, "0"))
result.append(str(PlatformId).rjust(5, "0"))
result.append("-")
result.append(str(keyConfig["GroupID"]).rjust(5, "0"))
result.append(str(GroupId).rjust(5, "0"))
result.append("-")
result.append(str(productKeyID / 1000000).rjust(3, "0"))
result.append("-")
@ -129,8 +81,9 @@ def epidGenerator(appId, version, lcid):
result.append("-")
result.append(str(languageCode))
result.append("-")
result.append(str(hostOsDict["osBuild"]).rjust(4, "0"))
result.append(str(BuildNumber).rjust(4, "0"))
result.append(".0000-")
result.append(str(randomDayNumber).rjust(3, "0"))
result.append(str(randomDate.year).rjust(4, "0"))
return "".join(result)

View file

@ -5,7 +5,7 @@ import struct
from kmsBase import kmsBase
class kmsRequestUnknown(kmsBase):
def getResponse(self):
def executeRequestLogic(self):
finalResponse = bytearray()
finalResponse.extend(bytearray(struct.pack('<I', 0)))
finalResponse.extend(bytearray(struct.pack('<I', 0)))

View file

@ -1,7 +1,6 @@
#!/usr/bin/env python
import binascii
import struct
import time
import logging
@ -22,7 +21,7 @@ class kmsRequestV4(kmsBase):
class RequestV4(Structure):
commonHdr = ()
structure = (
('bodyLength1', '<I'),
('bodyLength1', '<I'),
('bodyLength2', '<I'),
('request', ':', kmsBase.kmsRequestStruct),
('hash', '16s'),
@ -32,9 +31,9 @@ class kmsRequestV4(kmsBase):
class ResponseV4(Structure):
commonHdr = ()
structure = (
('bodyLength1', '<I=len(response) + len(hash)'),
('bodyLength1', '<I'),
('unknown', '!I=0x00000200'),
('bodyLength2', '<I=len(response) + len(hash)'),
('bodyLength2', '<I'),
('response', ':', kmsBase.kmsResponseStruct),
('hash', '16s'),
('padding', ':'),
@ -46,10 +45,12 @@ class kmsRequestV4(kmsBase):
response = self.serverLogic(requestData['request'])
hash = self.generateHash(bytearray(str(response)))
self.responseData = self.generateResponse(response, hash)
responseData = self.generateResponse(response, hash)
time.sleep(1) # request sent back too quick for Windows 2008 R2, slow it down.
return responseData
def generateHash(self, message):
"""
The KMS v4 hash is a variant of CMAC-AES-128. There are two key differences:
@ -91,35 +92,35 @@ class kmsRequestV4(kmsBase):
return str(hashBuffer)
def generateResponse(self, responseBuffer, hash):
bodyLength = len(responseBuffer) + len(hash)
response = self.ResponseV4()
bodyLength = len(responseBuffer) + len(hash)
response['bodyLength1'] = bodyLength
response['bodyLength2'] = bodyLength
response['response'] = responseBuffer
response['hash'] = hash
response['padding'] = self.getResponsePadding(bodyLength)
response['padding'] = bytearray(self.getPadding(bodyLength))
## Debug stuff.
shell_message(nshell = 16)
logging.debug("KMS V4 Response: %s" % justify(response.dump(print_to_stdout = False)))
logging.debug("KMS V4 Response Bytes: %s" % justify(binascii.b2a_hex(str(response))))
logging.debug("KMS V4 Response: \n%s\n" % justify(response.dump(print_to_stdout = False)))
logging.debug("KMS V4 Response Bytes: \n%s\n" % justify(binascii.b2a_hex(str(response))))
return str(response)
def getResponse(self):
return self.responseData
def generateRequest(self, requestBase):
hash = str(self.generateHash(bytearray(str(requestBase))))
request = self.RequestV4()
bodyLength = len(requestBase) + len(hash)
request = kmsRequestV4.RequestV4()
request['bodyLength1'] = bodyLength
request['bodyLength2'] = bodyLength
request['request'] = requestBase
request['hash'] = hash
request['padding'] = self.getResponsePadding(bodyLength)
request['padding'] = bytearray(self.getPadding(bodyLength))
## Debug stuff.
shell_message(nshell = 10)
logging.debug("Request V4 Data: %s" % justify(request.dump(print_to_stdout = False)))
logging.debug("Request V4: %s" % justify(binascii.b2a_hex(str(request))))
logging.debug("Request V4 Data: \n%s\n" % justify(request.dump(print_to_stdout = False)))
logging.debug("Request V4: \n%s\n" % justify(binascii.b2a_hex(str(request))))
return request

View file

@ -4,7 +4,6 @@ import logging
import binascii
import hashlib
import random
import struct
import aes
from kmsBase import kmsBase
@ -17,14 +16,14 @@ class kmsRequestV5(kmsBase):
commonHdr = ()
structure = (
('salt', '16s'),
('encrypted', '236s'), #kmsBase.kmsRequestStruct
('encrypted', '240s'), # kmsBase.kmsRequestStruct
('padding', ':'),
)
commonHdr = ()
structure = (
('bodyLength1', '<I'),
('bodyLength2', '<I'),
('bodyLength1', '<I'),
('bodyLength2', '<I'),
('versionMinor', '<H'),
('versionMajor', '<H'),
('message', ':', Message),
@ -40,13 +39,13 @@ class kmsRequestV5(kmsBase):
class ResponseV5(Structure):
commonHdr = ()
structure = (
('bodyLength1', '<I=2 + 2 + len(salt) + len(encrypted)'),
('bodyLength1', '<I'),
('unknown', '!I=0x00000200'),
('bodyLength2', '<I=2 + 2 + len(salt) + len(encrypted)'),
('bodyLength2', '<I'),
('versionMinor', '<H'),
('versionMajor', '<H'),
('salt', '16s'),
('encrypted', ':'), #DecryptedResponse
('encrypted', ':'), # DecryptedResponse
('padding', ':'),
)
@ -65,15 +64,17 @@ class kmsRequestV5(kmsBase):
ver = 5
def executeRequestLogic(self):
self.requestData = self.RequestV5(self.data)
requestData = self.RequestV5(self.data)
decrypted = self.decryptRequest(self.requestData)
decrypted = self.decryptRequest(requestData)
responseBuffer = self.serverLogic(decrypted['request'])
iv, encrypted = self.encryptResponse(self.requestData, decrypted, responseBuffer)
iv, encrypted = self.encryptResponse(requestData, decrypted, responseBuffer)
self.responseData = self.generateResponse(iv, encrypted)
responseData = self.generateResponse(iv, encrypted, requestData)
return responseData
def decryptRequest(self, request):
encrypted = bytearray(str(request['message']))
@ -88,10 +89,7 @@ class kmsRequestV5(kmsBase):
def encryptResponse(self, request, decrypted, response):
randomSalt = self.getRandomSalt()
sha256 = hashlib.sha256()
sha256.update(str(randomSalt))
result = sha256.digest()
result = hashlib.sha256(str(randomSalt)).digest()
iv = bytearray(request['message']['salt'])
randomStuff = bytearray(16)
@ -111,7 +109,8 @@ class kmsRequestV5(kmsBase):
return str(iv), str(bytearray(crypted))
def decryptResponse(self, response):
paddingLength = response['bodyLength1'] % 8
paddingLength = self.getPadding(response['bodyLength1'])
iv = bytearray(response['salt'])
encrypted = bytearray(response['encrypted'][:-paddingLength])
moo = aes.AESModeOfOperation()
@ -124,23 +123,22 @@ class kmsRequestV5(kmsBase):
def getRandomSalt(self):
return bytearray(random.getrandbits(8) for i in range(16))
def generateResponse(self, iv, encryptedResponse):
bodyLength = 4 + len(iv) + len(encryptedResponse)
def generateResponse(self, iv, encryptedResponse, requestData):
response = self.ResponseV5()
response['versionMinor'] = self.requestData['versionMinor']
response['versionMajor'] = self.requestData['versionMajor']
bodyLength = 2 + 2 + len(iv) + len(encryptedResponse)
response['bodyLength1'] = bodyLength
response['bodyLength2'] = bodyLength
response['versionMinor'] = requestData['versionMinor']
response['versionMajor'] = requestData['versionMajor']
response['salt'] = iv
response['encrypted'] = encryptedResponse
response['padding'] = self.getResponsePadding(bodyLength)
response['padding'] = bytearray(self.getPadding(bodyLength))
shell_message(nshell = 16)
logging.info("KMS V%d Response: \n%s\n" % (self.ver, justify(response.dump(print_to_stdout = False))))
logging.info("KMS V%d Structure Bytes: \n%s\n" % (self.ver, justify(binascii.b2a_hex(str(response)))))
return str(response)
def getResponse(self):
return self.responseData
def generateRequest(self, requestBase):
esalt = self.getRandomSalt()
@ -159,9 +157,8 @@ class kmsRequestV5(kmsBase):
message = self.RequestV5.Message(str(bytearray(crypted)))
bodyLength = len(message) + 2 + 2
request = self.RequestV5()
bodyLength = 2 + 2 + len(message)
request['bodyLength1'] = bodyLength
request['bodyLength2'] = bodyLength
request['versionMinor'] = requestBase['versionMinor']

View file

@ -1,9 +1,7 @@
#!/usr/bin/env python
import binascii
import hashlib
import hmac
import random
import struct
import aes
@ -37,9 +35,7 @@ class kmsRequestV6(kmsRequestV5):
def encryptResponse(self, request, decrypted, response):
randomSalt = self.getRandomSalt()
sha256 = hashlib.sha256()
sha256.update(str(randomSalt))
result = sha256.digest()
result = hashlib.sha256(str(randomSalt)).digest()
SaltC = bytearray(request['message']['salt'])
DSaltC = bytearray(decrypted['salt'])
@ -65,10 +61,10 @@ class kmsRequestV6(kmsRequestV5):
moo = aes.AESModeOfOperation()
moo.aes.v6 = True
d = moo.decrypt(SaltS, 16, moo.modeOfOperation["CBC"], self.key, moo.aes.keySize["SIZE_128"], SaltS)
decry = moo.decrypt(SaltS, 16, moo.modeOfOperation["CBC"], self.key, moo.aes.keySize["SIZE_128"], SaltS)
# DSaltS
DSaltS = bytearray(d)
DSaltS = bytearray(decry)
# HMacMsg
HMacMsg = bytearray(16)
@ -105,4 +101,3 @@ class kmsRequestV6(kmsRequestV5):
digest = sha256.digest()
return digest[16:]

View file

@ -1,8 +1,5 @@
#!/usr/bin/env python
import struct
import uuid
class rpcBase:
packetType = {
'request': 0,
@ -42,21 +39,7 @@ class rpcBase:
self.config = config
def populate(self):
self.requestData = self.parseRequest()
self.responseData = self.generateResponse()
return self
def getConfig(self):
return self.config
def getOptions(self):
return self.config
def getData(self):
return self.data
return self.generateResponse(self.parseRequest())
def parseRequest(self):
return {}
def getResponse(self):
return self.responseData

View file

@ -2,7 +2,6 @@
import logging
import binascii
import struct
import uuid
import rpcBase
@ -78,12 +77,12 @@ class handler(rpcBase.rpcBase):
logging.debug("RPC Bind Request Bytes: \n%s\n" % justify(binascii.b2a_hex(self.data)))
logging.debug("RPC Bind Request: \n%s\n%s\n" % (justify(request.dump(print_to_stdout = False)),
justify(MSRPCBind(request['pduData']).dump(print_to_stdout = False))))
return request
def generateResponse(self):
def generateResponse(self, request):
response = MSRPCBindAck()
request = self.requestData
bind = MSRPCBind(request['pduData'])
response['ver_major'] = request['ver_major']
@ -159,11 +158,10 @@ class handler(rpcBase.rpcBase):
shell_message(nshell = 0)
logging.debug("RPC Bind Request: \n%s\n%s\n" % (justify(request.dump(print_to_stdout = False)),
justify(MSRPCBind(request['pduData']).dump(print_to_stdout = False))))
justify(MSRPCBind(request['pduData']).dump(print_to_stdout = False))))
logging.debug("RPC Bind Request Bytes: \n%s\n" % justify(binascii.b2a_hex(str(request))))
return request
def parseResponse(self):
return response

View file

@ -2,8 +2,6 @@
import binascii
import logging
import struct
import uuid
from dcerpc import MSRPCRequestHeader, MSRPCRespHeader
import kmsBase
@ -19,9 +17,7 @@ class handler(rpcBase.rpcBase):
return request
def generateResponse(self):
request = self.requestData
def generateResponse(self, request):
responseData = kmsBase.generateKmsResponseData(request['pduData'], self.config)
envelopeLength = len(responseData)

View file

@ -2,15 +2,14 @@
import argparse
import binascii
import hashlib
import random
import re
import sys
import socket
import SocketServer
import struct
import uuid
import logging
import os
import errno
import rpcBind, rpcRequest
from dcerpc import MSRPCHeader
@ -19,8 +18,30 @@ from formatText import shell_message
config = {}
# Valid language identifiers to be used in the EPID (see "kms.c" in vlmcsd)
ValidLcid = [1025, 1026, 1027, 1028, 1029,
1030, 1031, 1032, 1033, 1034, 1035, 1036, 1037, 1038, 1039,
1040, 1041, 1042, 1043, 1044, 1045, 1046, 1048, 1049,
1050, 1051, 1052, 1053, 1054, 1056, 1057, 1058, 1059,
1060, 1061, 1062, 1063, 1065, 1066, 1067, 1068, 1069,
1071, 1074, 1076, 1077, 1078, 1079,
1080, 1081, 1082, 1083, 1086, 1087, 1088, 1089,
1091, 1092, 1093, 1094, 1095, 1097, 1098, 1099,
1100, 1102, 1103, 1104, 1106, 1110, 1111, 1114, 1125, 1131, 1153,
2049, 2052, 2055, 2057, 2058, 2060, 2064, 2067, 2068, 2070, 2074, 2077, 2092, 2107, 2110, 2115, 2155,
3073, 3076, 3079, 3081, 3082, 3084, 3098, 3131, 3179,
4097, 4100, 4103, 4105, 4106, 4108, 4122, 4155,
5121, 5124, 5127, 5129, 5130, 5132, 5146, 5179,
6145, 6153, 6154, 6156, 6170, 6203,
7169, 7177, 7178, 7194, 7227,
8193, 8201, 8202, 8251,
9217, 9225, 9226, 9275,
10241, 10249, 10250, 11265, 11273, 11274, 12289, 12297, 12298,
13313, 13321, 13322, 14337, 14346, 15361, 15370, 16385, 16394, 17418, 18442, 19466, 20490]
def main():
parser = argparse.ArgumentParser(description='py2-kms: KMS Server Emulator written in Python2', epilog="version: py2-kms_2018-03-01")
parser = argparse.ArgumentParser(description='py2-kms: KMS Server Emulator written in Python2', epilog="version: py2-kms_2018-11-15")
parser.add_argument("ip", nargs="?", action="store", default="0.0.0.0",
help='The IP address to listen on. The default is \"0.0.0.0\" (all interfaces).', type=str)
parser.add_argument("port", nargs="?", action="store", default=1688,
@ -28,10 +49,10 @@ def main():
parser.add_argument("-e", "--epid", dest="epid", default=None,
help='Use this flag to manually specify an ePID to use. If no ePID is specified, a random ePID will be generated.', type=str)
parser.add_argument("-l", "--lcid", dest="lcid", default=1033,
help='Use this flag to manually specify an LCID for use with randomly generated ePIDs. If an ePID is manually specified,\
this setting is ignored.', type=int)
help='Use this flag to manually specify an LCID for use with randomly generated ePIDs. Default is 1033 (en-us)', type=int)
parser.add_argument("-c", "--client-count", dest="CurrentClientCount", default=26,
help='Use this flag to specify the current client count. Default is 26. A number >25 is required to enable activation.', type=int)
help='Use this flag to specify the current client count. Default is 26. A number >=25 is required to enable \
activation of client OSes; for server OSes and Office >=5', type=int)
parser.add_argument("-a", "--activation-interval", dest="VLActivationInterval", default=120,
help='Use this flag to specify the activation interval (in minutes). Default is 120 minutes (2 hours).', type=int)
parser.add_argument("-r", "--renewal-interval", dest="VLRenewalInterval", default=1440 * 7,
@ -47,76 +68,95 @@ The default is \"364F463A8863D35F\" or type \"random\" to auto generate the HWID
help='Use this flag to set an output Logfile. The default is \"pykms_server.log\".', type=str)
config.update(vars(parser.parse_args()))
#Random HWID
if config['hwid'] == "random":
randomhwid = uuid.uuid4().hex
config['hwid'] = randomhwid[:16]
# Sanitize HWID
try:
config['hwid'] = binascii.a2b_hex(re.sub(r'[^0-9a-fA-F]', '', config['hwid'].strip('0x')))
if len(binascii.b2a_hex(config['hwid'])) < 16:
logging.error("HWID \"%s\" is invalid. Hex string is too short." % binascii.b2a_hex(config['hwid']).upper())
return
elif len(binascii.b2a_hex(config['hwid'])) > 16:
logging.error("HWID \"%s\" is invalid. Hex string is too long." % binascii.b2a_hex(config['hwid']).upper())
return
except TypeError:
logging.error("HWID \"%s\" is invalid. Odd-length hex string." % binascii.b2a_hex(config['hwid']).upper())
return
logging.basicConfig(level=config['loglevel'], format='%(asctime)s %(levelname)-8s %(message)s',
datefmt='%a, %d %b %Y %H:%M:%S', filename=config['logfile'], filemode='w')
# Random HWID.
if config['hwid'] == "random":
randomhwid = uuid.uuid4().hex
config['hwid'] = randomhwid[:16]
# Sanitize HWID.
try:
import sqlite3
config['dbSupport'] = True
config['hwid'] = binascii.a2b_hex(re.sub(r'[^0-9a-fA-F]', '', config['hwid'].strip('0x')))
if len(binascii.b2a_hex(config['hwid'])) < 16:
logging.error("Error: HWID \"%s\" is invalid. Hex string is too short." % binascii.b2a_hex(config['hwid']).upper())
return
elif len(binascii.b2a_hex(config['hwid'])) > 16:
logging.error("Error: HWID \"%s\" is invalid. Hex string is too long." % binascii.b2a_hex(config['hwid']).upper())
return
except TypeError:
logging.error("Error: HWID \"%s\" is invalid. Odd-length hex string." % binascii.b2a_hex(config['hwid']).upper())
return
# Check LCID.
# http://stackoverflow.com/questions/3425294/how-to-detect-the-os-default-language-in-python
if not config['lcid'] or (config['lcid'] not in ValidLcid):
if hasattr(sys, 'implementation') and sys.implementation.name == 'cpython':
config['lcid'] = 1033
elif os.name == 'nt':
import ctypes
config['lcid'] = ctypes.windll.kernel32.GetUserDefaultUILanguage() # TODO: or GetSystemDefaultUILanguage?
else:
import locale
try:
config['lcid'] = next(k for k, v in locale.windows_locale.items() if v == locale.getdefaultlocale()[0])
except StopIteration:
config['lcid'] = 1033
try:
import sqlite3
except:
logging.warning("Module \"sqlite3\" is not installed, database support disabled.")
config['dbSupport'] = False
else:
config['dbSupport'] = True
server = SocketServer.TCPServer((config['ip'], config['port']), kmsServer)
server.timeout = 5
logging.info("TCP server listening at %s on port %d." % (config['ip'], config['port']))
logging.info("HWID: %s" % binascii.b2a_hex(config['hwid']).upper())
server.serve_forever()
class kmsServer(SocketServer.BaseRequestHandler):
def setup(self):
self.connection = self.request
logging.info("Connection accepted: %s:%d" % (self.client_address[0], self.client_address[1]))
def handle(self):
while True:
# self.request is the TCP socket connected to the client
try:
self.data = self.connection.recv(1024)
data = self.request.recv(1024)
except socket.error, e:
if e[0] == 104:
if e.errno == errno.ECONNRESET:
logging.error("Connection reset by peer.")
break
else:
raise
if self.data == '' or not self.data:
if not data:
logging.warning("No data received !")
break
# self.data = bytearray(self.data.strip())
# logging.debug(binascii.b2a_hex(str(self.data)))
packetType = MSRPCHeader(self.data)['type']
# data = bytearray(self.data.strip())
# logging.debug(binascii.b2a_hex(str(data)))
packetType = MSRPCHeader(data)['type']
if packetType == rpcBase.packetType['bindReq']:
logging.info("RPC bind request received.")
shell_message(nshell = [-2, 2])
handler = rpcBind.handler(self.data, config)
handler = rpcBind.handler(data, config)
elif packetType == rpcBase.packetType['request']:
logging.info("Received activation request.")
shell_message(nshell = [-2, 13])
handler = rpcRequest.handler(self.data, config)
handler = rpcRequest.handler(data, config)
else:
logging.error("Invalid RPC request type ", packetType)
logging.error("Error: Invalid RPC request type ", packetType)
break
handler.populate()
res = str(handler.getResponse())
self.connection.send(res)
res = str(handler.populate())
self.request.send(res)
if packetType == rpcBase.packetType['bindReq']:
logging.info("RPC bind acknowledged.")
@ -127,7 +167,7 @@ class kmsServer(SocketServer.BaseRequestHandler):
break
def finish(self):
self.connection.close()
self.request.close()
logging.info("Connection closed: %s:%d" % (self.client_address[0], self.client_address[1]))
if __name__ == "__main__":

View file

@ -7,9 +7,9 @@
# for more information.
#
""" Version of https://github.com/CoreSecurity/impacket/blob/master/impacket/structure.py
with modifications in the function dump(...).
Copyright 2018 Matteo Fan <SystemRage@protonmail.com>
"""
Stripped down version of: https://github.com/CoreSecurity/impacket/blob/master/impacket/structure.py
with modifications in the function dump(...).
"""
from struct import pack, unpack, calcsize
@ -90,18 +90,6 @@ class Structure:
else:
self.data = None
@classmethod
def fromFile(self, file):
answer = self()
answer.fromString(file.read(len(answer)))
return answer
def setAlignment(self, alignment):
self.alignment = alignment
def setData(self, data):
self.data = data
def packField(self, fieldName, format = None):
if self.debug:
print "packField( %s | %s )" % (fieldName, format)
@ -363,7 +351,7 @@ class Structure:
return unpack(format, data)[0]
def calcPackSize(self, format, data, field = None):
# # print " calcPackSize %s:%r" % (format, data)
# print " calcPackSize %s:%r" % (format, data)
if field:
addressField = self.findAddressFieldFor(field)
if addressField is not None:
@ -544,26 +532,10 @@ class Structure:
if field[1][-l:] == descriptor:
return field[0]
return None
def zeroValue(self, format):
two = format.split('*')
if len(two) == 2:
if two[0].isdigit():
return (self.zeroValue(two[1]),)*int(two[0])
if not format.find('*') == -1: return ()
if 's' in format: return ''
if format in ['z',':','u']: return ''
if format == 'w': return '\x00\x00'
return 0
def clear(self):
for field in self.commonHdr + self.structure:
self[field[0]] = self.zeroValue(field[1])
def dump(self, msg = None, indent = 0, print_to_stdout = True):
if msg is None: msg = self.__class__.__name__
if msg is None:
msg = self.__class__.__name__
ind = ' '*indent
allstr = "\n%s" % msg
fixedFields = []