1
0

vlmcsd.8.html 33 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937
  1. <!-- Creator : groff version 1.22.3 -->
  2. <!-- CreationDate: Wed Jul 13 12:34:01 2016 -->
  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>VLMCSD</title>
  17. </head>
  18. <body>
  19. <h1 align="center">VLMCSD</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="#SIGNALS">SIGNALS</a><br>
  25. <a href="#SUPPORTED OPERATING SYSTEMS">SUPPORTED OPERATING SYSTEMS</a><br>
  26. <a href="#SUPPORTED PRODUCTS">SUPPORTED PRODUCTS</a><br>
  27. <a href="#FILES">FILES</a><br>
  28. <a href="#EXAMPLES">EXAMPLES</a><br>
  29. <a href="#BUGS">BUGS</a><br>
  30. <a href="#AUTHOR">AUTHOR</a><br>
  31. <a href="#CREDITS">CREDITS</a><br>
  32. <a href="#SEE ALSO">SEE ALSO</a><br>
  33. <hr>
  34. <h2>NAME
  35. <a name="NAME"></a>
  36. </h2>
  37. <p style="margin-left:11%; margin-top: 1em">vlmcsd &minus;
  38. a fully Microsoft compatible KMS server</p>
  39. <h2>SYNOPSIS
  40. <a name="SYNOPSIS"></a>
  41. </h2>
  42. <p style="margin-left:11%; margin-top: 1em"><b>vlmcsd</b> [
  43. <i>options</i> ]</p>
  44. <h2>DESCRIPTION
  45. <a name="DESCRIPTION"></a>
  46. </h2>
  47. <p style="margin-left:11%; margin-top: 1em"><b>vlmcsd</b>
  48. is a fully Microsoft compatible KMS server that provides
  49. product activation services to clients. It is meant as a
  50. drop-in replacement for a Microsoft KMS server (Windows
  51. computer with KMS key entered). It currently supports KMS
  52. protocol versions 4, 5 and 6.</p>
  53. <p style="margin-left:11%; margin-top: 1em"><b>vlmcsd</b>
  54. is designed to run on POSIX compatible operating systens. It
  55. only requires a basic C library with a BSD-style sockets API
  56. and either <b>fork</b>(2) or <b>pthreads</b>(7). That allows
  57. it to run on most embedded systems like routers, NASes,
  58. mobile phones, tablets, TVs, settop boxes, etc. Some efforts
  59. have been made that it also runs on Windows.</p>
  60. <p style="margin-left:11%; margin-top: 1em">Although
  61. <b>vlmcsd</b> does neither require an activation key nor a
  62. payment to anyone, it is not meant to run illegal copies of
  63. Windows. Its purpose is to ensure that owners of legal
  64. copies can use their software without restrictions, e.g. if
  65. you buy a new computer or motherboard and your key will be
  66. refused activation from Microsoft servers due to hardware
  67. changes.</p>
  68. <p style="margin-left:11%; margin-top: 1em"><b>vlmcsd</b>
  69. may be started via an internet superserver like
  70. <b>inetd</b>(8) or <b>xinetd</b>(8) as well as an advanced
  71. init system like <b>systemd</b>(8) or <b>launchd</b>(8)
  72. using socket based activation. If <b>vlmcsd</b> detects that
  73. <b>stdin</b>(3) is a socket, it assumes that there is
  74. already a connected client on stdin that wants to be
  75. activated. All options that control setting up listening
  76. sockets will be ignored when in inetd mode.</p>
  77. <h2>OPTIONS
  78. <a name="OPTIONS"></a>
  79. </h2>
  80. <p style="margin-left:11%; margin-top: 1em">Since vlmcsd
  81. can be configured at compile time, some options may not be
  82. available on your system.</p>
  83. <p style="margin-left:11%; margin-top: 1em">All options
  84. that do no require an argument may be combined with a single
  85. dash, for instance &quot;vlmcsd -D -e&quot; is identical to
  86. &quot;vlmcsd -De&quot;. For all options that require an
  87. argument a space between the option and the option argument
  88. is optional. Thus &quot;vlmcsd -r 2&quot; and &quot;vlmcsd
  89. -r2&quot; are identical too. <b><br>
  90. -h</b> or <b>-?</b></p>
  91. <p style="margin-left:22%;">Displays help.</p>
  92. <table width="100%" border="0" rules="none" frame="void"
  93. cellspacing="0" cellpadding="0">
  94. <tr valign="top" align="left">
  95. <td width="11%"></td>
  96. <td width="3%">
  97. <p><b>-V</b></p></td>
  98. <td width="8%"></td>
  99. <td width="78%">
  100. <p>Displays extended version information. This includes the
  101. compiler used to build vlmcsd, the intended platform and
  102. flags (compile time options) to build vlmcsd. If you have
  103. the source code of vlmcsd, you can type <b>make help</b> (or
  104. <b>gmake help</b> on systems that do not use the GNU version
  105. of <b>make</b>(1) by default) to see the meaning of those
  106. flags.</p> </td></tr>
  107. </table>
  108. <p style="margin-left:11%;"><b>-L</b>
  109. <i>ipaddress</i>[:<i>port</i>]</p>
  110. <p style="margin-left:22%;">Instructs vlmcsd to listen on
  111. <i>ipaddress</i> with optional <i>port</i> (default 1688).
  112. You can use this option more than once. If you do not
  113. specify <b>-L</b> at least once, IP addresses 0.0.0.0 (IPv4)
  114. and :: (IPv6) are used. If the IP address contains colons
  115. (IPv6) you must enclose the IP address in brackets if you
  116. specify the optional port, e.g.
  117. [2001:db8::dead:beef]:1688.</p>
  118. <p style="margin-left:22%; margin-top: 1em">If no port is
  119. specified, vlmcsd uses the default port according to a
  120. preceding <b>-P</b> option. If you specify a port, it can be
  121. a number (1-65535) or a name (usually found in /etc/services
  122. if not provided via LDAP, NIS+ or another name service).</p>
  123. <p style="margin-left:22%; margin-top: 1em">If you specify
  124. a link local IPv6 address (fe80::/10, usually starting with
  125. fe80::), it must be followed by a percent sign (%) and a
  126. scope id (=network interface name or number) on most unixoid
  127. OSses including Linux, Android, MacOS X and iOS, e.g.
  128. fe80::1234:56ff:fe78:9abc<b>%eth0</b> or
  129. [fe80::1234:56ff:fe78:9abc<b>%2</b>]:1688. Windows
  130. (including cygwin) does not require a scope id unless the
  131. same link local address is used on more than one network
  132. interface. Windows does not accept a name and the scope id
  133. must be a number.</p>
  134. <p style="margin-left:11%;"><b>-o</b> <i>level</i></p>
  135. <p style="margin-left:22%;">Sets the <i>level</i> of
  136. protection against activations from public IP addresses. The
  137. default is <b>-o0</b> for no protection.</p>
  138. <p style="margin-left:22%; margin-top: 1em"><b>-o1</b>
  139. causes vlmcsd not to listen on all IP addresses but on
  140. private IP addresses only. IPv4 addresses in the
  141. 100.64.0.0/10 range (see RFC6598) are not treated as private
  142. since they can be reached from other users of your ISP.
  143. Private IPv4 addresses are 10.0.0.0/8, 172.16.0.0/12,
  144. 192.168.0.0/16, 169.254.0.0/16 and 127.0.0.0/8. vlmcsd
  145. treats all IPv6 addresses not within 2000::/3 as private
  146. addresses.</p>
  147. <p style="margin-left:22%; margin-top: 1em">If <b>-o1</b>
  148. is combined with <b>-L</b>, it will listen on all private IP
  149. addresses plus the ones specified by one or more <b>-L</b>
  150. statements. If <b>-o1</b> is combined with <b>-P</b>, only
  151. the last <b>-P</b> statement will be used.</p>
  152. <p style="margin-left:22%; margin-top: 1em">Using
  153. <b>-o1</b> does not protect you if you enable NAT port
  154. forwarding on your router to your vlmcsd machine. It is
  155. identical to using multiple -L statements with all of your
  156. private IP addresses. What <b>-o1</b> does for you, is
  157. automatically enumerating your private IP addresses.</p>
  158. <p style="margin-left:22%; margin-top: 1em"><b>-o2</b> does
  159. not affect the interfaces, vlmcsd is listening on. When a
  160. clients connects, vlmcsd immediately drops the connection if
  161. the client has a public IP address. Unlike <b>-o1</b>
  162. clients will be able to establish a TCP connection but it
  163. will be closed without a single byte sent over the
  164. connection. This protects against clients with public IP
  165. addresses even if NAT port forwarding is used. While
  166. <b>-o2</b> offers a higher level of protection than
  167. <b>-o1</b>, the client sees that the KMS TCP port (1688 by
  168. default) is actually accepting connections.</p>
  169. <p style="margin-left:22%; margin-top: 1em"><b>-o3</b>
  170. combines <b>-o1</b> and <b>-o2</b>. vlmcsd listens on
  171. private interfaces only and if a public client manages to
  172. connect anyway due to NAT port forwarding, it will be
  173. immediately dropped.</p>
  174. <p style="margin-left:22%; margin-top: 1em">If you use any
  175. form of TCP level port forwarding (e.g. <b>nc</b>(1),
  176. <b>netcat</b>(1), <b>ssh</b>(1) port forwarding or similar)
  177. to redirect KMS requests to vlmcsd, there will be no
  178. protection even if you use <b>-o2</b> or <b>-o3</b>. This is
  179. due to the simple fact that vlmcsd sees the IP address of
  180. the redirector and not the IP address of the client.</p>
  181. <p style="margin-left:22%; margin-top: 1em"><b>-o1</b> (and
  182. thus <b>-o3</b>) is not (yet) available in some
  183. scenarios:</p>
  184. <p style="margin-left:29%; margin-top: 1em">FreeBSD: There
  185. is a longtime unfixed
  186. <a href="https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=178881">bug</a>
  187. in the 32-bit ABI of the 64-bit kernel. If you have a 64-bit
  188. FreeBSD kernel, you must run the 64-bit version of vlmcsd if
  189. you use <b>-o1</b> or <b>-o3</b>. The 32-bit version causes
  190. undefined behavior up to crashing vlmcsd. Other BSDs
  191. (NetBSD, OpenBSD, Dragonfly and Mac OS X) work
  192. correctly.</p>
  193. <p style="margin-left:29%; margin-top: 1em">If vlmcsd was
  194. started by an internet superserver or was compiled to use
  195. Microsoft RPC (Windows only) or simple sockets, <b>-o1</b>
  196. and <b>-o3</b> are not available by design.</p>
  197. <p style="margin-left:11%;"><b>-P</b> <i>port</i></p>
  198. <p style="margin-left:22%;">Use TCP <i>port</i> for all
  199. subsequent <b>-L</b> statements that do not include an
  200. optional port. If you use <b>-P</b> and <b>-L</b>, <b>-P</b>
  201. must be specified before <b>-L</b>.</p>
  202. <p style="margin-left:11%;"><b>-F0</b> and <b>-F1</b></p>
  203. <p style="margin-left:22%;">Allow (<b>-F1</b>) or disallow
  204. (<b>-F0</b>) binding to IP addresses that are currently not
  205. configured on your system. The default is <b>-F0</b>.
  206. <b>-F1</b> allows you to bind to an IP address that may be
  207. configured after you started <b>vlmcsd</b>. <b>vlmcsd</b>
  208. will listen on that address as soon as it becomes available.
  209. This feature is only available under Linux (IPv4 and IPv6)
  210. and FreeBSD (IPv4 only). FreeBSD allows this feature only
  211. for the root user (more correctly: processes that have the
  212. PRIV_NETINET_BINDANY privilege). Linux does not require a
  213. capability for this.</p>
  214. <p style="margin-left:11%;"><b>-t</b> <i>seconds</i></p>
  215. <p style="margin-left:22%;">Timeout the TCP connection with
  216. the client after <i>seconds</i> seconds. After sending an
  217. activation request. RPC keeps the TCP connection for a
  218. while. The default is 30 seconds. You may specify a shorter
  219. period to free ressources on your device faster. This is
  220. useful for devices with limited main memory or if you used
  221. <b>-m</b> to limit the concurrent clients that may request
  222. activation. Microsoft RPC clients disconnect after 30
  223. seconds by default. Setting <i>seconds</i> to a greater
  224. value does not make much sense.</p>
  225. <p style="margin-left:11%;"><b>-m</b>
  226. <i>concurrent-clients</i></p>
  227. <p style="margin-left:22%;">Limit the number of clients
  228. that will be handled concurrently. This is useful for
  229. devices with limited ressources or if you are experiencing
  230. DoS attacks that spawn thousands of threads or forked
  231. processes. If additional clients connect to vlmcsd, they
  232. need to wait until another client disconnects. If you set
  233. <i>concurrent-clients</i> to a small value ( &lt;10 ), you
  234. should also select a reasonable timeout of 2 or 3 seconds
  235. with <b>-t</b>. The default is no limit.</p>
  236. <table width="100%" border="0" rules="none" frame="void"
  237. cellspacing="0" cellpadding="0">
  238. <tr valign="top" align="left">
  239. <td width="11%"></td>
  240. <td width="3%">
  241. <p><b>-d</b></p></td>
  242. <td width="8%"></td>
  243. <td width="78%">
  244. <p>Disconnect each client after processing one activation
  245. request. This is a direct violation of DCE RPC but may help
  246. if you receive malicous fake RPC requests that block your
  247. threads or forked processes. Some other KMS emulators (e.g.
  248. py-kms) behave this way.</p></td></tr>
  249. <tr valign="top" align="left">
  250. <td width="11%"></td>
  251. <td width="3%">
  252. <p><b>-k</b></p></td>
  253. <td width="8%"></td>
  254. <td width="78%">
  255. <p>Do not disconnect clients after processing an activation
  256. request. This selects the default behavior. <b>-k</b> is
  257. useful only if you used an ini file (see
  258. <b>vlmcsd.ini</b>(5) and <b>-i</b>). If the ini file
  259. contains the line &quot;DisconnectClientsImmediately =
  260. true&quot;, you can use this switch to restore the default
  261. behavior.</p> </td></tr>
  262. </table>
  263. <p style="margin-left:11%;"><b>-N0</b> and <b>-N1</b></p>
  264. <p style="margin-left:22%;">Disables (<b>-N0</b>) or
  265. enables (<b>-N1</b>) the use of the NDR64 transfer syntax in
  266. the RPC protocol. Unlike Microsoft vlmcsd supports NDR64 on
  267. 32-bit operating systems. Microsoft introduced NDR64 in
  268. Windows Vista but their KMS servers started using it with
  269. Windows 8. Thus if you choose random ePIDs, vlmcsd will
  270. select ePIDs with build numbers 9200 and 9600 if you enable
  271. NDR64 and build numbers 6002 and 7601 if you disable NDR64.
  272. The default is to enable NDR64.</p>
  273. <p style="margin-left:11%;"><b>-B0</b> and <b>-B1</b></p>
  274. <p style="margin-left:22%;">Disables (<b>-B0</b>) or
  275. enables (<b>-B1</b>) bind time feature negotiation (BTFN) in
  276. the RPC protocol. All Windows operating systems starting
  277. with Vista support BTFN and try to negotiate it when
  278. initiating an RPC connection. Thus consider turning it off
  279. as a debug / troubleshooting feature only. Some older
  280. firewalls that selectively block or redirect RPC traffic may
  281. get confused when they detect NDR64 or BTFN.</p>
  282. <p style="margin-left:11%;"><b>-l</b> <i>filename</i></p>
  283. <p style="margin-left:22%;">Use <i>filename</i> as a log
  284. file. The log file records all activations with IP address,
  285. Windows workstation name (no reverse DNS lookup), activated
  286. product, KMS protocol, time and date. If you do not specify
  287. a log file, no log is created. For a live view of the log
  288. file type tail -f <i>file</i>.</p>
  289. <p style="margin-left:22%; margin-top: 1em">If you use the
  290. special <i>filename</i> &quot;syslog&quot;, vlmcsd uses
  291. <b>syslog</b>(3) for logging. If your system has no syslog
  292. service (/dev/log) installed, logging output will go to
  293. /dev/console. Syslog logging is not available in the native
  294. Windows version. The Cygwin version does support syslog
  295. logging.</p>
  296. <p style="margin-left:11%;"><b>-T0</b> and <b>-T1</b></p>
  297. <p style="margin-left:22%;">Disable (<b>-T0</b>) or enable
  298. (<b>-T1</b>) the inclusion of date and time in each line of
  299. the log. The default is <b>-T1</b>. <b>-T0</b> is useful if
  300. you log to <b>stdout</b>(3) which is redirected to another
  301. logging mechanism that already includes date and time in its
  302. output, for instance <b>systemd-journald</b>(8). If you log
  303. to <b>syslog</b>(3), <b>-T1</b> is ignored and date and time
  304. will never be included in the output sent to
  305. <b>syslog</b>(3).</p>
  306. <table width="100%" border="0" rules="none" frame="void"
  307. cellspacing="0" cellpadding="0">
  308. <tr valign="top" align="left">
  309. <td width="11%"></td>
  310. <td width="3%">
  311. <p><b>-D</b></p></td>
  312. <td width="8%"></td>
  313. <td width="78%">
  314. <p>Normally vlmcsd daemonizes and runs in background
  315. (except the native Windows version). If <b>-D</b> is
  316. specified, vlmcsd does not daemonize and runs in foreground.
  317. This is useful for testing and allows you to simply press
  318. &lt;Ctrl-C&gt; to exit vlmcsd.</p></td></tr>
  319. </table>
  320. <p style="margin-left:22%; margin-top: 1em">The native
  321. Windows version never daemonizes and always behaves as if
  322. <b>-D</b> had been specified. You may want to install vlmcsd
  323. as a service instead. See <b>-s</b>.</p>
  324. <table width="100%" border="0" rules="none" frame="void"
  325. cellspacing="0" cellpadding="0">
  326. <tr valign="top" align="left">
  327. <td width="11%"></td>
  328. <td width="3%">
  329. <p style="margin-top: 1em"><b>-e</b></p></td>
  330. <td width="8%"></td>
  331. <td width="78%">
  332. <p style="margin-top: 1em">If specified, vlmcsd ignores
  333. <b>-l</b> and writes all logging output to <b>stdout</b>(3).
  334. This is mainly useful for testing and debugging and often
  335. combined with <b>-D</b>.</p></td></tr>
  336. <tr valign="top" align="left">
  337. <td width="11%"></td>
  338. <td width="3%">
  339. <p><b>-v</b></p></td>
  340. <td width="8%"></td>
  341. <td width="78%">
  342. <p>Use verbose logging. Logs every parameter of the base
  343. request and the base response. It also logs the HWID of the
  344. KMS server if KMS protocol version 6 is used. This option is
  345. mainly for debugging purposes. It only has an effect if some
  346. form of logging is used. Thus <b>-v</b> does not make sense
  347. if not used with <b>-l</b>, <b>-e</b> or <b>-f</b>.</p></td></tr>
  348. <tr valign="top" align="left">
  349. <td width="11%"></td>
  350. <td width="3%">
  351. <p><b>-q</b></p></td>
  352. <td width="8%"></td>
  353. <td width="78%">
  354. <p>Do not use verbose logging. This is actually the default
  355. behavior. It only makes sense if you use vlmcsd with an ini
  356. file (see <b>-i</b> and <b>vlmcsd.ini</b>(5)). If the ini
  357. file contains the line &quot;LogVerbose = true&quot; you can
  358. use <b>-q</b> to restore the default behavior.</p></td></tr>
  359. </table>
  360. <p style="margin-left:11%;"><b>-p</b> <i>filename</i></p>
  361. <p style="margin-left:22%;">Create pid file
  362. <i>filename</i>. This has nothing to do with KMS ePIDs. A
  363. pid file is a file where vlmcsd writes its own process id.
  364. This is used by standard init scripts (typically found in
  365. /etc/init.d). The default is not to write a pid file.</p>
  366. <p style="margin-left:11%;"><b>-u</b> <i>user</i> and
  367. <b>-g</b> <i>group</i></p>
  368. <p style="margin-left:22%;">Causes vlmcsd to run in the
  369. specified <i>user</i> and <i>group</i> security context. The
  370. main purpose for this is to drop root privileges after it
  371. has been started from the root account. To use this feature
  372. from cygwin you must run cyglsa-config and the account from
  373. which vlmcsd is started must have the rights &quot;Act as
  374. part of the operating system&quot; and &quot;Replace a
  375. process level token&quot;. The native Windows version does
  376. not support these options.</p>
  377. <p style="margin-left:22%; margin-top: 1em">The actual
  378. security context switch is performed after the TCP sockets
  379. have been created. This allows you to use privileged ports
  380. (&lt; 1024) when you start vlmcsd from the root account.</p>
  381. <p style="margin-left:22%; margin-top: 1em">However if you
  382. use an ini, pid or log file, you must ensure that the
  383. unprivileged user has access to these files. You can always
  384. log to <b>syslog</b>(3) from an unprivileged account on most
  385. platforms (see <b>-l</b>).</p>
  386. <p style="margin-left:11%;"><b>-w</b> <i>ePID</i></p>
  387. <p style="margin-left:22%;">Use <i>ePID</i> as Windows
  388. ePID. If specified, <b>-r</b> is disregarded for
  389. Windows.</p>
  390. <p style="margin-left:11%;"><b>-0</b> <i>ePID</i></p>
  391. <p style="margin-left:22%;">Use <i>ePID</i> as Office 2010
  392. ePID (including Project and Visio). If specified, <b>-r</b>
  393. is disregarded for Office 2010.</p>
  394. <p style="margin-left:11%;"><b>-3</b> <i>ePID</i></p>
  395. <p style="margin-left:22%;">Use <i>ePID</i> as Office
  396. 2013/2016 ePID (including Project and Visio). If specified,
  397. <b>-r</b> is disregarded for Office 2013/2016.</p>
  398. <p style="margin-left:11%;"><b>-H</b> <i>HwId</i></p>
  399. <p style="margin-left:22%;">Use <i>HwId</i> for all
  400. products. All HWIDs in the ini file (see <b>-i</b>) will not
  401. be used. In an ini file you can specify a seperate HWID for
  402. each <i>application-guid</i>. This is not possible when
  403. entering a HWID from the command line.</p>
  404. <p style="margin-left:22%; margin-top: 1em"><i>HwId</i>
  405. must be specified as 16 hex digits that are interpreted as a
  406. series of 8 bytes (big endian). Any character that is not a
  407. hex digit will be ignored. This is for better readability.
  408. The following commands are identical:</p>
  409. <p style="margin-left:22%; margin-top: 1em">vlmcsd -H
  410. 0123456789ABCDEF <br>
  411. vlmcsd -H 01:23:45:67:89:ab:cd:ef <br>
  412. vlmcsd -H &quot;01 23 45 67 89 AB CD EF&quot;</p>
  413. <p style="margin-left:11%;"><b>-i</b> <i>filename</i></p>
  414. <p style="margin-left:22%;">Use configuration file (aka ini
  415. file) <i>filename</i>. Most configuration parameters can be
  416. set either via the command line or an ini file. The command
  417. line always has precedence over configuration items in the
  418. ini file. See <b>vlmcsd.ini</b>(5) for the format of the
  419. configuration file.</p>
  420. <p style="margin-left:22%; margin-top: 1em">If vlmcsd has
  421. been compiled to use a default configuration file (often
  422. /etc/vlmcsd.ini), you may use <b>-i-</b> to ignore the
  423. default configuration file.</p>
  424. <p style="margin-left:11%;"><b>-r0</b>, <b>-r1</b>
  425. (default) and <b>-r2</b></p>
  426. <p style="margin-left:22%;">These options determine how
  427. ePIDs are generated if</p>
  428. <p style="margin-left:22%; margin-top: 1em">- you did not
  429. sprecify an ePID in the command line and <br>
  430. - you haven&rsquo;t used <b>-i</b> or <br>
  431. - the file specified by <b>-i</b> cannot be opened or <br>
  432. - the file specified by <b>-i</b> does not contain the
  433. <i>application-guid</i> for the KMS request</p>
  434. <p style="margin-left:22%; margin-top: 1em"><b>-r0</b>
  435. means there are no random ePIDs. vlmcsd simply issues
  436. default ePIDs that are built into the binary at compile
  437. time. <b>Pro:</b> behaves like real KMS server that also
  438. always issues the same ePID. <b>Con</b>: Microsoft may start
  439. blacklisting again and the default ePID may not work any
  440. longer.</p>
  441. <p style="margin-left:22%; margin-top: 1em"><b>-r1</b>
  442. instructs vlmcsd to generate random ePIDs when the program
  443. starts or receives a SIGHUP signal and uses these ePIDs
  444. until it is stopped or receives another SIGHUP. Most other
  445. KMS emulators generate a new ePID on every KMS request. This
  446. is easily detectable. Microsoft could just modify sppsvc.exe
  447. in a way that it always sends two identical KMS requests in
  448. two RPC requests but over the same TCP connection. If both
  449. KMS responses contain the different ePIDs, the KMS server is
  450. not genuine. <b>-r1</b> is the default mode. <b>-r1</b> also
  451. ensures that all three ePIDs (Windows, Office 2010 and
  452. Office 2013) use the same OS build number and LCID (language
  453. id).</p>
  454. <p style="margin-left:22%; margin-top: 1em">If vlmcsd has
  455. been started by an internet superserver, <b>-r1</b> works
  456. identically to <b>-r2</b>. This is simply due to the fact
  457. that vlmcsd is started upon a connection request and does
  458. not stay in memory after servicing a KMS request.</p>
  459. <p style="margin-left:22%; margin-top: 1em"><b>-r2</b>
  460. behaves like most other KMS server emulators with random
  461. support and generates a new random ePID on every request.
  462. Use this mode with &quot;care&quot;. However since Microsoft
  463. currently does not seem to do any verification of the ePID,
  464. you currently don&rsquo;t need to pay attention to ePIDs at
  465. all.</p>
  466. <p style="margin-left:11%;"><b>-C</b> <i>LCID</i></p>
  467. <p style="margin-left:22%;">Do not randomize the locale id
  468. part of the ePID and use <i>LCID</i> instead. The
  469. <i>LCID</i> must be specified as a decimal number, e.g. 1049
  470. for &quot;Russian - Russia&quot;. This option has no effect
  471. if the ePID is not randomized at all, e.g. if it is selected
  472. from the command line or an ini file.</p>
  473. <p style="margin-left:22%; margin-top: 1em">By default
  474. vlmcsd generates a valid locale id that is recognized by
  475. .NET Framework 4.0. This may lead to a locale id which is
  476. unlikely to occur in your country, for instance 2155 for
  477. &quot;Quecha - Ecuador&quot;. You may want to select the
  478. locale id of your country instead. See
  479. <a href="http://msdn.microsoft.com/en-us/goglobal/bb964664.aspx">MSDN</a>
  480. for a list of valid <i>LCID</i>s. Please note that some of
  481. them are not recognized by .NET Framework 4.0.</p>
  482. <p style="margin-left:22%; margin-top: 1em">Most other KMS
  483. emulators use a fixed <i>LCID</i> of 1033 (English - US). To
  484. achive the same behavior in vlmcsd use <b>-C 1033</b>.</p>
  485. <p style="margin-left:11%;"><b>-R</b>
  486. <i>renewal-interval</i></p>
  487. <p style="margin-left:22%;">Instructs clients to renew
  488. activation every <i>renewal-interval</i>. The
  489. <i>renewal-interval</i> is a number optionally immediately
  490. followed by a letter indicating the unit. Valid unit letters
  491. are s (seconds), m (minutes), h (hours), d (days) and w
  492. (weeks). If you do not specify a letter, minutes is
  493. assumed.</p>
  494. <p style="margin-left:22%; margin-top: 1em"><b>-R3d</b> for
  495. instance instructs clients to renew activation every 3 days.
  496. The default <i>renewal-interval</i> is 10080 (identical to
  497. 7d and 1w).</p>
  498. <p style="margin-left:22%; margin-top: 1em">Due to poor
  499. implementation of Microsofts KMS Client it cannot be
  500. guaranteed that activation is renewed on time as specfied by
  501. the -R option. Don&rsquo;t care about that. Renewal will
  502. happen well before your activation expires (usually 180
  503. days).</p>
  504. <p style="margin-left:22%; margin-top: 1em">Even though you
  505. can specify seconds, the granularity of this option is 1
  506. minute. Seconds are rounded down to the next multiple of
  507. 60.</p>
  508. <p style="margin-left:11%;"><b>-A</b>
  509. <i>activation-interval</i></p>
  510. <p style="margin-left:22%;">Instructs clients to retry
  511. activation every <i>activation-interval</i> if it was
  512. unsuccessful, e.g. because it could not reach the server.
  513. The default is 120 (identical to 2h).
  514. <i>activation-interval</i> follows the same syntax as
  515. <i>renewal-interval</i> in the <b>-R</b> option.</p>
  516. <table width="100%" border="0" rules="none" frame="void"
  517. cellspacing="0" cellpadding="0">
  518. <tr valign="top" align="left">
  519. <td width="11%"></td>
  520. <td width="3%">
  521. <p><b>-s</b></p></td>
  522. <td width="8%"></td>
  523. <td width="78%">
  524. <p>Installs vlmcsd as a Windows service. This option only
  525. works with the native Windows version and Cygwin. Combine
  526. <b>-s</b> with other command line options. These will be in
  527. effect when you start the service. The service automatically
  528. starts when you reboot your machine. To start it manually,
  529. type &quot;net start vlmcsd&quot;.</p></td></tr>
  530. </table>
  531. <p style="margin-left:22%; margin-top: 1em">If you use
  532. Cygwin, you must include your Cygwin system DLL directory
  533. (usually C:\Cygwin\bin or C:\Cygwin64\bin) into the PATH
  534. environment variable or the service will not start.</p>
  535. <p style="margin-left:22%; margin-top: 1em">You can
  536. reinstall the service anytime using vlmcsd -s again, e.g.
  537. with a different command line. If the service is running, it
  538. will be restarted with the new command line.</p>
  539. <p style="margin-left:22%; margin-top: 1em">When using
  540. <b>-s</b> the command line is checked for basic syntax
  541. errors only. For example &quot;vlmcsd -s -L 1.2.3.4&quot;
  542. reports no error but the service will not start if 1.2.3.4
  543. is not an IP address on your system.</p>
  544. <table width="100%" border="0" rules="none" frame="void"
  545. cellspacing="0" cellpadding="0">
  546. <tr valign="top" align="left">
  547. <td width="11%"></td>
  548. <td width="3%">
  549. <p style="margin-top: 1em"><b>-S</b></p></td>
  550. <td width="8%"></td>
  551. <td width="78%">
  552. <p style="margin-top: 1em">Uninstalls the vlmcsd service.
  553. Works only with the native Windows version and Cygwin. All
  554. other options will be ignored if you include -S in the
  555. command line.</p></td></tr>
  556. </table>
  557. <p style="margin-left:11%;"><b>-U</b>
  558. [<i>domain</i>\]<i>username</i></p>
  559. <p style="margin-left:22%;">Can only be used together with
  560. <b>-s</b>. Starts the service as a different user than the
  561. local SYSTEM account. This is used to run the service under
  562. an account with low privileges. If you omit the domain, an
  563. account from the local computer will be used.</p>
  564. <p style="margin-left:22%; margin-top: 1em">You may use
  565. &quot;NT AUTHORITY\NetworkService&quot;. This is a pseudo
  566. user with low privileges. You may also use &quot;NT
  567. AUTHORITY\LocalService&quot; which has more privileges but
  568. these are of no use for running vlmcsd.</p>
  569. <p style="margin-left:22%; margin-top: 1em">Make sure that
  570. the user you specify has at least execute permission for
  571. your executable. &quot;NT AUTHORITY\NetworkService&quot;
  572. normally has no permission to run binaries from your home
  573. directory.</p>
  574. <p style="margin-left:22%; margin-top: 1em">For your
  575. convenience you can use the special username &quot;/l&quot;
  576. as a shortcut for &quot;NT AUTHORITY\LocalService&quot; and
  577. &quot;/n&quot; for &quot;NT AUTHORITY\NetworkService&quot;.
  578. &quot;vlmcsd&nbsp;&minus;s&nbsp;&minus;U&nbsp;/n&quot;
  579. installs the service to run as &quot;NT
  580. AUTHORITY\NetworkService&quot;.</p>
  581. <p style="margin-left:11%;"><b>-W</b> <i>password</i></p>
  582. <p style="margin-left:22%;">Can only be used together with
  583. <b>-s</b>. Specifies a <i>password</i> for the corresponding
  584. username you use with -U. SYSTEM, &quot;NT
  585. AUTHORITY\NetworkService&quot;, &quot;NT
  586. AUTHORITY\LocalService&quot; do not require a password.</p>
  587. <p style="margin-left:22%; margin-top: 1em">If you specify
  588. a user with even lower privileges than &quot;NT
  589. AUTHORITY\NetworkService&quot;, you must specify its
  590. password. You also have to grant the &quot;Log on as a
  591. service&quot; right to that user.</p>
  592. <h2>SIGNALS
  593. <a name="SIGNALS"></a>
  594. </h2>
  595. <p style="margin-left:11%; margin-top: 1em">The following
  596. signals differ from the default behavior: <b><br>
  597. SIGTERM</b>, <b>SIGINT</b></p>
  598. <p style="margin-left:22%;">These signals cause vlmcsd to
  599. exit gracefully. All global semaphores and shared memory
  600. pages will be released, the pid file will be unlinked
  601. (deleted) and a shutdown message will be logged.</p>
  602. <table width="100%" border="0" rules="none" frame="void"
  603. cellspacing="0" cellpadding="0">
  604. <tr valign="top" align="left">
  605. <td width="11%"></td>
  606. <td width="9%">
  607. <p><b>SIGHUP</b></p></td>
  608. <td width="2%"></td>
  609. <td width="78%">
  610. <p>Causes vlmcsd to be restarted completely. This is useful
  611. if you started vlmcsd with an ini file. You can modify the
  612. ini file while vlmcsd is running and then sending
  613. <b>SIGHUP</b>, e.g. by typing &quot;killall -SIGHUP
  614. vlmcsd&quot; or &quot;kill -SIGHUP &rsquo;cat
  615. /var/run/vlmcsd.pid&rsquo;&quot;.</p> </td></tr>
  616. </table>
  617. <p style="margin-left:22%; margin-top: 1em">The SIGHUP
  618. handler has been implemented relatively simple. It is
  619. virtually the same as stopping vlmcsd and starting it again
  620. immediately with the following exceptions:</p>
  621. <table width="100%" border="0" rules="none" frame="void"
  622. cellspacing="0" cellpadding="0">
  623. <tr valign="top" align="left">
  624. <td width="22%"></td>
  625. <td width="1%">
  626. <p style="margin-top: 1em">&mdash;</p></td>
  627. <td width="3%"></td>
  628. <td width="74%">
  629. <p style="margin-top: 1em">The new process does not get a
  630. new process id.</p></td></tr>
  631. <tr valign="top" align="left">
  632. <td width="22%"></td>
  633. <td width="1%">
  634. <p>&mdash;</p></td>
  635. <td width="3%"></td>
  636. <td width="74%">
  637. <p>If you used a pid file, it is not deleted and recreated
  638. because the process id stays the same.</p></td></tr>
  639. <tr valign="top" align="left">
  640. <td width="22%"></td>
  641. <td width="1%">
  642. <p>&mdash;</p></td>
  643. <td width="3%"></td>
  644. <td width="74%">
  645. <p>If you used the &rsquo;user&rsquo; and/or
  646. &rsquo;group&rsquo; directive in an ini file these are
  647. ignored. This is because once you switched to lower
  648. privileged users and groups, there is no way back. Anything
  649. else would be a severe security flaw in the OS.</p></td></tr>
  650. </table>
  651. <p style="margin-left:11%; margin-top: 1em">Signaling is
  652. not available in the native Windows version and in the
  653. Cygwin version when it runs as Windows service.</p>
  654. <h2>SUPPORTED OPERATING SYSTEMS
  655. <a name="SUPPORTED OPERATING SYSTEMS"></a>
  656. </h2>
  657. <p style="margin-left:11%; margin-top: 1em"><b>vlmcsd</b>
  658. compiles and runs on Linux, Windows (no Cygwin required but
  659. explicitly supported), Mac OS X, FreeBSD, NetBSD, OpenBSD,
  660. Dragonfly BSD, Minix, Solaris, OpenIndiana, Android and iOS.
  661. Other POSIX or unixoid OSses may work with unmodified
  662. sources or may require minor porting efforts.</p>
  663. <h2>SUPPORTED PRODUCTS
  664. <a name="SUPPORTED PRODUCTS"></a>
  665. </h2>
  666. <p style="margin-left:11%; margin-top: 1em"><b>vlmcsd</b>
  667. can answer activation requests for the following products:
  668. Windows Vista, Windows 7, Windows 8, Windows 8.1, Windows
  669. 10, Windows Server 2008, Windows Server 2008 R2, Windows
  670. Server 2012, Windows Server 2012 R2, Office 2010, Project
  671. 2010, Visio 2010, Office 2013, Project 2013, Visio 2013,
  672. Office 2016, Project 2016, Visio 2016.</p>
  673. <p style="margin-left:11%; margin-top: 1em">Office, Project
  674. and Visio must be volume license versions.</p>
  675. <h2>FILES
  676. <a name="FILES"></a>
  677. </h2>
  678. <p style="margin-left:11%; margin-top: 1em"><b>vlmcsd.ini</b>(5)</p>
  679. <h2>EXAMPLES
  680. <a name="EXAMPLES"></a>
  681. </h2>
  682. <p style="margin-left:11%; margin-top: 1em"><b>vlmcsd
  683. -De</b></p>
  684. <p style="margin-left:22%;">Starts <b>vlmcsd</b> in
  685. foreground. Useful if you use it for the first time and want
  686. to see what&rsquo;s happening when a client requests
  687. activation.</p>
  688. <p style="margin-left:11%;"><b>vlmcsd -l
  689. /var/log/vlmcsd.log</b></p>
  690. <p style="margin-left:22%;">Starts <b>vlmcsd</b> as a
  691. daemon and logs everything to /var/log/vlmcsd.log.</p>
  692. <p style="margin-left:11%;"><b>vlmcsd -L
  693. 192.168.1.17</b></p>
  694. <p style="margin-left:22%;">Starts <b>vlmcsd</b> as a
  695. daemon and listens on IP address 192.168.1.17 only. This is
  696. useful for routers that have a public and a private IP
  697. address to prevent your KMS server from becoming public.</p>
  698. <p style="margin-left:11%;"><b>vlmcsd -s -U /n -l
  699. C:\logs\vlmcsd.log</b></p>
  700. <p style="margin-left:22%;">Installs <b>vlmcsd</b> as a
  701. Windows service with low privileges and logs everything to
  702. C:\logs\vlmcsd.log when the service is started with
  703. &quot;net start vlmcsd&quot;.</p>
  704. <h2>BUGS
  705. <a name="BUGS"></a>
  706. </h2>
  707. <p style="margin-left:11%; margin-top: 1em">An ePID
  708. specified in an ini file must not contain spaces.</p>
  709. <p style="margin-left:11%; margin-top: 1em">The maximum
  710. number of <b>-L</b> options in the command line or listen
  711. statements in the inifile is the platform default for
  712. <i>FD_SETSIZE</i>. This is 64 on Windows and 1024 on most
  713. Unixes.</p>
  714. <h2>AUTHOR
  715. <a name="AUTHOR"></a>
  716. </h2>
  717. <p style="margin-left:11%; margin-top: 1em">Written by
  718. crony12, Hotbird64 and vityan666. With contributions from
  719. DougQaid.</p>
  720. <h2>CREDITS
  721. <a name="CREDITS"></a>
  722. </h2>
  723. <p style="margin-left:11%; margin-top: 1em">Thanks to
  724. CODYQX4, deagles, eIcn, mikmik38, nosferati87, qad,
  725. Ratiborus, ...</p>
  726. <h2>SEE ALSO
  727. <a name="SEE ALSO"></a>
  728. </h2>
  729. <p style="margin-left:11%; margin-top: 1em"><b>vlmcsd.ini</b>(5),
  730. <b>vlmcsd</b>(7), <b>vlmcs</b>(1), <b>vlmcsdmulti</b>(1)</p>
  731. <hr>
  732. </body>
  733. </html>