vlmcs.1.dos.txt 15 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326
  1. VLMCS(1) KMS Activation Manual VLMCS(1)
  2. NAME
  3. vlmcs - a client for testing and/or charging KMS servers
  4. SYNOPSIS
  5. vlmcs [ options ] [ target ] [ options ]
  6. target can be one of the following:
  7. hostname|ipaddress[:tcp-port] to query a specific KMS server
  8. (example: vlmcs kms.example.com:1688).
  9. .domain to automatically detect KMS servers via DNS for domain
  10. (example: vlmcs .example.com). Please note the dot before
  11. domain.
  12. - (a single dash) to detect KMS servers in your own domain.
  13. If you use ipaddress:port as the target, the ipaddress must be enclosed
  14. in brackets if it contains colons, e.g. [2001:db8:dead:beef::1]:1688.
  15. If you use a link-local IPv6 address on Unix systems, you must append a
  16. percent sign and the interface identifier of the source interface, for
  17. example fe80::dead:beef%eth0.
  18. If you omit the target, 127.0.0.1:1688 will be used except if you use
  19. -i6. In this case the default target is [::1]:1688.
  20. DESCRIPTION
  21. vlmcs is a program that can be used to test a KMS server that provides
  22. activation for several Microsoft products. The KMS server may also be
  23. an emulator. It supports KMS protocol versions 4, 5 and 6.
  24. vlmcs generates one or more activation requests for a Microsoft KMS
  25. product and sends it to a KMS server. It then analyzes and displays the
  26. responses of the KMS server.
  27. vlcms checks both the DCE-RPC protocol and the activation message for
  28. correctness and reports any errors that it finds.
  29. vlmcs can also be used to "charge" a KMS server. A Microsoft KMS server
  30. sends correct activation messages only if it detects a certain minimum
  31. of clients (25 for Windows client OSses, 5 otherwise) on the network.
  32. This is Microsoft's futile attempt to prevent running a KMS server in a
  33. home environment.
  34. OPTIONS
  35. -h or -?
  36. Show help.
  37. -V Displays extended version information. This includes the com‐
  38. piler used to build vlmcs, the intended platform and flags (com‐
  39. pile time options) to build vlmcs. If you have the source code
  40. of vlmcsd, you can type make help (or gmake help on systems that
  41. do not use the GNU version of make(1) by default) to see the
  42. meaning of those flags.
  43. -x Show valid applications that can be used with -l.
  44. -e Show some examples how to use vlmcs correctly.
  45. -v Be verbose. Instead of just displaying the returned ePID and the
  46. HwId (protocol v6 only) vlmcsd shows all details of the query
  47. and the response.
  48. -l application
  49. Request activation for a specific application. Valid applica‐
  50. tions can be displayed by using -x. The default application is
  51. Windows Vista Business. The list of available applications is
  52. not complete. You may supply GUIDs with -a, -k and -s to specify
  53. applications that are not listed with -x. The -l option is used
  54. as a shortcut for the most common applications.
  55. -K protocol-version
  56. Force a specific version of the KMS protocol. Valid versions are
  57. 4.0, 5.0 and 6.0. The default is to select a suitable version
  58. according to the application selected. You may use -K to send an
  59. incorrect protocol version to the KMS server and see how it
  60. behaves. Genuine KMS servers return HRESULT 0x8007000D if the
  61. KMS protocol is not 4.0, 5.0 or 6.0. Emulators should do the
  62. same. When sending a request with an incorrect protocol number,
  63. vlmcs ignores the minor protocol number (e.g. sends a v4 request
  64. for version 4.1). If the major version number is less then 4, it
  65. sends a v4 request. If the major version is greater then 6, is
  66. sends a v6 request. In any case the protocol-version as speci‐
  67. fied by -K is put in the version fields of the request.
  68. -4, -5 and -6
  69. Force version 4, 5 or 6 of the KMS protocol. These options are
  70. actually shortcuts of -K 4.0, -K 5.0 and -K 6.0.
  71. -m Let the client pretend to be a virtual machine. Early versions
  72. of Microsoft's KMS server did not increase the client count if
  73. the request came from a virtual machine. Newer versions ignore
  74. this flag.
  75. -d Use NetBIOS names instead of DNS names. By default vlmcsd gener‐
  76. ates some random DNS names for each request. If you prefer Net‐
  77. BIOS names, you may use -d. A real Microsoft activation client
  78. uses DNS names or NetBIOS depending on the client name configu‐
  79. ration. KMS servers treat the workstation name as a comment that
  80. affects logging only. Clients will be identified by a GUID that
  81. can be specified using -c. -d has no effect if you also specify
  82. -w.
  83. -a application-guid
  84. Send requests with a specific application-guid. There are cur‐
  85. rently only three known valid application-guids:
  86. 55c92734-d682-4d71-983e-d6ec3f16059f (Windows)
  87. 59a52881-a989-479d-af46-f275c6370663 (Office 2010)
  88. 0ff1ce15-a989-479d-af46-f275c6370663 (Office 2013)
  89. A Microsoft KMS server uses these GUIDs to have seperate coun‐
  90. ters for the already activated clients. A client that does not
  91. contact the KMS server within 30 days will be deleted from the
  92. database. Emulated KMS servers are always fully charged.
  93. -k kms-guid
  94. Send requests with a specific kms-guid. A Microsoft KMS server
  95. uses these GUIDs as a product id to decide whether to grant
  96. activation or not. A list of current kms-guids can be found in
  97. kms.c (table KmsIdList). Emulated KMS servers grant activation
  98. unconditionally and do not check the kms-guid.
  99. -s activation-guid
  100. The activation-guid defines the actual product, e.g. "Windows
  101. 8.1 Professional WMC KMSCLIENT edition". A activation-guid maps
  102. 1:1 to a product key. However, neither a Microsoft KMS server
  103. nor emulated servers check this id. The activation-guid is use‐
  104. ful in logging to get a specific product description like "Win‐
  105. dows 8.1 Professional WMC". A list of current activation-guids
  106. can be found in kms.c (table ExtendedProductList).
  107. -n requests
  108. Send requests requests to the server. The default is to send at
  109. least one request and enough subsequent requests that the server
  110. is fully charged afterwards for the application-guid you
  111. selected (explicitly with -a or implicitly by using -l).
  112. -T Causes to use a new TCP connection for each request if multiple
  113. requests are sent with vlmcsd. This is useful when you want to
  114. test an emulated KMS server whether it suffers from memory
  115. leaks. To test for memory leaks use -n with a large number of
  116. requests (> 100000) and then test twice (with and without -T).
  117. This option may become neccessary for future versions of Micro‐
  118. soft's KMS server because multiple requests with different
  119. clients-guids for the same kms-id-guid are impossible in a real
  120. KMS szenario over the same TCP connection.
  121. -c client-machine-guid
  122. Normally vlmcs generates a random client-machine-guid for each
  123. request. By using this option you can specify a fixed client-
  124. machine-guid This causes a Microsoft KMS not to increment its
  125. client count because it receives multiple requests for the same
  126. client. Thus do not use -c if you want to charge a real KMS
  127. server.
  128. -o previous-client-machine-guid
  129. If the client-machine-guid changes for some reason, the real KMS
  130. client stores a previous-client-machine-guid which is sent to
  131. the KMS server. This happens rarely and usually
  132. 00000000-0000-0000-0000-000000000000 is used. You can use -o to
  133. specify a different previous-client-machine-guid.
  134. -G filename
  135. Grabs ePIDs and HWIDs from a KMS server and writes the informa‐
  136. tion to filename in format suitable to be used as a configura‐
  137. tion file (aka ini file) for vlmcsd(8). This is especially use‐
  138. ful if you have access to a genuine KMS server and want to use
  139. the same data with vlmcsd(8).
  140. If filename does not exist, it will be created. If you specify
  141. an existing filename, it will be updated to use the information
  142. received from the remote KMS server and a backup filename~ will
  143. be created.
  144. -G cannot be used with -l, -4, -5, -6, -a, -s, -k, -r and -n
  145. -w workstation-name
  146. Send requests with a specific workstation-name. This disables
  147. the random generator for the workstation name. Since it is a
  148. comment only, this option does not have much effect.
  149. -r required-client-count
  150. Also known as the "N count policy". Tells the KMS server that
  151. successful activation requires required-client-count clients.
  152. The default is the required-client-count that the product would
  153. need if the request was a real activation. A Microsoft KMS
  154. server counts clients up to the double amount what was specified
  155. with -r. This option can be used to "overcharge" a Microsoft KMS
  156. server.
  157. -t status
  158. Reports a specific license status to the KMS server. status is a
  159. number that can be from 0 to 6. 0=unlicensed, 1=licensed, 2=OOB
  160. grace, 3=OOT grace, 4=Non-genuinue grace, 5=notification,
  161. 6=extended grace. Refer to TechNet ⟨http://
  162. technet.microsoft.com/en-us/library/ff686879.aspx#_Toc257201371⟩
  163. for more information. A Microsoft KMS server collects this
  164. information for statistics only.
  165. -g binding-expiration
  166. This tells the KMS server how long a client will stay in its
  167. current license status. This can be the remaining OOB time (the
  168. grace peroid that is granted between installation of a product
  169. and when activation is actuall required) or the remaining time
  170. when KMS activation must be renewed. binding-expiration is
  171. specified in minutes. A Microsoft KMS server apparantly does not
  172. use this information.
  173. -i protocol-version
  174. Force the use of Internet protocol protocol-version. Allowed
  175. values are 4 (IPv4) and 6 (IPv6). This option is useful only if
  176. you specfiy a hostname and not an ip-address on the command
  177. line.
  178. -p Do not set the RPC_PF_MULTIPLEX flag in the RPC bind request.
  179. This can be used to test if the KMS server uses the same setting
  180. of this flag in the RPC bind respone. Some KMS emulators don't
  181. set this correctly.
  182. -N0 and -N1
  183. Disables (-N0) or enables (-N1) the NDR64 transfer syntax in the
  184. RPC protocol. Disable NDR64 only in case of problems. If NDR64
  185. is not used, vlmcs cannot detect many RPC protocol errors in KMS
  186. emulators. If you want to test whether a KMS emulator fully sup‐
  187. ports NDR64, you must use the -n option to send at least two
  188. requests. This is because Microsoft's client always sends the
  189. first request using NDR32 syntax and subsequent requests using
  190. NDR64 syntax.
  191. -B0 and -B1
  192. Disables (-B0) or enables (-B1) bind time feature negotiation
  193. (BTFN) in the RPC protocol. Disable BTFN only in case of prob‐
  194. lems. If BTFN is not used, vlmcs cannot detect many RPC protocol
  195. errors in KMS emulators.
  196. Options that do not require an argument can be specified together with
  197. a single dash, e.g. vlmcs -6mvT. If you specify an option more than
  198. once, the last occurence will be in effect.
  199. FILES
  200. vlmcsd.ini(5)
  201. EXAMPLES
  202. vlmcs kms.example.com
  203. Request activation for Windows Vista using v4 protocol from
  204. kms.example.com. Repeat activation requests until server is
  205. charged for all Windows products.
  206. vlmcs -
  207. Request activation for Windows Vista using v4 protocol from a
  208. KMS server that is published via DNS for the current domain.
  209. vlmcs .example.com
  210. Request activation for Windows Vista using v4 protocol from a
  211. KMS server that is published via DNS for domain example.com.
  212. vlmcs -6 -l Office2013 -v -n 1
  213. Request exactly one activation for Office2013 using v6 protocol
  214. from localhost. Display verbose results.
  215. vlmcs kms.bigcompany.com -G /etc/vlmcsd.ini
  216. Get ePIDs and HWIDs from kms.bigcompany.com and create/update
  217. /etc/vlmcsd.ini accordingly.
  218. BUGS
  219. Some platforms (e.g. Solaris) may have a man(7) system that does not
  220. handle URLs. URLs may be omitted in the documentation on those plat‐
  221. forms. Cygwin, Linux, FreeBSD and Mac OS X are known to work correctly.
  222. AUTHOR
  223. Written by Hotbird64
  224. CREDITS
  225. Thanks to CODYQX4, crony12, deagles, DougQaid, eIcn, mikmik38, nos‐
  226. ferati87, qad, Ratiborus, vityan666, ...
  227. SEE ALSO
  228. vlmcsd(7), vlmcsd(8), vlmcsdmulti(1)
  229. Hotbird64 May 2016 VLMCS(1)