How to use it? Please find the instructions here.
This activation is supported for Windows 10/11 only.
This activation does not store or modify/patch any files in your system.
This activation is a permanent activation for your system Hardware.
On a system, this activation can be created for all the supported editions, and all can be linked to Microsoft account without any issues.
Once a system is activated, this activation cannot be removed because the license is stored in the Microsoft servers and not in the user’s system. MS checks the hardware ID (HWID) and if a license is found in their database, the system will automatically activate. This is how official digital license works.
Any significant changes in the Hardware (such as a motherboard) may deactivate the system. It is possible to reactivate a system that was deactivated because of significant hardware changes, IF your activation, was linked to an online Microsoft account.
For activation to succeed, internet connectivity must be enabled. If you are trying to activate without these conditions being met, then the system will auto-activate later when the conditions are met.
Auto activation scenario after the Windows re-install:
The Internet is required. (Only at the time of activation)
The system will auto-activate if Retail (Consumer) media was used for the installation.
The system will NOT auto-activate if VL (Business) media was used for the installation. In this case, the user will have to insert that windows edition Retail/OEM key (find keys below on this page) to activate, if the user doesn’t wish to activate again using this script.
In the official upgrade process from Windows 7 to Windows 10, Microsoft provides an HWID (digital license) activation for Windows 10 without any cost.
In the background, the upgrade process runs a file named gatherosstate.exe (available in Windows 10/11 ISO) and it checks the license of current Windows if found activated, it generates a valid GenuineTicket.xml ticket which is sent to Microsoft and in return, MS authorizes a license.
So if we just convince the gatherosstate.exe file that the conditions are met for ticket generation by fooling it, it will generate a valid ticket, which can be used to get the valid HWID (Digital license).
How to convince the gatherosstate.exe?
There are two methods for it.
1- Place a custom
slc.dll file beside gatherosstate.exe:
gatherosstate.exe uses the system’s
C:\Windows\System32\slc.dll
file to gather the system’s
info. If we place a custom slc.dll file beside gatherosstate.exe which
can send the rubbish data to it, then it will simply accept it and
generate a valid ticket.
2- Modify
the gatherosstate.exe file itself so that it doesn’t check the system’s
activation status and can directly create a valid ticket.
Notes:
There are many methods for ticket generation, majorly we can classify the ticket types in 3 categories.
Downlevel Ticket - This is the simplest ticket generation process. In this method, ticket is signed by downlevel key by the system and the ticket’s OSVersion is =<10. If it’s generated on Windows 10/11 then MS ideally aren’t supposed to grant activation, however they do and method is continuously working from last 4-5 years. Almost every HWID activator (at the time of writing this) is based on this method.
Lockbox Ticket - This is slightly a trickier method. The ticket is signed by Lockbox key by the system and the ticket’s OSVersion is 10. This ticket generation process involves cleaning Clipsvc licenses and IdentityCRL registry key in the system. Due to some hiccups in the process, this method is not primarily used in MAS, however these are the types of tickets that are identical to the genuine ticket generated by system on activated Windows 10/11.
Universal Ticket - In this method, we set the OSVersion =<5 in the ticket and when we apply the ticket, system ignores the HWID in the ticket due to lower OSVersion and grant the activation anyway. This ticket can be applied on any system. These tickets can either be Downlevel or Lockbox type. MS ideally aren’t supposed to grant activation, however they do.
Latest version of MAS is using Universal ticket method. Other ticket method scripts can be found in this repo MAS-Legacy-Methods
Now a question, can Microsoft block the new requests or revoke already established HWID license?
Windows 10/11 | Generic Retail/OEM/MAK Key |
---|---|
Education | YNMGQ-8RYV3-4PGQ3-C8XTP-7CFBY |
Education N | 84NGF-MHBT6-FXBX8-QWJK7-DRR8H |
Enterprise | XGVPP-NMH47-7TTHJ-W3FW7-8HV2C |
Enterprise N | 3V6Q6-NQXCX-V8YXR-9QCYV-QPFCT |
Enterprise LTSB 2015 | FWN7H-PF93Q-4GGP8-M8RF3-MDWWW |
Enterprise LTSB 2016 | NK96Y-D9CD8-W44CQ-R8YTK-DYJWX |
Enterprise LTSC 2019 | 43TBQ-NH92J-XKTM7-KT3KK-P39PB |
Enterprise N LTSB 2015 | NTX6B-BRYC2-K6786-F6MVQ-M7V2X |
Enterprise N LTSB 2016 | 2DBW3-N2PJG-MVHW3-G7TDK-9HKR4 |
Home | YTMG3-N6DKC-DKB77-7M9GH-8HVX7 |
Home N | 4CPRK-NM3K3-X6XXQ-RXX86-WXCHW |
Home China | N2434-X9D7W-8PF6X-8DV9T-8TYMD |
Home Single Language | BT79Q-G7N6G-PGBYW-4YWX6-6F4BT |
IoT Enterprise | XQQYW-NFFMW-XJPBH-K8732-CKFFD |
IoT Enterprise LTSC 2021 | QPM6N-7J2WJ-P88HH-P3YRH-YY74H |
IoT Enterprise LTSC Subscription | J7NJW-V6KBM-CC8RW-Y29Y4-HQ2MJ |
Pro | VK7JG-NPHTM-C97JM-9MPGT-3V66T |
Pro N | 2B87N-8KFHP-DKV6R-Y2C8J-PKCKT |
Pro Education | 8PTT6-RNW4C-6V7J2-C2D3X-MHBPB |
Pro Education N | GJTYN-HDMQY-FRR76-HVGC7-QPF8P |
Pro for Workstations | DXG7C-N36C4-C4HTG-X4T3X-2YV77 |
Pro N for Workstations | WYPNQ-8C467-V2W6J-TX4WX-WT2RQ |
S | V3WVW-N2PV2-CGWC3-34QGF-VMJ2C |
S N | NH9J3-68WK7-6FB93-4K3DF-DJ4F6 |
SE | KY7PN-VR6RX-83W6Y-6DDYQ-T6R4W |
SE N | K9VKN-3BGWV-Y624W-MCRMQ-BHDCD |
Team | XKCNC-J26Q9-KFHD2-FKTHY-KD72Y |
Notes:
X86-X64 and ARM64 architecture systems are supported.
Any Evaluation version of Windows (i.e. ‘EVAL’ LTSB/C) cannot be activated.
IoTEnterpriseS (LTSC) 2021 key will be used to activate the unsupported EnterpriseS (LTSC) 2021 edition.
Windows Server does not support HWID activation.
ServerRdsh edition does not officially support activation on non-azure systems.
This is for those who wants to perform manual activation. If you want a tool to do this for you then check here.
We can divide the manual activation process into two parts.
Make sure the Internet is enabled.
Open Windows Powershell as administrator, and enter the following listed commands in the sequence in which they are given.
Enter the Key, (Replace <key>
with the key
from the above list) with the following command
slmgr /ipk <key>
Download Universal tickets from here and extract the downloaded file.
Now enter below code in Powershell
(Get-ItemProperty HKLM:\SYSTEM\CurrentControlSet\Control\ProductOptions).OSProductPfn
This command will you show you some text like
Microsoft.Windows.48.X19-98841_8wekyb3d8bbwe
You need to find the exact same name ticket file in the folder which you have extracted earlier.
Copy that ticket file and paste it in the below folder
C:\ProgramData\Microsoft\Windows\ClipSVC\GenuineTicket
Now run below command in Powershell to apply the ticket
clipup -v -o
slmgr /ato
slmgr /xpr
In this process we will perform activation from scratch. This is based on Universal ticket method. Here we will create identical tickets which are used in MAS HWID script and activate the system with it.
Download file from the below official MS link and extract this
.cab file.
https://download.microsoft.com/download/9/A/E/9AE69DD5-BA93-44E0-864E-180F5E700AB4/adk/Installers/14f4df8a2a7fc82a4f415cf6a341415d.cab
Find the file named
filf8377e82b29deadca67bc4858ed3fba9
and rename it as
gatherosstate.exe
Make a folder named Files
in C drive,
C:\Files
and copy the gatherosstate.exe
file
in that folder.
Make sure the Internet is enabled.
Open Windows Powershell as administrator, and enter the following listed commands in the sequence in which they are given.
Enter the Key, (Replace <key>
with the key
from the above list) with the following command
slmgr /ipk <key>
gatherosstate.exe
file. This code to modify the file is
based on GamersOsState.$bytes = [System.IO.File]::ReadAllBytes("C:\Files\gatherosstate.exe")
$bytes[320] = 0xf8
$bytes[321] = 0xfb
$bytes[322] = 0x05
$bytes[324] = 0x03
$bytes[13672] = 0x25
$bytes[13674] = 0x73
$bytes[13676] = 0x3b
$bytes[13678] = 0x00
$bytes[13680] = 0x00
$bytes[13682] = 0x00
$bytes[13684] = 0x00
$bytes[32748] = 0xe9
$bytes[32749] = 0x9e
$bytes[32750] = 0x00
$bytes[32751] = 0x00
$bytes[32752] = 0x00
$bytes[32894] = 0x8b
$bytes[32895] = 0x44
$bytes[32897] = 0x64
$bytes[32898] = 0x85
$bytes[32899] = 0xc0
$bytes[32900] = 0x0f
$bytes[32901] = 0x85
$bytes[32902] = 0x1c
$bytes[32903] = 0x02
$bytes[32904] = 0x00
$bytes[32906] = 0xe9
$bytes[32907] = 0x3c
$bytes[32908] = 0x01
$bytes[32909] = 0x00
$bytes[32910] = 0x00
$bytes[32911] = 0x85
$bytes[32912] = 0xdb
$bytes[32913] = 0x75
$bytes[32914] = 0xeb
$bytes[32915] = 0xe9
$bytes[32916] = 0x69
$bytes[32917] = 0xff
$bytes[32918] = 0xff
$bytes[32919] = 0xff
$bytes[33094] = 0xe9
$bytes[33095] = 0x80
$bytes[33096] = 0x00
$bytes[33097] = 0x00
$bytes[33098] = 0x00
$bytes[33449] = 0x64
$bytes[33576] = 0x8d
$bytes[33577] = 0x54
$bytes[33579] = 0x24
$bytes[33580] = 0xe9
$bytes[33581] = 0x55
$bytes[33582] = 0x01
$bytes[33583] = 0x00
$bytes[33584] = 0x00
$bytes[33978] = 0xc3
$bytes[34189] = 0x59
$bytes[34190] = 0xeb
$bytes[34191] = 0x28
$bytes[34238] = 0xe9
$bytes[34239] = 0x4f
$bytes[34240] = 0x00
$bytes[34241] = 0x00
$bytes[34242] = 0x00
$bytes[34346] = 0x24
$bytes[34376] = 0xeb
$bytes[34377] = 0x63
[System.IO.File]::WriteAllBytes("C:\Files\gatherosstatemodified.exe", $bytes)
gatherosstatemodified.exe
and goto properties and set the compatibility to Windows XP SP3.$value = (Get-ItemProperty HKLM:\SYSTEM\CurrentControlSet\Control\ProductOptions).OSProductPfn
C:\Files\gatherosstatemodified.exe /c Pfn=$value`;DownlevelGenuineState=1
C:\Files\
now let’s apply it.clipup -v -o -altto C:\Files\
slmgr /ato
slmgr /xpr
Notes:
If the system is already activated then created ticket will be a Lockbox ticket and if not then it will be a Downlevel ticket.
To make the exact ticket used in MAS HWID script, make sure
system is already activated and fix the time with below Powershell
command and then initiate the ticket generation process as per above
mentioned steps.
$date=[datetime]"2022/10/11 12:00";while($true){set-date $date; start-sleep -milliseconds 10}
Check the Extract OEM option in the MAS Extras
section if you want pre-activated Windows installation.
Further, read here.