Skip to content
forked from SystemRage/py-kms

KMS Server Emulator written in Python

License

Notifications You must be signed in to change notification settings

david1155/py-kms

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

History

py-kms is a port of node-kms created by cyrozap, which is a port of either the C#, C++, or .NET implementations of KMS Emulator. The original version was written by CODYQX4 and is derived from the reverse-engineered code of Microsoft's official KMS.

Features

  • Responds to V4, V5, and V6 KMS requests.
  • Supports activating:
    • Windows Vista
    • Windows 7
    • Windows 8
    • Windows 8.1
    • Windows 10 ( 1511 / 1607 / 1703 / 1709 / 1803 / 1809 )
    • Windows 10 ( 1903 / 1909 / 20H1 )
    • Windows Server 2008
    • Windows Server 2008 R2
    • Windows Server 2012
    • Windows Server 2012 R2
    • Windows Server 2016
    • Windows Server 2019
    • Microsoft Office 2010 ( Volume License )
    • Microsoft Office 2013 ( Volume License )
    • Microsoft Office 2016 ( Volume License )
    • Microsoft Office 2019 ( Volume License )
  • It's written in Python:
    • tested with Python 3.6.7

Dependencies

  • Python 3.x.
  • Tkinter module.
  • If the tzlocal module is installed, the "Request Time" in the verbose output will be converted into local time. Otherwise, it will be in UTC.
  • It can use the sqlite3 module so you can use the database function, storing activation data so it can be recalled again.
  • Installation example on Ubuntu / Mint:
    • sudo apt-get update
    • sudo apt-get install python3-tk python3-pip
    • sudo pip3 install tzlocal pysqlite3

Usage

  • To start the server, execute python3 pykms_Server.py [IPADDRESS] [PORT], the default IPADDRESS is :: ( all interfaces ) and the default PORT is 1688. Note that both the address and port are optional. Also note that you have to use an IPv6 address - even if you are just plan to use IPv4 (the kernel maps the incoming IPv4 requests automatically to IPv6), otherwise you will get unsupported address family exceptions!

  • To run the client (only for testing purposes), use python3 pykms_Client.py [IPADDRESS] [PORT], with the same defaults of pykms_Server.py.

  • To show the help pages type: python3 pykms_Server.py -h and python3 pykms_Client.py -h.

  • To generate a random HWID use -w option: python3 pykms_Server.py -w RANDOM.

  • To get the HWID from any server use the client, for example type: python3 pykms_Client.py :: 1688 -m Windows8.1 -V INFO.

  • To change your logfile path use -F option, for example: python3 pykms_Server.py -F /path/to/your/logfile.log -V DEBUG.

  • To view a minimal set of logging information use -V MINI option, for example: python3 pykms_Server.py -F /path/to/your/logfile.log -V MINI.

  • To redirect logging on stdout use -F STDOUT option, for example: python3 pykms_Server.py -F STDOUT -V DEBUG.

  • You can create logfile and view logging information on stdout at the same time with -F FILESTDOUT option, for example: python3 pykms_Server.py -F FILESTDOUT /path/to/your/logfile.log -V DEBUG.

  • With -F STDOUTOFF you disable all stdout messages (but a logfile will be created), for example: python3 pykms_Server.py -F STDOUTOFF /path/to/your/logfile.log -V DEBUG.

  • With -F FILEOFF you disable logfile creation.

  • Select timeout (seconds) for py-kms with -t0 option, for example python3 pykms_Server.py -t0 10.

  • Option -y enables printing asynchronously of messages (pretty / logging).

  • For launching py-kms GUI make executable pykms_Server.py file with chmod +x /path/to/folder/py-kms/pykms_Server.py, then simply run pykms_Server.py double-clicking.

  • You can run py-kms daemonized (via Etrigan) using a command like: python3 pykms_Server.py etrigan start and stop it with: python3 pykms_Server.py etrigan stop.

  • With Etrigan you have another way to launch py-kms GUI (specially suitable if you're using a virtualenv), so: python3 pykms_Server.py etrigan start -g and stop the GUI with python3 pykms_Server.py etrigan stop (or interact with the EXIT button).

Docker

auto-docker status-docker pulls-docker size-docker

This project has docker image support. You can find all available image configurations inside the docker folder. There are three tags of the images available:

  • latest, currently the same like minimal...
  • minimal, wich is based on the python3 minimal configuration of py-kms. This image does NOT include SQLLite support!
  • python3, which is fully configurable and equiped with SQLLite support and web interface.

If you just want to use the image and don't want to build them yourself, you can use the official image at the docker hub (pykmsorg/py-kms). To ensure that the image is always up-to-date you should check watchtower out!

Other Important Stuff

Consult the Wiki for more information about activation with py-kms and to get GVLK keys.

License

  • py-kms is License0
  • py-kms GUI is License1 © Matteo ℱan

About

KMS Server Emulator written in Python

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Python 98.1%
  • Dockerfile 1.1%
  • Shell 0.8%