├── .gitignore ├── README.Debian ├── changelog ├── compat ├── control ├── copyright ├── init ├── install ├── postinst ├── postrm ├── rules ├── source ├── format └── local-options ├── vlmcsd.manpages ├── vlmcsd.service └── watch /.gitignore: -------------------------------------------------------------------------------- 1 | # Prerequisites 2 | *.d 3 | 4 | # Object files 5 | *.o 6 | *.ko 7 | *.obj 8 | *.elf 9 | 10 | # Linker output 11 | *.ilk 12 | *.map 13 | *.exp 14 | 15 | # Precompiled Headers 16 | *.gch 17 | *.pch 18 | 19 | # Libraries 20 | *.lib 21 | *.a 22 | *.la 23 | *.lo 24 | 25 | # Shared objects (inc. Windows DLLs) 26 | *.dll 27 | *.so 28 | *.so.* 29 | *.dylib 30 | 31 | # Executables 32 | *.exe 33 | *.out 34 | *.app 35 | *.i*86 36 | *.x86_64 37 | *.hex 38 | 39 | # Debug files 40 | *.dSYM/ 41 | *.su 42 | *.idb 43 | *.pdb 44 | 45 | # Kernel Module Compile Results 46 | *.mod* 47 | *.cmd 48 | .tmp_versions/ 49 | modules.order 50 | Module.symvers 51 | Mkfile.old 52 | dkms.conf 53 | 54 | # Misc 55 | .DS_Store 56 | Thumbs.db 57 | 58 | -------------------------------------------------------------------------------- /README.Debian: -------------------------------------------------------------------------------- 1 | vlmcsd for Debian 2 | vlmcs is a program that can be used to test a KMS server that provides activation for several Microsoft products. The KMS server may also be an emulator. It supports KMS protocol versions 4, 5 and 6. vlmcsd is a fully Microsoft compatible KMS server that provides product activation services to clients. It is meant as a drop-in replacement for a Microsoft KMS server (Windows computer with KMS key entered). It currently supports KMS protocol versions 4, 5 and 6. 3 | 4 | -- Simon Shi Sat, 30 Sep 2017 20:13:26 +0800 5 | -------------------------------------------------------------------------------- /changelog: -------------------------------------------------------------------------------- 1 | vlmcsd (1113) unstable; urgency=low 2 | 3 | * Upstream update 4 | 5 | -- Simon Shi Tue, 12 May 2020 12:50:47 +0800 6 | 7 | vlmcsd (1112) unstable; urgency=low 8 | 9 | * Upstream update 10 | 11 | -- Simon Shi Thu, 08 Nov 2018 22:54:56 +0800 12 | 13 | vlmcsd (1111) unstable; urgency=low 14 | 15 | * Initial release 16 | 17 | -- Simon Shi Sat, 30 Sep 2017 20:13:26 +0800 18 | -------------------------------------------------------------------------------- /compat: -------------------------------------------------------------------------------- 1 | 10 2 | -------------------------------------------------------------------------------- /control: -------------------------------------------------------------------------------- 1 | Source: vlmcsd 2 | Section: net 3 | Priority: optional 4 | Maintainer: Simon Shi 5 | Build-Depends: debhelper (>=10) 6 | Standards-Version: 3.9.8 7 | Homepage: http://wind4.github.io/vlmcsd/ 8 | 9 | Package: vlmcsd 10 | Architecture: any 11 | Multi-Arch: foreign 12 | Depends: ${misc:Depends}, ${shlibs:Depends} 13 | Description: KMS Emulator in C 14 | vlmcs is a program that can be used to test a KMS server that provides 15 | activation for several Microsoft products. The KMS server may also be an 16 | emulator. It supports KMS protocol versions 4, 5 and 6. vlmcsd is a fully 17 | Microsoft compatible KMS server that provides product activation services 18 | to clients. It is meant as a drop-in replacement for a Microsoft KMS server 19 | (Windows computer with KMS key entered). It currently supports KMS protocol 20 | versions 4, 5 and 6. 21 | -------------------------------------------------------------------------------- /copyright: -------------------------------------------------------------------------------- 1 | Format: http://www.debian.org/doc/packaging-manuals/copyright-format/1.0/ 2 | Upstream-Name: vlmcsd 3 | Source: http://forums.mydigitallife.info/threads/50234 4 | # 5 | # Please double check copyright with the licensecheck(1) command. 6 | 7 | Files: * 8 | Copyright: 1985-2016 Free Software Foundation, Inc. 9 | License: LGPL-2.1+ 10 | This file is part of the GNU C Library. 11 | . 12 | The GNU C Library is free software; you can redistribute it and/or 13 | modify it under the terms of the GNU Lesser General Public 14 | License as published by the Free Software Foundation; either 15 | version 2.1 of the License, or (at your option) any later version. 16 | . 17 | The GNU C Library is distributed in the hope that it will be useful, 18 | but WITHOUT ANY WARRANTY; without even the implied warranty of 19 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 20 | Lesser General Public License for more details. 21 | . 22 | You should have received a copy of the GNU Lesser General Public 23 | License along with the GNU C Library; if not, see 24 | . 25 | . 26 | On Debian systems, the complete text of the GNU Lesser General Public License 27 | Version 2.1 can be found in `/usr/share/common-licenses/LGPL-2.1'. 28 | 29 | Files: src/ns_name.c 30 | src/ns_parse.c 31 | Copyright: 1996-1999 Internet Software Consortium. 32 | License: ISC 33 | Permission to use, copy, modify, and distribute this software for any 34 | purpose with or without fee is hereby granted, provided that the above 35 | copyright notice and this permission notice appear in all copies. 36 | . 37 | THE SOFTWARE IS PROVIDED "AS IS" AND INTERNET SOFTWARE CONSORTIUM DISCLAIMS 38 | ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES 39 | OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL INTERNET SOFTWARE 40 | CONSORTIUM BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL 41 | DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR 42 | PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS 43 | ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS 44 | SOFTWARE. 45 | . 46 | Modified by Hotbird64 for use with vlmcs. 47 | 48 | 49 | -------------------------------------------------------------------------------- /init: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | ### BEGIN INIT INFO 3 | # Provides: vlmcsd 4 | # Required-Start: $network $local_fs $remote_fs 5 | # Required-Stop: $remote_fs 6 | # Default-Start: 2 3 4 5 7 | # Default-Stop: 0 1 6 8 | # Short-Description: KMS Emulator in C 9 | # Description: KMS Emulator in C 10 | # vlmcsd is a fully Microsoft compatible KMS server. 11 | ### END INIT INFO 12 | 13 | # Author: Simon Shi 14 | 15 | # PATH should only include /usr/ if it runs after the mountnfs.sh script 16 | PATH=/sbin:/usr/sbin:/bin:/usr/bin 17 | DESC=VLMCSD # Introduce a short description here 18 | NAME=vlmcsd # Introduce the short server's name here 19 | DAEMON=/usr/bin/vlmcsd # Introduce the server's location here 20 | DAEMON_ARGS="-i /etc/vlmcsd/vlmcsd.ini -j /etc/vlmcsd/vlmcsd.kmd -l syslog -D" # Arguments to run the daemon with 21 | PIDFILE=/var/run/$NAME/$NAME.pid 22 | SCRIPTNAME=/etc/init.d/$NAME 23 | 24 | # Exit if the package is not installed 25 | [ -x $DAEMON ] || exit 0 26 | 27 | # Read configuration variable file if it is present 28 | [ -r /etc/default/$NAME ] && . /etc/default/$NAME 29 | 30 | [ "$START" = "yes" ] || exit 0 31 | 32 | : ${USER:="nobody"} 33 | : ${GROUP:="nogroup"} 34 | 35 | # Load the VERBOSE setting and other rcS variables 36 | . /lib/init/vars.sh 37 | 38 | # Define LSB log_* functions. 39 | # Depend on lsb-base (>= 3.0-6) to ensure that this file is present. 40 | . /lib/lsb/init-functions 41 | 42 | # 43 | # Function that starts the daemon/service 44 | # 45 | do_start() 46 | { 47 | # Take care of pidfile permissions 48 | mkdir /var/run/$NAME 2>/dev/null || true 49 | chown "$USER:$GROUP" /var/run/$NAME 50 | 51 | # Return 52 | # 0 if daemon has been started 53 | # 1 if daemon was already running 54 | # 2 if daemon could not be started 55 | start-stop-daemon --start --quiet --pidfile $PIDFILE --chuid $USER:$GROUP --exec $DAEMON -- \ 56 | $DAEMON_ARGS \ 57 | || return 2 58 | } 59 | 60 | # 61 | # Function that stops the daemon/service 62 | # 63 | do_stop() 64 | { 65 | # Return 66 | # 0 if daemon has been stopped 67 | # 1 if daemon was already stopped 68 | # 2 if daemon could not be stopped 69 | # other if a failure occurred 70 | start-stop-daemon --stop --quiet --retry=TERM/5 --pidfile $PIDFILE --exec $DAEMON 71 | RETVAL="$?" 72 | [ "$RETVAL" = 2 ] && return 2 73 | # Wait for children to finish too if this is a daemon that forks 74 | # and if the daemon is only ever run from this initscript. 75 | # If the above conditions are not satisfied then add some other code 76 | # that waits for the process to drop all resources that could be 77 | # needed by services started subsequently. A last resort is to 78 | # sleep for some time. 79 | start-stop-daemon --stop --quiet --oknodo --retry=KILL/5 --exec $DAEMON 80 | [ "$?" = 2 ] && return 2 81 | # Many daemons don't delete their pidfiles when they exit. 82 | rm -f $PIDFILE 83 | return "$RETVAL" 84 | } 85 | 86 | 87 | case "$1" in 88 | start) 89 | [ "$VERBOSE" != no ] && log_daemon_msg "Starting $DESC " "$NAME" 90 | do_start 91 | case "$?" in 92 | 0|1) [ "$VERBOSE" != no ] && log_end_msg 0 ;; 93 | 2) [ "$VERBOSE" != no ] && log_end_msg 1 ;; 94 | esac 95 | ;; 96 | stop) 97 | [ "$VERBOSE" != no ] && log_daemon_msg "Stopping $DESC" "$NAME" 98 | do_stop 99 | case "$?" in 100 | 0|1) [ "$VERBOSE" != no ] && log_end_msg 0 ;; 101 | 2) [ "$VERBOSE" != no ] && log_end_msg 1 ;; 102 | esac 103 | ;; 104 | status) 105 | status_of_proc "$DAEMON" "$NAME" && exit 0 || exit $? 106 | ;; 107 | restart|force-reload) 108 | log_daemon_msg "Restarting $DESC" "$NAME" 109 | do_stop 110 | case "$?" in 111 | 0|1) 112 | do_start 113 | case "$?" in 114 | 0) log_end_msg 0 ;; 115 | 1) log_end_msg 1 ;; # Old process is still running 116 | *) log_end_msg 1 ;; # Failed to start 117 | esac 118 | ;; 119 | *) 120 | # Failed to stop 121 | log_end_msg 1 122 | ;; 123 | esac 124 | ;; 125 | *) 126 | echo "Usage: $SCRIPTNAME {start|stop|status|restart|force-reload}" >&2 127 | exit 3 128 | ;; 129 | esac 130 | 131 | : 132 | -------------------------------------------------------------------------------- /install: -------------------------------------------------------------------------------- 1 | bin/vlmcs usr/bin 2 | bin/vlmcsd usr/bin 3 | etc/vlmcsd.ini usr/share/vlmcsd 4 | etc/vlmcsd.kmd usr/share/vlmcsd 5 | -------------------------------------------------------------------------------- /postinst: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | set -e 4 | 5 | 6 | case "$1" in 7 | configure|reconfigure) 8 | if [ ! -d /etc/vlmcsd/ ]; then 9 | mkdir -p /etc/vlmcsd/ 10 | fi 11 | if [ ! -f /etc/vlmcsd/vlmcsd.ini ]; then 12 | cp /usr/share/vlmcsd/vlmcsd.ini /etc/vlmcsd/ 13 | fi 14 | if [ ! -f /etc/vlmcsd/vlmcsd.kmd ]; then 15 | cp /usr/share/vlmcsd/vlmcsd.kmd /etc/vlmcsd/ 16 | fi 17 | ;; 18 | abort-upgrade|abort-remove|abort-deconfigure) 19 | exit 0 20 | ;; 21 | *) 22 | echo "postinst called with unknown argument \`$1'" >&2 23 | exit 0 24 | ;; 25 | esac 26 | 27 | #DEBHELPER# 28 | 29 | exit 0 30 | -------------------------------------------------------------------------------- /postrm: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | set -e 4 | 5 | case "$1" in 6 | purge) 7 | rm -r /etc/vlmcsd 8 | ;; 9 | remove|upgrade|failed-upgrade|abort-install|abort-upgrade|disappear) 10 | exit 0 11 | ;; 12 | *) 13 | echo "postrm called with unknown argument \`$1'" >&2 14 | exit 0 15 | ;; 16 | esac 17 | 18 | #DEBHELPER# 19 | 20 | exit 0 21 | -------------------------------------------------------------------------------- /rules: -------------------------------------------------------------------------------- 1 | #!/usr/bin/make -f 2 | %: 3 | dh $@ 4 | -------------------------------------------------------------------------------- /source/format: -------------------------------------------------------------------------------- 1 | 3.0 (native) 2 | -------------------------------------------------------------------------------- /source/local-options: -------------------------------------------------------------------------------- 1 | #abort-on-upstream-changes 2 | #unapply-patches 3 | -------------------------------------------------------------------------------- /vlmcsd.manpages: -------------------------------------------------------------------------------- 1 | man/vlmcs.1 2 | man/vlmcsd.7 3 | man/vlmcsd.8 4 | man/vlmcsd.ini.5 5 | man/vlmcsdmulti.1 6 | -------------------------------------------------------------------------------- /vlmcsd.service: -------------------------------------------------------------------------------- 1 | [Unit] 2 | Description=Vlmcsd (KMS Emulator in C) 3 | After=network.target 4 | 5 | [Service] 6 | Type=simple 7 | DynamicUser=yes 8 | Restart=on-failure 9 | RestartSec=5s 10 | ExecStart=/usr/bin/vlmcsd -i /etc/vlmcsd/vlmcsd.ini -j /etc/vlmcsd/vlmcsd.kmd -l syslog -D 11 | 12 | [Install] 13 | WantedBy=multi-user.target 14 | -------------------------------------------------------------------------------- /watch: -------------------------------------------------------------------------------- 1 | version=4 2 | opts=filenamemangle=s/.+\/svn?(\d\S+)\.tar\.gz/vlmcsd-$1\.tar\.gz/ \ 3 | https://github.com/Wind4/vlmcsd/tags .*/svn?(\d\S+)\.tar\.gz 4 | --------------------------------------------------------------------------------