vlmcs.1.html 18 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559
  1. <!-- Creator : groff version 1.22.3 -->
  2. <!-- CreationDate: Sat Oct 20 09:49:39 2018 -->
  3. <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
  4. "http://www.w3.org/TR/html4/loose.dtd">
  5. <html>
  6. <head>
  7. <meta name="generator" content="groff -Thtml, see www.gnu.org">
  8. <meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
  9. <meta name="Content-Style" content="text/css">
  10. <style type="text/css">
  11. p { margin-top: 0; margin-bottom: 0; vertical-align: top }
  12. pre { margin-top: 0; margin-bottom: 0; vertical-align: top }
  13. table { margin-top: 0; margin-bottom: 0; vertical-align: top }
  14. h1 { text-align: center }
  15. </style>
  16. <title>VLMCS</title>
  17. </head>
  18. <body>
  19. <h1 align="center">VLMCS</h1>
  20. <a href="#NAME">NAME</a><br>
  21. <a href="#SYNOPSIS">SYNOPSIS</a><br>
  22. <a href="#DESCRIPTION">DESCRIPTION</a><br>
  23. <a href="#OPTIONS">OPTIONS</a><br>
  24. <a href="#FILES">FILES</a><br>
  25. <a href="#EXAMPLES">EXAMPLES</a><br>
  26. <a href="#BUGS">BUGS</a><br>
  27. <a href="#AUTHOR">AUTHOR</a><br>
  28. <a href="#CREDITS">CREDITS</a><br>
  29. <a href="#SEE ALSO">SEE ALSO</a><br>
  30. <hr>
  31. <h2>NAME
  32. <a name="NAME"></a>
  33. </h2>
  34. <p style="margin-left:11%; margin-top: 1em">vlmcs - a
  35. client for testing and/or charging KMS servers</p>
  36. <h2>SYNOPSIS
  37. <a name="SYNOPSIS"></a>
  38. </h2>
  39. <p style="margin-left:11%; margin-top: 1em"><b>vlmcs</b> [
  40. <i>options</i> ] [ <i>target</i> ] [ <i>options</i> ]</p>
  41. <p style="margin-left:11%; margin-top: 1em"><i>target</i>
  42. can be one of the following:</p>
  43. <p style="margin-left:22%; margin-top: 1em"><i>hostname</i>|<i>ipaddress</i>[:<i>tcp-port</i>]
  44. to query a specific KMS server (example: vlmcs
  45. kms.example.com:1688). <br>
  46. .<i>domain</i> to automatically detect KMS servers via DNS
  47. for <i>domain</i> (example: vlmcs .example.com). Please note
  48. the dot before <i>domain</i>. <i><br>
  49. -</i> (a single dash) to detect KMS servers in your own
  50. domain.</p>
  51. <p style="margin-left:11%; margin-top: 1em">If you use
  52. <i>ipaddress</i>:<i>port</i> as the <i>target</i>, the
  53. <i>ipaddress</i> must be enclosed in brackets if it contains
  54. colons, e.g. [2001:db8:dead:beef::1]:1688. If you use a
  55. link-local IPv6 address on Unix systems, you must append a
  56. percent sign and the interface identifier of the source
  57. interface, for example fe80::dead:beef%eth0.</p>
  58. <p style="margin-left:11%; margin-top: 1em">If you omit the
  59. <i>target</i>, 127.0.0.1:1688 will be used except if you use
  60. <b>-i6</b>. In this case the default target is
  61. [::1]:1688.</p>
  62. <h2>DESCRIPTION
  63. <a name="DESCRIPTION"></a>
  64. </h2>
  65. <p style="margin-left:11%; margin-top: 1em"><b>vlmcs</b> is
  66. a program that can be used to test a KMS server that
  67. provides activation for several Microsoft products. The KMS
  68. server may also be an emulator. It supports KMS protocol
  69. versions 4, 5 and 6.</p>
  70. <p style="margin-left:11%; margin-top: 1em"><b>vlmcs</b>
  71. generates one or more activation requests for a Microsoft
  72. KMS product and sends it to a KMS server. It then analyzes
  73. and displays the responses of the KMS server.</p>
  74. <p style="margin-left:11%; margin-top: 1em"><b>vlcms</b>
  75. checks both the DCE-RPC protocol and the activation message
  76. for correctness and reports any errors that it finds.</p>
  77. <p style="margin-left:11%; margin-top: 1em"><b>vlmcs</b>
  78. can also be used to &quot;charge&quot; a KMS server. A
  79. Microsoft KMS server sends correct activation messages only
  80. if it detects a certain minimum of clients (25 for Windows
  81. client OSses, 5 otherwise) on the network. This is
  82. Microsoft&rsquo;s futile attempt to prevent running a KMS
  83. server in a home environment.</p>
  84. <h2>OPTIONS
  85. <a name="OPTIONS"></a>
  86. </h2>
  87. <p style="margin-left:11%; margin-top: 1em"><b>-h</b> or
  88. <b>-?</b></p>
  89. <p style="margin-left:22%;">Show help.</p>
  90. <table width="100%" border="0" rules="none" frame="void"
  91. cellspacing="0" cellpadding="0">
  92. <tr valign="top" align="left">
  93. <td width="11%"></td>
  94. <td width="3%">
  95. <p><b>-V</b></p></td>
  96. <td width="8%"></td>
  97. <td width="78%">
  98. <p>Displays extended version information. This includes the
  99. compiler used to build vlmcs, the intended platform and
  100. flags (compile time options) to build vlmcs. If you have the
  101. source code of vlmcsd, you can type <b>make help</b> (or
  102. <b>gmake help</b> on systems that do not use the GNU version
  103. of <b>make</b>(1) by default) to see the meaning of those
  104. flags.</p> </td></tr>
  105. <tr valign="top" align="left">
  106. <td width="11%"></td>
  107. <td width="3%">
  108. <p><b>-x</b></p></td>
  109. <td width="8%"></td>
  110. <td width="78%">
  111. <p>Show valid <i>application</i>s that can be used with
  112. <b>-l</b>.</p> </td></tr>
  113. <tr valign="top" align="left">
  114. <td width="11%"></td>
  115. <td width="3%">
  116. <p><b>-e</b></p></td>
  117. <td width="8%"></td>
  118. <td width="78%">
  119. <p>Show some examples how to use vlmcs correctly.</p></td></tr>
  120. <tr valign="top" align="left">
  121. <td width="11%"></td>
  122. <td width="3%">
  123. <p><b>-v</b></p></td>
  124. <td width="8%"></td>
  125. <td width="78%">
  126. <p>Be verbose. Instead of just displaying the returned ePID
  127. and the HwId (protocol v6 only) vlmcsd shows all details of
  128. the query and the response.</p></td></tr>
  129. </table>
  130. <p style="margin-left:11%;"><b>-l</b>
  131. <i>application</i></p>
  132. <p style="margin-left:22%;">Request activation for a
  133. specific <i>application</i>. Valid applications can be
  134. displayed by using <b>-x</b>. The default <i>application</i>
  135. is <i>Windows Vista Business</i>. The list of available
  136. applications is not complete. You may supply GUIDs with
  137. <b>-a</b>, <b>-k</b> and <b>-s</b> to specify applications
  138. that are not listed with <b>-x</b>. The <b>-l</b> option is
  139. used as a shortcut for the most common applications.</p>
  140. <p style="margin-left:11%;"><b>-K</b>
  141. <i>protocol-version</i></p>
  142. <p style="margin-left:22%;">Force a specific version of the
  143. KMS protocol. Valid versions are 4.0, 5.0 and 6.0. The
  144. default is to select a suitable version according to the
  145. <i>application</i> selected. You may use <b>-K</b> to send
  146. an incorrect protocol version to the KMS server and see how
  147. it behaves. Genuine KMS servers return HRESULT 0x8007000D if
  148. the KMS protocol is not 4.0, 5.0 or 6.0. Emulators should do
  149. the same. When sending a request with an incorrect protocol
  150. number, vlmcs ignores the minor protocol number (e.g. sends
  151. a v4 request for version 4.1). If the major version number
  152. is less then 4, it sends a v4 request. If the major version
  153. is greater then 6, it sends a v6 request. In any case the
  154. <i>protocol-version</i> as specified by <b>-K</b> is put in
  155. the version fields of the request.</p>
  156. <p style="margin-left:11%;"><b>-4</b>, <b>-5</b> and
  157. <b>-6</b></p>
  158. <p style="margin-left:22%;">Force version 4, 5 or 6 of the
  159. KMS protocol. These options are actually shortcuts of <b>-K
  160. 4.0</b>, <b>-K 5.0</b> and <b>-K 6.0</b>.</p>
  161. <p style="margin-left:11%;"><b>-j</b> <i>filename</i></p>
  162. <p style="margin-left:22%;">Use KMS data file
  163. <i>filename</i>. By default vlmcs contains product data that
  164. is recent when vlmcs was compiled. You may use a more recent
  165. KMS data file that contains additional products.</p>
  166. <p style="margin-left:22%; margin-top: 1em">If vlmcsd has
  167. been compiled to use a default KMS data file, you may use
  168. <b>-j-</b> to ignore the default configuration file.</p>
  169. <table width="100%" border="0" rules="none" frame="void"
  170. cellspacing="0" cellpadding="0">
  171. <tr valign="top" align="left">
  172. <td width="11%"></td>
  173. <td width="3%">
  174. <p><b>-m</b></p></td>
  175. <td width="8%"></td>
  176. <td width="78%">
  177. <p>Let the client pretend to be a virtual machine. Early
  178. versions of Microsoft&rsquo;s KMS server did not increase
  179. the client count if the request came from a virtual machine.
  180. Newer versions ignore this flag.</p></td></tr>
  181. <tr valign="top" align="left">
  182. <td width="11%"></td>
  183. <td width="3%">
  184. <p><b>-d</b></p></td>
  185. <td width="8%"></td>
  186. <td width="78%">
  187. <p>Use NetBIOS names instead of DNS names. By default
  188. vlmcsd generates some random DNS names for each request. If
  189. you prefer NetBIOS names, you may use <b>-d</b>. A real
  190. Microsoft activation client uses DNS names or NetBIOS
  191. depending on the client name configuration. KMS servers
  192. treat the workstation name as a comment that affects logging
  193. only. Clients will be identified by a GUID that can be
  194. specified using <b>-c</b>. <b>-d</b> has no effect if you
  195. also specify <b>-w</b>.</p></td></tr>
  196. </table>
  197. <p style="margin-left:11%;"><b>-a</b>
  198. <i>application-guid</i></p>
  199. <p style="margin-left:22%;">Send requests with a specific
  200. <i>application-guid</i>. There are currently only three
  201. known valid <i>application-guid</i>s:</p>
  202. <p style="margin-left:22%; margin-top: 1em">55c92734-d682-4d71-983e-d6ec3f16059f
  203. (Windows) <br>
  204. 59a52881-a989-479d-af46-f275c6370663 (Office 2010) <br>
  205. 0ff1ce15-a989-479d-af46-f275c6370663 (Office 2013)</p>
  206. <p style="margin-left:22%; margin-top: 1em">A Microsoft KMS
  207. server uses these GUIDs to have seperate counters for the
  208. already activated clients. A client that does not contact
  209. the KMS server within 30 days will be deleted from the
  210. database. Emulated KMS servers are always fully charged.</p>
  211. <p style="margin-left:11%;"><b>-k</b> <i>kms-guid</i></p>
  212. <p style="margin-left:22%;">Send requests with a specific
  213. <i>kms-guid</i>. A Microsoft KMS server uses these GUIDs as
  214. a product id to decide whether to grant activation or not. A
  215. list of current <i>kms-guid</i>s can be found in kms.c
  216. (table KmsIdList). Emulated KMS servers grant activation
  217. unconditionally and do not check the <i>kms-guid</i>.</p>
  218. <p style="margin-left:11%;"><b>-s</b>
  219. <i>activation-guid</i></p>
  220. <p style="margin-left:22%;">The <i>activation-guid</i>
  221. defines the actual product, e.g. &quot;Windows 8.1
  222. Professional WMC KMSCLIENT edition&quot;. A
  223. <i>activation-guid</i> maps 1:1 to a product key. However,
  224. neither a Microsoft KMS server nor emulated servers check
  225. this id. The <i>activation-guid</i> is useful in logging to
  226. get a specific product description like &quot;Windows 8.1
  227. Professional WMC&quot;. A list of current
  228. <i>activation-guid</i>s can be found in kms.c (table
  229. ExtendedProductList).</p>
  230. <p style="margin-left:11%;"><b>-n</b> <i>requests</i></p>
  231. <p style="margin-left:22%;">Send <i>requests</i> requests
  232. to the server. The default is to send at least one request
  233. and enough subsequent requests that the server is fully
  234. charged afterwards for the <i>application-guid</i> you
  235. selected (explicitly with <b>-a</b> or implicitly by using
  236. <b>-l</b>).</p>
  237. <table width="100%" border="0" rules="none" frame="void"
  238. cellspacing="0" cellpadding="0">
  239. <tr valign="top" align="left">
  240. <td width="11%"></td>
  241. <td width="3%">
  242. <p><b>-T</b></p></td>
  243. <td width="8%"></td>
  244. <td width="78%">
  245. <p>Causes to use a new TCP connection for each request if
  246. multiple requests are sent with vlmcsd. This is useful when
  247. you want to test an emulated KMS server whether it suffers
  248. from memory leaks. To test for memory leaks use <b>-n</b>
  249. with a large number of requests (&gt; 100000) and then test
  250. twice (with and without <b>-T</b>). This option may become
  251. neccessary for future versions of Microsoft&rsquo;s KMS
  252. server because multiple requests with different
  253. <i>clients-guid</i>s for the same <i>kms-id-guid</i> are
  254. impossible in a real KMS szenario over the same TCP
  255. connection.</p> </td></tr>
  256. </table>
  257. <p style="margin-left:11%;"><b>-c</b>
  258. <i>client-machine-guid</i></p>
  259. <p style="margin-left:22%;">Normally vlmcs generates a
  260. random <i>client-machine-guid</i> for each request. By using
  261. this option you can specify a fixed
  262. <i>client-machine-guid</i> This causes a Microsoft KMS not
  263. to increment its client count because it receives multiple
  264. requests for the same client. Thus do not use <b>-c</b> if
  265. you want to charge a real KMS server.</p>
  266. <p style="margin-left:11%;"><b>-o</b>
  267. <i>previous-client-machine-guid</i></p>
  268. <p style="margin-left:22%;">If the
  269. <i>client-machine-guid</i> changes for some reason, the real
  270. KMS client stores a <i>previous-client-machine-guid</i>
  271. which is sent to the KMS server. This happens rarely and
  272. usually 00000000-0000-0000-0000-000000000000 is used. You
  273. can use <b>-o</b> to specify a different
  274. <i>previous-client-machine-guid</i>.</p>
  275. <p style="margin-left:11%;"><b>-G</b> <i>filename</i></p>
  276. <p style="margin-left:22%;">Grabs ePIDs and HWIDs from a
  277. KMS server and writes the information to <i>filename</i> in
  278. format suitable to be used as a configuration file (aka ini
  279. file) for <b>vlmcsd</b>(8). This is especially useful if you
  280. have access to a genuine KMS server and want to use the same
  281. data with <b>vlmcsd</b>(8).</p>
  282. <p style="margin-left:22%; margin-top: 1em">If
  283. <i>filename</i> does not exist, it will be created. If you
  284. specify an existing <i>filename</i>, it will be updated to
  285. use the information received from the remote KMS server and
  286. a backup <i>filename</i>~ will be created.</p>
  287. <p style="margin-left:22%; margin-top: 1em"><b>-G</b>
  288. cannot be used with <b>-l</b>, <b>-4</b>, <b>-5</b>,
  289. <b>-6</b>, <b>-a</b>, <b>-s</b>, <b>-k</b>, <b>-r</b> and
  290. <b>-n</b></p>
  291. <p style="margin-left:11%;"><b>-w</b>
  292. <i>workstation-name</i></p>
  293. <p style="margin-left:22%;">Send requests with a specific
  294. <i>workstation-name</i>. This disables the random generator
  295. for the workstation name. Since it is a comment only, this
  296. option does not have much effect.</p>
  297. <p style="margin-left:11%;"><b>-r</b>
  298. <i>required-client-count</i></p>
  299. <p style="margin-left:22%;">Also known as the &quot;N count
  300. policy&quot;. Tells the KMS server that successful
  301. activation requires <i>required-client-count</i> clients.
  302. The default is the <i>required-client-count</i> that the
  303. product would need if the request was a real activation. A
  304. Microsoft KMS server counts clients up to the double amount
  305. what was specified with <b>-r</b>. This option can be used
  306. to &quot;overcharge&quot; a Microsoft KMS server.</p>
  307. <p style="margin-left:11%;"><b>-t&nbsp;</b><i>status</i></p>
  308. <p style="margin-left:22%;">Reports a specific license
  309. status to the KMS server. <i>status</i> is a number that can
  310. be from 0 to 6. 0=unlicensed, 1=licensed, 2=OOB grace, 3=OOT
  311. grace, 4=Non-genuinue grace, 5=notification, 6=extended
  312. grace. Refer to
  313. <a href="http://technet.microsoft.com/en-us/library/ff686879.aspx#_Toc257201371">TechNet</a>
  314. for more information. A Microsoft KMS server collects this
  315. information for statistics only.</p>
  316. <p style="margin-left:11%;"><b>-g</b>
  317. <i>binding-expiration</i></p>
  318. <p style="margin-left:22%;">This tells the KMS server how
  319. long a client will stay in its current license status. This
  320. can be the remaining OOB time (the grace peroid that is
  321. granted between installation of a product and when
  322. activation is actuall required) or the remaining time when
  323. KMS activation must be renewed. <i>binding-expiration</i> is
  324. specified in minutes. A Microsoft KMS server apparantly does
  325. not use this information.</p>
  326. <p style="margin-left:11%;"><b>-i</b>
  327. <i>protocol-version</i></p>
  328. <p style="margin-left:22%;">Force the use of Internet
  329. protocol <i>protocol-version</i>. Allowed values are 4
  330. (IPv4) and 6 (IPv6). This option is useful only if you
  331. specfiy a <i>hostname</i> and not an <i>ip-address</i> on
  332. the command line.</p>
  333. <table width="100%" border="0" rules="none" frame="void"
  334. cellspacing="0" cellpadding="0">
  335. <tr valign="top" align="left">
  336. <td width="11%"></td>
  337. <td width="3%">
  338. <p><b>-p</b></p></td>
  339. <td width="8%"></td>
  340. <td width="78%">
  341. <p>Do not set the RPC_PF_MULTIPLEX flag in the RPC bind
  342. request. This can be used to test if the KMS server uses the
  343. same setting of this flag in the RPC bind respone. Some KMS
  344. emulators don&rsquo;t set this correctly.</p></td></tr>
  345. </table>
  346. <p style="margin-left:11%;"><b>-N0</b> and <b>-N1</b></p>
  347. <p style="margin-left:22%;">Disables (<b>-N0</b>) or
  348. enables (<b>-N1</b>) the NDR64 transfer syntax in the RPC
  349. protocol. Disable NDR64 only in case of problems. If NDR64
  350. is not used, vlmcs cannot detect many RPC protocol errors in
  351. KMS emulators. If you want to test whether a KMS emulator
  352. fully supports NDR64, you must use the <b>-n</b> option to
  353. send at least two requests. This is because
  354. Microsoft&rsquo;s client always sends the first request
  355. using NDR32 syntax and subsequent requests using NDR64
  356. syntax.</p>
  357. <p style="margin-left:11%;"><b>-B0</b> and <b>-B1</b></p>
  358. <p style="margin-left:22%;">Disables (<b>-B0</b>) or
  359. enables (<b>-B1</b>) bind time feature negotiation (BTFN) in
  360. the RPC protocol. Disable BTFN only in case of problems. If
  361. BTFN is not used, vlmcs cannot detect many RPC protocol
  362. errors in KMS emulators.</p>
  363. <p style="margin-left:11%; margin-top: 1em">Options that do
  364. not require an argument can be specified together with a
  365. single dash, e.g. vlmcs -6mvT. If you specify an option more
  366. than once, the last occurence will be in effect.</p>
  367. <h2>FILES
  368. <a name="FILES"></a>
  369. </h2>
  370. <p style="margin-left:11%; margin-top: 1em"><b>vlmcsd.ini</b>(5)</p>
  371. <h2>EXAMPLES
  372. <a name="EXAMPLES"></a>
  373. </h2>
  374. <p style="margin-left:11%; margin-top: 1em"><b>vlmcs
  375. kms.example.com</b></p>
  376. <p style="margin-left:22%;">Request activation for Windows
  377. Vista using v4 protocol from kms.example.com. Repeat
  378. activation requests until server is charged for all Windows
  379. products.</p>
  380. <p style="margin-left:11%;"><b>vlmcs -</b></p>
  381. <p style="margin-left:22%;">Request activation for Windows
  382. Vista using v4 protocol from a KMS server that is published
  383. via DNS for the current domain.</p>
  384. <p style="margin-left:11%;"><b>vlmcs .example.com</b></p>
  385. <p style="margin-left:22%;">Request activation for Windows
  386. Vista using v4 protocol from a KMS server that is published
  387. via DNS for domain example.com.</p>
  388. <p style="margin-left:11%;"><b>vlmcs -6 -l Office2013 -v -n
  389. 1</b></p>
  390. <p style="margin-left:22%;">Request exactly one activation
  391. for Office2013 using v6 protocol from localhost. Display
  392. verbose results.</p>
  393. <p style="margin-left:11%;"><b>vlmcs kms.bigcompany.com -G
  394. /etc/vlmcsd.ini</b></p>
  395. <p style="margin-left:22%;">Get ePIDs and HWIDs from
  396. kms.bigcompany.com and create/update /etc/vlmcsd.ini
  397. accordingly.</p>
  398. <h2>BUGS
  399. <a name="BUGS"></a>
  400. </h2>
  401. <p style="margin-left:11%; margin-top: 1em">Some platforms
  402. (e.g. Solaris) may have a <b>man</b>(7) system that does not
  403. handle URLs. URLs may be omitted in the documentation on
  404. those platforms. Cygwin, Linux, FreeBSD and Mac OS X are
  405. known to work correctly.</p>
  406. <h2>AUTHOR
  407. <a name="AUTHOR"></a>
  408. </h2>
  409. <p style="margin-left:11%; margin-top: 1em">Written by
  410. Hotbird64</p>
  411. <h2>CREDITS
  412. <a name="CREDITS"></a>
  413. </h2>
  414. <p style="margin-left:11%; margin-top: 1em">Thanks to
  415. CODYQX4, crony12, deagles, DougQaid, eIcn, mikmik38,
  416. nosferati87, qad, Ratiborus, vityan666, ...</p>
  417. <h2>SEE ALSO
  418. <a name="SEE ALSO"></a>
  419. </h2>
  420. <p style="margin-left:11%; margin-top: 1em"><b>vlmcsd</b>(7),
  421. <b>vlmcsd</b>(8), <b>vlmcsdmulti</b>(1)</p>
  422. <hr>
  423. </body>
  424. </html>