mirror of https://github.com/IoTcat/vlmcsd.git
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
559 lines
18 KiB
559 lines
18 KiB
<!-- Creator : groff version 1.22.3 --> |
|
<!-- CreationDate: Sat Oct 20 09:49:39 2018 --> |
|
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" |
|
"http://www.w3.org/TR/html4/loose.dtd"> |
|
<html> |
|
<head> |
|
<meta name="generator" content="groff -Thtml, see www.gnu.org"> |
|
<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII"> |
|
<meta name="Content-Style" content="text/css"> |
|
<style type="text/css"> |
|
p { margin-top: 0; margin-bottom: 0; vertical-align: top } |
|
pre { margin-top: 0; margin-bottom: 0; vertical-align: top } |
|
table { margin-top: 0; margin-bottom: 0; vertical-align: top } |
|
h1 { text-align: center } |
|
</style> |
|
<title>VLMCS</title> |
|
|
|
</head> |
|
<body> |
|
|
|
<h1 align="center">VLMCS</h1> |
|
|
|
<a href="#NAME">NAME</a><br> |
|
<a href="#SYNOPSIS">SYNOPSIS</a><br> |
|
<a href="#DESCRIPTION">DESCRIPTION</a><br> |
|
<a href="#OPTIONS">OPTIONS</a><br> |
|
<a href="#FILES">FILES</a><br> |
|
<a href="#EXAMPLES">EXAMPLES</a><br> |
|
<a href="#BUGS">BUGS</a><br> |
|
<a href="#AUTHOR">AUTHOR</a><br> |
|
<a href="#CREDITS">CREDITS</a><br> |
|
<a href="#SEE ALSO">SEE ALSO</a><br> |
|
|
|
<hr> |
|
|
|
|
|
<h2>NAME |
|
<a name="NAME"></a> |
|
</h2> |
|
|
|
|
|
<p style="margin-left:11%; margin-top: 1em">vlmcs - a |
|
client for testing and/or charging KMS servers</p> |
|
|
|
<h2>SYNOPSIS |
|
<a name="SYNOPSIS"></a> |
|
</h2> |
|
|
|
|
|
<p style="margin-left:11%; margin-top: 1em"><b>vlmcs</b> [ |
|
<i>options</i> ] [ <i>target</i> ] [ <i>options</i> ]</p> |
|
|
|
<p style="margin-left:11%; margin-top: 1em"><i>target</i> |
|
can be one of the following:</p> |
|
|
|
|
|
<p style="margin-left:22%; margin-top: 1em"><i>hostname</i>|<i>ipaddress</i>[:<i>tcp-port</i>] |
|
to query a specific KMS server (example: vlmcs |
|
kms.example.com:1688). <br> |
|
.<i>domain</i> to automatically detect KMS servers via DNS |
|
for <i>domain</i> (example: vlmcs .example.com). Please note |
|
the dot before <i>domain</i>. <i><br> |
|
-</i> (a single dash) to detect KMS servers in your own |
|
domain.</p> |
|
|
|
<p style="margin-left:11%; margin-top: 1em">If you use |
|
<i>ipaddress</i>:<i>port</i> as the <i>target</i>, the |
|
<i>ipaddress</i> must be enclosed in brackets if it contains |
|
colons, e.g. [2001:db8:dead:beef::1]:1688. If you use a |
|
link-local IPv6 address on Unix systems, you must append a |
|
percent sign and the interface identifier of the source |
|
interface, for example fe80::dead:beef%eth0.</p> |
|
|
|
<p style="margin-left:11%; margin-top: 1em">If you omit the |
|
<i>target</i>, 127.0.0.1:1688 will be used except if you use |
|
<b>-i6</b>. In this case the default target is |
|
[::1]:1688.</p> |
|
|
|
<h2>DESCRIPTION |
|
<a name="DESCRIPTION"></a> |
|
</h2> |
|
|
|
|
|
<p style="margin-left:11%; margin-top: 1em"><b>vlmcs</b> 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.</p> |
|
|
|
<p style="margin-left:11%; margin-top: 1em"><b>vlmcs</b> |
|
generates one or more activation requests for a Microsoft |
|
KMS product and sends it to a KMS server. It then analyzes |
|
and displays the responses of the KMS server.</p> |
|
|
|
<p style="margin-left:11%; margin-top: 1em"><b>vlcms</b> |
|
checks both the DCE-RPC protocol and the activation message |
|
for correctness and reports any errors that it finds.</p> |
|
|
|
<p style="margin-left:11%; margin-top: 1em"><b>vlmcs</b> |
|
can also be used to "charge" a KMS server. A |
|
Microsoft KMS server sends correct activation messages only |
|
if it detects a certain minimum of clients (25 for Windows |
|
client OSses, 5 otherwise) on the network. This is |
|
Microsoft’s futile attempt to prevent running a KMS |
|
server in a home environment.</p> |
|
|
|
<h2>OPTIONS |
|
<a name="OPTIONS"></a> |
|
</h2> |
|
|
|
|
|
<p style="margin-left:11%; margin-top: 1em"><b>-h</b> or |
|
<b>-?</b></p> |
|
|
|
<p style="margin-left:22%;">Show help.</p> |
|
|
|
<table width="100%" border="0" rules="none" frame="void" |
|
cellspacing="0" cellpadding="0"> |
|
<tr valign="top" align="left"> |
|
<td width="11%"></td> |
|
<td width="3%"> |
|
|
|
|
|
<p><b>-V</b></p></td> |
|
<td width="8%"></td> |
|
<td width="78%"> |
|
|
|
|
|
<p>Displays extended version information. This includes the |
|
compiler used to build vlmcs, the intended platform and |
|
flags (compile time options) to build vlmcs. If you have the |
|
source code of vlmcsd, you can type <b>make help</b> (or |
|
<b>gmake help</b> on systems that do not use the GNU version |
|
of <b>make</b>(1) by default) to see the meaning of those |
|
flags.</p> </td></tr> |
|
<tr valign="top" align="left"> |
|
<td width="11%"></td> |
|
<td width="3%"> |
|
|
|
|
|
<p><b>-x</b></p></td> |
|
<td width="8%"></td> |
|
<td width="78%"> |
|
|
|
|
|
<p>Show valid <i>application</i>s that can be used with |
|
<b>-l</b>.</p> </td></tr> |
|
<tr valign="top" align="left"> |
|
<td width="11%"></td> |
|
<td width="3%"> |
|
|
|
|
|
<p><b>-e</b></p></td> |
|
<td width="8%"></td> |
|
<td width="78%"> |
|
|
|
|
|
<p>Show some examples how to use vlmcs correctly.</p></td></tr> |
|
<tr valign="top" align="left"> |
|
<td width="11%"></td> |
|
<td width="3%"> |
|
|
|
|
|
<p><b>-v</b></p></td> |
|
<td width="8%"></td> |
|
<td width="78%"> |
|
|
|
|
|
<p>Be verbose. Instead of just displaying the returned ePID |
|
and the HwId (protocol v6 only) vlmcsd shows all details of |
|
the query and the response.</p></td></tr> |
|
</table> |
|
|
|
<p style="margin-left:11%;"><b>-l</b> |
|
<i>application</i></p> |
|
|
|
<p style="margin-left:22%;">Request activation for a |
|
specific <i>application</i>. Valid applications can be |
|
displayed by using <b>-x</b>. The default <i>application</i> |
|
is <i>Windows Vista Business</i>. The list of available |
|
applications is not complete. You may supply GUIDs with |
|
<b>-a</b>, <b>-k</b> and <b>-s</b> to specify applications |
|
that are not listed with <b>-x</b>. The <b>-l</b> option is |
|
used as a shortcut for the most common applications.</p> |
|
|
|
<p style="margin-left:11%;"><b>-K</b> |
|
<i>protocol-version</i></p> |
|
|
|
<p style="margin-left:22%;">Force a specific version of the |
|
KMS protocol. Valid versions are 4.0, 5.0 and 6.0. The |
|
default is to select a suitable version according to the |
|
<i>application</i> selected. You may use <b>-K</b> to send |
|
an incorrect protocol version to the KMS server and see how |
|
it behaves. Genuine KMS servers return HRESULT 0x8007000D if |
|
the KMS protocol is not 4.0, 5.0 or 6.0. Emulators should do |
|
the same. When sending a request with an incorrect protocol |
|
number, vlmcs ignores the minor protocol number (e.g. sends |
|
a v4 request for version 4.1). If the major version number |
|
is less then 4, it sends a v4 request. If the major version |
|
is greater then 6, it sends a v6 request. In any case the |
|
<i>protocol-version</i> as specified by <b>-K</b> is put in |
|
the version fields of the request.</p> |
|
|
|
<p style="margin-left:11%;"><b>-4</b>, <b>-5</b> and |
|
<b>-6</b></p> |
|
|
|
<p style="margin-left:22%;">Force version 4, 5 or 6 of the |
|
KMS protocol. These options are actually shortcuts of <b>-K |
|
4.0</b>, <b>-K 5.0</b> and <b>-K 6.0</b>.</p> |
|
|
|
<p style="margin-left:11%;"><b>-j</b> <i>filename</i></p> |
|
|
|
<p style="margin-left:22%;">Use KMS data file |
|
<i>filename</i>. By default vlmcs contains product data that |
|
is recent when vlmcs was compiled. You may use a more recent |
|
KMS data file that contains additional products.</p> |
|
|
|
<p style="margin-left:22%; margin-top: 1em">If vlmcsd has |
|
been compiled to use a default KMS data file, you may use |
|
<b>-j-</b> to ignore the default configuration file.</p> |
|
|
|
<table width="100%" border="0" rules="none" frame="void" |
|
cellspacing="0" cellpadding="0"> |
|
<tr valign="top" align="left"> |
|
<td width="11%"></td> |
|
<td width="3%"> |
|
|
|
|
|
<p><b>-m</b></p></td> |
|
<td width="8%"></td> |
|
<td width="78%"> |
|
|
|
|
|
<p>Let the client pretend to be a virtual machine. Early |
|
versions of Microsoft’s KMS server did not increase |
|
the client count if the request came from a virtual machine. |
|
Newer versions ignore this flag.</p></td></tr> |
|
<tr valign="top" align="left"> |
|
<td width="11%"></td> |
|
<td width="3%"> |
|
|
|
|
|
<p><b>-d</b></p></td> |
|
<td width="8%"></td> |
|
<td width="78%"> |
|
|
|
|
|
<p>Use NetBIOS names instead of DNS names. By default |
|
vlmcsd generates some random DNS names for each request. If |
|
you prefer NetBIOS names, you may use <b>-d</b>. A real |
|
Microsoft activation client uses DNS names or NetBIOS |
|
depending on the client name configuration. KMS servers |
|
treat the workstation name as a comment that affects logging |
|
only. Clients will be identified by a GUID that can be |
|
specified using <b>-c</b>. <b>-d</b> has no effect if you |
|
also specify <b>-w</b>.</p></td></tr> |
|
</table> |
|
|
|
<p style="margin-left:11%;"><b>-a</b> |
|
<i>application-guid</i></p> |
|
|
|
<p style="margin-left:22%;">Send requests with a specific |
|
<i>application-guid</i>. There are currently only three |
|
known valid <i>application-guid</i>s:</p> |
|
|
|
|
|
<p style="margin-left:22%; margin-top: 1em">55c92734-d682-4d71-983e-d6ec3f16059f |
|
(Windows) <br> |
|
59a52881-a989-479d-af46-f275c6370663 (Office 2010) <br> |
|
0ff1ce15-a989-479d-af46-f275c6370663 (Office 2013)</p> |
|
|
|
<p style="margin-left:22%; margin-top: 1em">A Microsoft KMS |
|
server uses these GUIDs to have seperate counters for the |
|
already activated clients. A client that does not contact |
|
the KMS server within 30 days will be deleted from the |
|
database. Emulated KMS servers are always fully charged.</p> |
|
|
|
<p style="margin-left:11%;"><b>-k</b> <i>kms-guid</i></p> |
|
|
|
<p style="margin-left:22%;">Send requests with a specific |
|
<i>kms-guid</i>. A Microsoft KMS server uses these GUIDs as |
|
a product id to decide whether to grant activation or not. A |
|
list of current <i>kms-guid</i>s can be found in kms.c |
|
(table KmsIdList). Emulated KMS servers grant activation |
|
unconditionally and do not check the <i>kms-guid</i>.</p> |
|
|
|
<p style="margin-left:11%;"><b>-s</b> |
|
<i>activation-guid</i></p> |
|
|
|
<p style="margin-left:22%;">The <i>activation-guid</i> |
|
defines the actual product, e.g. "Windows 8.1 |
|
Professional WMC KMSCLIENT edition". A |
|
<i>activation-guid</i> maps 1:1 to a product key. However, |
|
neither a Microsoft KMS server nor emulated servers check |
|
this id. The <i>activation-guid</i> is useful in logging to |
|
get a specific product description like "Windows 8.1 |
|
Professional WMC". A list of current |
|
<i>activation-guid</i>s can be found in kms.c (table |
|
ExtendedProductList).</p> |
|
|
|
<p style="margin-left:11%;"><b>-n</b> <i>requests</i></p> |
|
|
|
<p style="margin-left:22%;">Send <i>requests</i> requests |
|
to the server. The default is to send at least one request |
|
and enough subsequent requests that the server is fully |
|
charged afterwards for the <i>application-guid</i> you |
|
selected (explicitly with <b>-a</b> or implicitly by using |
|
<b>-l</b>).</p> |
|
|
|
<table width="100%" border="0" rules="none" frame="void" |
|
cellspacing="0" cellpadding="0"> |
|
<tr valign="top" align="left"> |
|
<td width="11%"></td> |
|
<td width="3%"> |
|
|
|
|
|
<p><b>-T</b></p></td> |
|
<td width="8%"></td> |
|
<td width="78%"> |
|
|
|
|
|
<p>Causes to use a new TCP connection for each request if |
|
multiple requests are sent with vlmcsd. This is useful when |
|
you want to test an emulated KMS server whether it suffers |
|
from memory leaks. To test for memory leaks use <b>-n</b> |
|
with a large number of requests (> 100000) and then test |
|
twice (with and without <b>-T</b>). This option may become |
|
neccessary for future versions of Microsoft’s KMS |
|
server because multiple requests with different |
|
<i>clients-guid</i>s for the same <i>kms-id-guid</i> are |
|
impossible in a real KMS szenario over the same TCP |
|
connection.</p> </td></tr> |
|
</table> |
|
|
|
<p style="margin-left:11%;"><b>-c</b> |
|
<i>client-machine-guid</i></p> |
|
|
|
<p style="margin-left:22%;">Normally vlmcs generates a |
|
random <i>client-machine-guid</i> for each request. By using |
|
this option you can specify a fixed |
|
<i>client-machine-guid</i> This causes a Microsoft KMS not |
|
to increment its client count because it receives multiple |
|
requests for the same client. Thus do not use <b>-c</b> if |
|
you want to charge a real KMS server.</p> |
|
|
|
<p style="margin-left:11%;"><b>-o</b> |
|
<i>previous-client-machine-guid</i></p> |
|
|
|
<p style="margin-left:22%;">If the |
|
<i>client-machine-guid</i> changes for some reason, the real |
|
KMS client stores a <i>previous-client-machine-guid</i> |
|
which is sent to the KMS server. This happens rarely and |
|
usually 00000000-0000-0000-0000-000000000000 is used. You |
|
can use <b>-o</b> to specify a different |
|
<i>previous-client-machine-guid</i>.</p> |
|
|
|
<p style="margin-left:11%;"><b>-G</b> <i>filename</i></p> |
|
|
|
<p style="margin-left:22%;">Grabs ePIDs and HWIDs from a |
|
KMS server and writes the information to <i>filename</i> in |
|
format suitable to be used as a configuration file (aka ini |
|
file) for <b>vlmcsd</b>(8). This is especially useful if you |
|
have access to a genuine KMS server and want to use the same |
|
data with <b>vlmcsd</b>(8).</p> |
|
|
|
<p style="margin-left:22%; margin-top: 1em">If |
|
<i>filename</i> does not exist, it will be created. If you |
|
specify an existing <i>filename</i>, it will be updated to |
|
use the information received from the remote KMS server and |
|
a backup <i>filename</i>~ will be created.</p> |
|
|
|
<p style="margin-left:22%; margin-top: 1em"><b>-G</b> |
|
cannot be used with <b>-l</b>, <b>-4</b>, <b>-5</b>, |
|
<b>-6</b>, <b>-a</b>, <b>-s</b>, <b>-k</b>, <b>-r</b> and |
|
<b>-n</b></p> |
|
|
|
<p style="margin-left:11%;"><b>-w</b> |
|
<i>workstation-name</i></p> |
|
|
|
<p style="margin-left:22%;">Send requests with a specific |
|
<i>workstation-name</i>. This disables the random generator |
|
for the workstation name. Since it is a comment only, this |
|
option does not have much effect.</p> |
|
|
|
<p style="margin-left:11%;"><b>-r</b> |
|
<i>required-client-count</i></p> |
|
|
|
<p style="margin-left:22%;">Also known as the "N count |
|
policy". Tells the KMS server that successful |
|
activation requires <i>required-client-count</i> clients. |
|
The default is the <i>required-client-count</i> that the |
|
product would need if the request was a real activation. A |
|
Microsoft KMS server counts clients up to the double amount |
|
what was specified with <b>-r</b>. This option can be used |
|
to "overcharge" a Microsoft KMS server.</p> |
|
|
|
|
|
<p style="margin-left:11%;"><b>-t </b><i>status</i></p> |
|
|
|
<p style="margin-left:22%;">Reports a specific license |
|
status to the KMS server. <i>status</i> is a number that can |
|
be from 0 to 6. 0=unlicensed, 1=licensed, 2=OOB grace, 3=OOT |
|
grace, 4=Non-genuinue grace, 5=notification, 6=extended |
|
grace. Refer to |
|
<a href="http://technet.microsoft.com/en-us/library/ff686879.aspx#_Toc257201371">TechNet</a> |
|
for more information. A Microsoft KMS server collects this |
|
information for statistics only.</p> |
|
|
|
<p style="margin-left:11%;"><b>-g</b> |
|
<i>binding-expiration</i></p> |
|
|
|
<p style="margin-left:22%;">This tells the KMS server how |
|
long a client will stay in its current license status. This |
|
can be the remaining OOB time (the grace peroid that is |
|
granted between installation of a product and when |
|
activation is actuall required) or the remaining time when |
|
KMS activation must be renewed. <i>binding-expiration</i> is |
|
specified in minutes. A Microsoft KMS server apparantly does |
|
not use this information.</p> |
|
|
|
<p style="margin-left:11%;"><b>-i</b> |
|
<i>protocol-version</i></p> |
|
|
|
<p style="margin-left:22%;">Force the use of Internet |
|
protocol <i>protocol-version</i>. Allowed values are 4 |
|
(IPv4) and 6 (IPv6). This option is useful only if you |
|
specfiy a <i>hostname</i> and not an <i>ip-address</i> on |
|
the command line.</p> |
|
|
|
<table width="100%" border="0" rules="none" frame="void" |
|
cellspacing="0" cellpadding="0"> |
|
<tr valign="top" align="left"> |
|
<td width="11%"></td> |
|
<td width="3%"> |
|
|
|
|
|
<p><b>-p</b></p></td> |
|
<td width="8%"></td> |
|
<td width="78%"> |
|
|
|
|
|
<p>Do not set the RPC_PF_MULTIPLEX flag in the RPC bind |
|
request. This can be used to test if the KMS server uses the |
|
same setting of this flag in the RPC bind respone. Some KMS |
|
emulators don’t set this correctly.</p></td></tr> |
|
</table> |
|
|
|
<p style="margin-left:11%;"><b>-N0</b> and <b>-N1</b></p> |
|
|
|
<p style="margin-left:22%;">Disables (<b>-N0</b>) or |
|
enables (<b>-N1</b>) the NDR64 transfer syntax in the RPC |
|
protocol. Disable NDR64 only in case of problems. If NDR64 |
|
is not used, vlmcs cannot detect many RPC protocol errors in |
|
KMS emulators. If you want to test whether a KMS emulator |
|
fully supports NDR64, you must use the <b>-n</b> option to |
|
send at least two requests. This is because |
|
Microsoft’s client always sends the first request |
|
using NDR32 syntax and subsequent requests using NDR64 |
|
syntax.</p> |
|
|
|
<p style="margin-left:11%;"><b>-B0</b> and <b>-B1</b></p> |
|
|
|
<p style="margin-left:22%;">Disables (<b>-B0</b>) or |
|
enables (<b>-B1</b>) bind time feature negotiation (BTFN) in |
|
the RPC protocol. Disable BTFN only in case of problems. If |
|
BTFN is not used, vlmcs cannot detect many RPC protocol |
|
errors in KMS emulators.</p> |
|
|
|
<p style="margin-left:11%; margin-top: 1em">Options that do |
|
not require an argument can be specified together with a |
|
single dash, e.g. vlmcs -6mvT. If you specify an option more |
|
than once, the last occurence will be in effect.</p> |
|
|
|
<h2>FILES |
|
<a name="FILES"></a> |
|
</h2> |
|
|
|
|
|
|
|
<p style="margin-left:11%; margin-top: 1em"><b>vlmcsd.ini</b>(5)</p> |
|
|
|
<h2>EXAMPLES |
|
<a name="EXAMPLES"></a> |
|
</h2> |
|
|
|
|
|
<p style="margin-left:11%; margin-top: 1em"><b>vlmcs |
|
kms.example.com</b></p> |
|
|
|
<p style="margin-left:22%;">Request activation for Windows |
|
Vista using v4 protocol from kms.example.com. Repeat |
|
activation requests until server is charged for all Windows |
|
products.</p> |
|
|
|
<p style="margin-left:11%;"><b>vlmcs -</b></p> |
|
|
|
<p style="margin-left:22%;">Request activation for Windows |
|
Vista using v4 protocol from a KMS server that is published |
|
via DNS for the current domain.</p> |
|
|
|
<p style="margin-left:11%;"><b>vlmcs .example.com</b></p> |
|
|
|
<p style="margin-left:22%;">Request activation for Windows |
|
Vista using v4 protocol from a KMS server that is published |
|
via DNS for domain example.com.</p> |
|
|
|
<p style="margin-left:11%;"><b>vlmcs -6 -l Office2013 -v -n |
|
1</b></p> |
|
|
|
<p style="margin-left:22%;">Request exactly one activation |
|
for Office2013 using v6 protocol from localhost. Display |
|
verbose results.</p> |
|
|
|
<p style="margin-left:11%;"><b>vlmcs kms.bigcompany.com -G |
|
/etc/vlmcsd.ini</b></p> |
|
|
|
<p style="margin-left:22%;">Get ePIDs and HWIDs from |
|
kms.bigcompany.com and create/update /etc/vlmcsd.ini |
|
accordingly.</p> |
|
|
|
<h2>BUGS |
|
<a name="BUGS"></a> |
|
</h2> |
|
|
|
|
|
<p style="margin-left:11%; margin-top: 1em">Some platforms |
|
(e.g. Solaris) may have a <b>man</b>(7) system that does not |
|
handle URLs. URLs may be omitted in the documentation on |
|
those platforms. Cygwin, Linux, FreeBSD and Mac OS X are |
|
known to work correctly.</p> |
|
|
|
<h2>AUTHOR |
|
<a name="AUTHOR"></a> |
|
</h2> |
|
|
|
|
|
<p style="margin-left:11%; margin-top: 1em">Written by |
|
Hotbird64</p> |
|
|
|
<h2>CREDITS |
|
<a name="CREDITS"></a> |
|
</h2> |
|
|
|
|
|
<p style="margin-left:11%; margin-top: 1em">Thanks to |
|
CODYQX4, crony12, deagles, DougQaid, eIcn, mikmik38, |
|
nosferati87, qad, Ratiborus, vityan666, ...</p> |
|
|
|
<h2>SEE ALSO |
|
<a name="SEE ALSO"></a> |
|
</h2> |
|
|
|
|
|
|
|
<p style="margin-left:11%; margin-top: 1em"><b>vlmcsd</b>(7), |
|
<b>vlmcsd</b>(8), <b>vlmcsdmulti</b>(1)</p> |
|
<hr> |
|
</body> |
|
</html>
|
|
|