Sql database path customizable.
Sql database file keeps different AppId.
Support for multi-address connection.
Added timeout send / receive.
py-kms Gui: now matches all cli options, added modes onlyserver / onlyclient, added some animations.
Added suboptions FILEOFF and STDOUTOFF of -F.
Created option for asynchronous messages.
Cleaned options parsing process.
Optimized pretty-print messages process.
Added -F FILESTDOUT option.
Added deamonization options (via Etrigan project).
py-kms GUI resurrected (and improved).
Cleaned, cleaned, cleaned.
Merging for Python2 / Python3 compatibility all-in-one.
Added new options:
Setup for multithreading support.
added a (”really silly”) tkinter GUI as an alternative to command line.
Dockerized with sqlite-web.
Fixed activation threshold.
Renamed files, cosmetics and many other little big adjustments.
Implemented some good modifications inspired by this other fork.
Clean up code ( deleted no longer useful files randomHWID.py, randomEPID.py, timezones.py; erased useless functions and import modules )
Reading parameters directly from a slightly modified KmsDataBase.xml ( created with LicenseManager 5.0 by Hotbird64 HGM ) with kmsDB2Dict.py
Added support for Windows Server 2019 and Office 2019.
Improved random EPID generation.
Corrected this in kmsBase.py
py-kms NOW is for Python3 too ( py3-kms ), the previous one ( written with Python2 ) is renamed py2-kms
Repaired logging messages
Added pretty processing messages
Added option verbose logging in a file
Updated “kmsBase.py” with new SKUIDs
Added a brief guide “py-kms-Guide.pdf” ( replaced “client-activation.txt” )
Added a well formatted and more complete list of volume keys “py-kms-ClientKeys.pdf” ( replaced “client-keys.txt” )
Updated kmsBase.py (Matches LicenseManager 4.6.0 by Hotbird64 HGM)
Fixed major bug on Response function
Fixed Random PID Generator (thanks: mkuba50)
Added missing UUID, credits: Hotbird64
Added Windows Server 2016 in random PID generator
Added Windows Server 2016 UUID
Fixed GroupID and PIDRange
Added Office 2016 CountKMSID
Added Windows 10 UUID
py-kms_2014-10-13 build 3:¶
Added Client Activation Examples: “client-activation.txt”
Added Volume Keys: “client-keys.txt”
py-kms_2014-10-13 build 2:¶
Added missing skuIds in file “kmsbase.py”. Thanks (user_hidden)
py-kms_2014-10-13 build 1:¶
The server now outputs the hwid in use.
The server hwid can be random by using parameter: “-w random”. Example: “python server.py -w random”
Included file “randomHWID.py” to generate random hwid on demand.
Included file “randomPID.py” to generate random epid and hwid on demand.
The server HWID can now be specified on the command line.
The client will print the HWID when using the v6 protocol.
Made the sqlite3 module optional.
Changed the “log” flag to an “sqlite” flag and made a real log flag in preparation for when real request logging is implemented.
Added RPC response decoding to the KMS client emulator.
The v4 hash now uses the proper pre-expanded key.
Modified the v4 code to use the custom aes module in order to make it more streamlined and efficient.
Removed the need for the pre-computed table (tablecomplex.py) for v4 CMAC calculation, cutting the zip file size in half.
Switched to getting the to-be-logged request time from the KMS server instead of the client.
You can now specify the CMID and the Machine Name to use with the client emulator.
Added a request-logging feature to the server. It stores requests in an SQLite database and uses the ePIDs stored there on a per-CMID basis.
The client emulator now works for v4, v5, and v6 requests.
The client emulator now also verifies the KMS v4 responses it receives.
Added a client (work in progress) that right now can only generate and send RPC bind requests.
Added a bunch of new classes to handle RPC client stuff, but I might just end up moving their functions back into the old classes at some point.
Lots of other code shuffling.
Made the verbose and debug option help easier to read.
Added some server error messages.
Made some really huge internal changes to streamline packet parsing.
Added tons of new SKU IDs
Added Office SKU IDs
Small internal changes
Made the rpcResponseArray in rpcRequest output closer to spec
SKUID conversion: Converts the SKUID UUID into a human-readable product version for SKUIDs in its SKUID dictionary.
Fancy new timezone conversion stuff.
Enabled setting custom LCIDs.
Data parsing is now handled by structure.py.
Some other minor stuff you probably won’t notice.
Got rid of custom functions module (finally)
Simplified custom functions module
Got rid of “v4” subfolder
Cleaned up a bunch of code
Added timestamps to verbose output
Made the verbose output look better
Moved some stuff into verbose output
Enabled server ePIDs of arbitrary length
Permanently fixed machineName decoding
Adheres closer to the DCE/RPC protocol spec
Added client info to program output
Small formatting changes
First working release added to the Mega folder.