1
0

vlmcs.1 11 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255
  1. .mso www.tmac
  2. .TH VLMCS 1 "February 2015" "Hotbird64" "KMS Activation Manual"
  3. .LO 1
  4. .SH NAME
  5. vlmcs \- a client for testing and/or charging KMS servers
  6. .SH SYNOPSIS
  7. \fBvlmcs\fR [ \fIoptions\fR ] [ \fItarget\fR ] [ \fIoptions\fR ]
  8. .PP
  9. \fItarget\fR can be one of the following:
  10. .RS
  11. .PP
  12. \fIhostname\fR|\fIipaddress\fR[:\fItcp-port\fR] or to query a specific KMS server (example: vlmcs kms.example.com:1688).
  13. .br
  14. \fR.\fIdomain\fR to automatically detect KMS servers via DNS for \fIdomain\fR (example: vlmcs .example.com). Please note the dot before \fIdomain\fR.
  15. .br
  16. \fI-\fR (a single dash) to detect KMS servers in your own domain.
  17. .RE
  18. If you use \fIipaddress\fR:\fIport\fR as the \fItarget\fR, the \fIipaddress\fR must be enclosed in brackets
  19. 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
  20. interface identifier of the source interface, for example fe80::dead:beef%eth0.
  21. .PP
  22. If you omit the \fItarget\fR, 127.0.0.1:1688 will be used except if you use \fB-i6\fR. In this case the default target is [::1]:1688.
  23. .SH DESCRIPTION
  24. \fBvlmcs\fR is a program that can be used to test a KMS server that provides activation for
  25. several Microsoft products. The KMS server may also be an emulator. It supports
  26. KMS protocol versions 4, 5 and 6.
  27. .PP
  28. .B vlmcs
  29. generates one or more activation requests for a Microsoft KMS product and sends
  30. it to a KMS server. It then analyzes and displays the responses of the KMS server.
  31. .PP
  32. .B vlcms
  33. checks both the DCE-RPC protocol and the activation message for correctness and
  34. reports any errors that it finds.
  35. .PP
  36. .B vlmcs
  37. 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.
  38. .SH OPTIONS
  39. .IP "\fB-h\fR or \fB-?"
  40. Show help.
  41. .IP \fB-x
  42. Show valid
  43. .IR application s
  44. that can be used with
  45. .BR "-l" "."
  46. .IP \fB-e
  47. Show some examples how to use vlmcs correctly.
  48. .IP \fB-v
  49. Be verbose. Instead of just displaying the returned ePID and the HwId
  50. (protocol v6 only) vlmcsd shows all details of the query and the response.
  51. .IP "\fB-l\fR \fIapplication"
  52. Request activation for a specific
  53. .IR "application" "."
  54. Valid applications can be displayed by using
  55. .BR "-x" "."
  56. The default
  57. .IR application " is"
  58. .IR "Windows Vista Business" "."
  59. The list of available applications is not complete. You may
  60. supply GUIDs with
  61. .BR "-a" ", " "-k" " and " "-s"
  62. to specify applications that are not listed with \fB-x\fR. The
  63. .B -l
  64. option is used as a shortcut for the most common applications.
  65. .IP "\fB-4\fR, \fB-5\fR and \fB-6"
  66. Force version 4, 5 or 6 of the KMS protocol. The default is to select a suitable
  67. version according to the
  68. .IR "application"
  69. selected. Plese note that some products (e.g. Office 2013) may use different protocols with different versions of Windows.
  70. .IP "\fB-m"
  71. Let the client pretend to be a virtual machine. Early versions of Microsoft's
  72. KMS server did not increase the client count if the request came from a virtual
  73. machine. Newer versions ignore this flag.
  74. .IP "\fB-d"
  75. Use NetBIOS names instead of DNS names. By default vlmcsd generates some random
  76. DNS names for each request. If you prefer NetBIOS names, you may use
  77. .IR "\fB-d" "."
  78. A real Microsoft activation client uses DNS names or NetBIOS depending on the
  79. client name configuration. KMS servers treat the workstation name as a comment
  80. that affects logging only. Clients will be identified by a GUID that can
  81. be specified using \fB-c\fR. \fB-d\fR has no effect if you also specify \fB-w\fR.
  82. .IP "\fB-a\fR \fIapplication-guid"
  83. Send requests with a specific
  84. .IR "application-guid" "."
  85. There are currently only three known valid
  86. .IR "application-guid" "s:"
  87. .IP
  88. 55c92734-d682-4d71-983e-d6ec3f16059f (Windows)
  89. .br
  90. 59a52881-a989-479d-af46-f275c6370663 (Office 2010)
  91. .br
  92. 0ff1ce15-a989-479d-af46-f275c6370663 (Office 2013)
  93. .IP
  94. A Microsoft KMS server uses these GUIDs to have seperate counters for the
  95. already activated clients. A client that does not contact the KMS server
  96. within 30 days will be deleted from the database. Emulated KMS servers
  97. are always fully charged.
  98. .IP "\fB-k\fR \fIkms-guid\fR"
  99. Send requests with a specific
  100. .IR "kms-guid" "."
  101. A Microsoft KMS server uses these GUIDs as a product id to decide whether to
  102. grant activation or not. A list of current \fIkms-guid\fRs can be found in
  103. kms.c (table KmsIdList). Emulated KMS servers grant activation unconditionally
  104. and do not check the \fIkms-guid\fR.
  105. .IP "\fB-s\fR \fIactivation-guid\fR"
  106. The \fIactivation-guid\fR defines the actual product, e.g. "Windows 8.1 Professional WMC KMSCLIENT edition". A \fIactivation-guid\fR maps 1:1 to a product key.
  107. However, neither a Microsoft KMS server nor emulated servers check this id.
  108. The \fIactivation-guid\fR is useful in logging to get a specific product description like
  109. "Windows 8.1 Professional WMC". A list of current \fIactivation-guid\fRs can be found in
  110. kms.c (table ExtendedProductList).
  111. .IP "\fB-n\fR \fIrequests"
  112. Send
  113. .I requests
  114. requests to the server. The default is to send at least one request and enough
  115. subsequent requests that the server is fully charged afterwards for
  116. the \fIapplication\-guid\fR you selected (explicitly with
  117. .BR "-a" " or implicitly by using " "-l" ")."
  118. .IP "\fB-T"
  119. Causes to use a new TCP connection for each request if multiple requests
  120. are sent with vlmcsd. This is useful when you want to test an emulated KMS
  121. server whether it suffers from memory leaks. To test for memory leaks use
  122. .B -n
  123. with a large number of requests (> 100000) and then test twice (with and
  124. without
  125. .BR "-T" ")."
  126. This option may become neccessary for future versions of Microsoft's KMS
  127. server because multiple requests with different
  128. .IR clients-guid s
  129. for the same
  130. .I kms-id-guid
  131. are impossible in a real KMS szenario over the same TCP connection.
  132. .IP "\fB-c\fR \fIclient-machine-guid\fR"
  133. Normally vlmcs generates a random \fIclient-machine-guid\fR for each request. By using this option you can specify a fixed \fIclient-machine-guid\fR
  134. This causes a Microsoft KMS not to increment its client count because it
  135. receives multiple requests for the same client. Thus do not use
  136. .BR "-c"
  137. if you want to charge a real KMS server.
  138. .IP "\fB-o\fR \fIprevious-client-machine-guid\fR"
  139. If the \fIclient-machine-guid\fR changes for some reason, the real KMS client stores a \fIprevious-client-machine-guid\fR which is sent
  140. to the KMS server. This happens rarely and usually 00000000-0000-0000-0000-000000000000 is used. You can use \fB-o\fR to specify a different
  141. \fIprevious-client-machine-guid\fR.
  142. .IP "\fB-G\fR \fIfilename\fR"
  143. Grabs ePIDs and HWIDs from a KMS server and writes the information to \fIfilename\fR
  144. in format suitable to be used as a configuration file (aka ini file) for \fBvlmcsd\fR(8).
  145. This is especially useful if you have access to a genuine KMS server and want to use
  146. the same data with \fBvlmcsd\fR(8).
  147. If \fIfilename\fR does not exist, it will be created.
  148. If you specify an existing \fIfilename\fR, it will be updated to use the information
  149. received from the remote KMS server and a backup \fIfilename\fR~ will be created.
  150. \fB-G\fR cannot be used with \fB-l\fR, \fB-4\fR, \fB-5\fR, \fB-6\fR, \fB-a\fR, \fB-s\fR, \fB-k\fR, \fB-r\fR and \fB-n\fR
  151. .IP "\fB-w\fR \fIworkstation-name"
  152. Send requests with a specific
  153. .IR "workstation-name" "."
  154. This disables the random generator for the workstation name. Since it is
  155. a comment only, this option does not have much effect.
  156. .IP "\fB-r\fR \fIrequired-client-count"
  157. Also known as the "N count policy". Tells the KMS server that successful activation requires
  158. \fIrequired-client-count\fR clients. The default is the
  159. \fIrequired-client-count\fR that the product would need if the request
  160. was a real activation. A Microsoft KMS server counts clients
  161. up to the double amount what was specified with \fB-r\fR. This option
  162. can be used to "overcharge" a Microsoft KMS server.
  163. .IP "\fB\-t\ \fIstatus\fR"
  164. Reports a specific license status to the KMS server. \fIstatus\fR is a number
  165. that can be from 0 to 6. 0=unlicensed, 1=licensed, 2=OOB grace, 3=OOT grace,
  166. 4=Non-genuinue grace, 5=notification, 6=extended grace. Refer to
  167. .URL "http://technet.microsoft.com/en-us/library/ff686879.aspx#_Toc257201371" "TechNet" ""
  168. for more information. A Microsoft KMS server collects this information for
  169. statistics only.
  170. .IP "\fB-g\fR \fIbinding-expiration\fR"
  171. This tells the KMS server how long a client will stay in its current license
  172. 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
  173. the remaining time when KMS activation must be renewed.
  174. \fIbinding-expiration\fR is specified in minutes. A Microsoft KMS server
  175. apparantly does not use this information.
  176. .IP "\fB-i \fIprotocol-version\fR"
  177. Force the use of Internet protocol \fIprotocol-version\fR. Allowed values are 4 (IPv4) and 6 (IPv6). This option is useful only if you specfiy a \fIhostname\fR and not an
  178. \fIip-address\fR on the command line.
  179. .IP "\fB-p\fR"
  180. 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
  181. emulators don't set this correctly.
  182. .IP "\fB-N0\fR and \fB-N1\fR"
  183. Disables (\fB-N0\fR) or enables (\fB-N1\fR) 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 \fB-n\fR 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.
  184. .IP "\fB-B0\fR and \fB-B1\fR"
  185. Disables (\fB-B0\fR) or enables (\fB-B1\fR) 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.
  186. .PP
  187. Options that do not require an argument can be specified together with a single
  188. dash, e.g. vlmcs -6mvT. If you specify an option more than once, the last occurence
  189. will be in effect.
  190. .SH FILES
  191. .IP "\fBvlmcsd.ini\fR(5)"
  192. .SH EXAMPLES
  193. .IP "\fBvlmcs kms.example.com"
  194. Request activation for Windows Vista using v4 protocol from kms.example.com.
  195. Repeat activation requests until server is charged for all Windows products.
  196. .IP "\fBvlmcs -"
  197. Request activation for Windows Vista using v4 protocol from a KMS server that is published via DNS for the current domain.
  198. .IP "\fBvlmcs .example.com"
  199. Request activation for Windows Vista using v4 protocol from a KMS server that is published via DNS for domain example.com.
  200. .IP "\fBvlmcs -6 -l Office2013 -v -n 1"
  201. Request exactly one activation for Office2013 using v6 protocol from
  202. localhost. Display verbose results.
  203. .IP "\fBvlmcs kms.bigcompany.com -G /etc/vlmcsd.ini"
  204. Get ePIDs and HWIDs from kms.bigcompany.com and create/update /etc/vlmcsd.ini accordingly.
  205. .SH BUGS
  206. Some platforms (e.g. Solaris) may have a \fBman\fR(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.
  207. .SH AUTHOR
  208. Written by Hotbird64
  209. .SH CREDITS
  210. Thanks to CODYQX4, crony12, deagles, DougQaid, eIcn, mikmik38, nosferati87, qad, Ratiborus, vityan666, ...
  211. .SH SEE ALSO
  212. \fBvlmcsd\fR(7), \fBvlmcsd\fR(8), \fBvlmcsdmulti\fR(1)