ThunderEX / py-kms

A KMS server written in python.
Other
395 stars 113 forks source link

SystemRage's py-kms #26

Closed dimqua closed 5 years ago

dimqua commented 5 years ago

How this projects are different between each other except for micropython support?

https://github.com/SystemRage/py-kms

ThunderEX commented 5 years ago

I've done these changes since I started work on this project:

  1. compatibility fixes: original py-kms only support python 2, I adapted to support both versions, and ensure it work on pypy & micropython. It seems SystemRage's version actually have 2x different folder to support python 2 and 3 separately, and as I tested it doesn't work on pypy3 or micropython.
  2. from this article, original py-kms return wrong RPC stub size although wrong stub size could still be recognized by MS client. I fixed this problem.
  3. original py-kms use a file of KmsBase.py gathering Csvlk info. If MS release a newer version of software, someone need to update this file. I replace this file with KmsDataBase.xml which is compatible with another tool vlmcsd. So you just need to get a newer KmsDataBase.xml from LicenseManager or vlmcsd without edit source code.
  4. original py-kms use wrong active client number, and with csvlk host info not updated. You could see error / warning if using vlmcsd / LicenseManager. And if your client is activated using original py-kms, it's possible to distinguish it from a genuine client.
  5. other bug fixes (such as https://github.com/SystemRage/py-kms/issues/8), and improvements.

On the other hand, SystemRage's project has a nice output in terminal. He also has a wiki of a brief guide. So if someone could help improve on my repo, please give me a hand with a PR.

dimqua commented 5 years ago

Thanks for clarifying!

SystemRage's version actually have 2x different folder to support python 2 and 3 separately

I don't know any python, but isn't it unpractical to maintain two different versions of the same software?

I replace this file with KmsDataBase.xml which is compatible with another tool vlmcsd

Is it possible to update it without using LicenseManager or vlmcsd? Otherwise, dependence on someone else's software may be not the best strategy.

He also has a wiki of a brief guide.

Can't you just copy-paste it to here? :-)

ThunderEX commented 5 years ago

I don't know any python, but isn't it unpractical to maintain two different versions of the same software?

Both ways are practical. But a well-maintained code should have cross-platform compatibility, but not implement separately for different platforms.

Is it possible to update it without using LicenseManager or vlmcsd? Otherwise, dependence on someone else's software may be not the best strategy.

Firstly and of source, it could be updated manually without LicenseManager or vlmcsd. Secondly, in most situations, kms data updates are just copying LicenseManager converting to python and pasting here. I don't want to do such manual work and don't want to receive such pull request. For those who cry for Windows / Office 202x support, they can easily do it themselves without my update.