我在这里开始一个新话题,讨论如何在非Windows环境中设置工作的KMS服务器,例如Linux-PC,Raspberry Pi,路由器,Mac OS,Android,iOS,NAS服务器,卫星接收器等。
在臭名昭着的时候11/24/2016攻击某些内容遭到物理删除,无法恢复。您仍然可以在Wayback Machine上找到一些内容(截至2016年5月20日)。即使Wayback Machine不是恶意网站,请勿输入您的MDL(或任何其他)用户名和密码。
py-kms - 用python编写的KMS v6仿真器(在python2.6和2.7上运行,不依赖于OS)
可以在这里找到
vlmcsd - C中的便携式开源KMS仿真器
-
支持的操作系统/运行时环境
-
Linux,GNU / Linux,uclibc / Linux,musl / Linux,Android(bionic / Linux),FreeBSD,带有glibc的FreeBSD(例如debian / kFreeBSD),OpenBSD,NetBSD,DragonflyBSD,Solaris,Open Indiana,Dyson,Minix,Darwin, Mac OS,iOS,Windows,Cygwin,WSL,Wine,The Hurd。
-
支持的CPU
-
x86,arm,mips,PowerPC,Sparc,s390
vlmcsd是
-
替代Microsoft的KMS服务器
-
它包含vlmcs,KMS测试客户端,主要用于调试目的,也可以“收费”一个真正的KMS服务器
-
旨在运行在永远在线或经常在设备上,例如路由器,NAS Box,...
-
旨在帮助失去其合法拥有许可证的人员,例如由于硬件(主板,CPU,...)的变化,
vlmcsd 不是
-
一键激活或破解工具
-
旨在激活软件的非法拷贝(Windows,Office,Project,Visio)
源和二进制文件:http : //rgho.st/87T6PMhsh
仅源:http : //rgho.st/87X9dxZWP
7zip密码为2017
更改
-
2017-05-31(1110)
-
Visual C ++平台工具集更新到v141_xp
-
在许多平台上将gcc更新为6.3.0
-
删除32位cygwin OpenSSL二进制,因为64位Cygwin不再具有32位OpenSSL标头和库
-
更改Windows构建脚本以使用MSBuild 2017
-
更新了用于ASCII(TXT)man文件的groff格式化选项
-
增加了对企业G和企业GN的支持(Windows中国政府版)
-
新的命令行开关-G <EPID>指定Windows中国政府版本的EPID
-
新的INI文件指令WinChinaGov(与命令行-G相同)
-
如果检测到遗留数据库,则会添加警告
-
可启动软盘:新建SYSLINUX.CFG参数WINCHINAGOV =为Windows中国政府版(企业G / GN)设置EPID
-
添加后缀_unused到一些本地参数,以表明可以忽略MSVC编译器警告
-
重命名了一些本地参数以避免编译器发出警告
-
添加了转换以减少MSVC编译器的警告
-
修复了内存分配错误,如果.kmd文件的CSVLK少于内置的最小值
-
2017-01-19(1108)
-
修复了如果从非Atom CPU(thx到Daz)运行,Android x86 / x64构建的终止与SIGILL(非法指令)的错误
-
新选项-x1(由Hahu请求)导致vlmcsd退出if
-
任何用-L指定的监听套接字(IP地址/端口)都无法设置。
-
TAP镜像线程遇到从VPN适配器读取或写入错误的错误。
-
新的INI文件指令ExitLevel = 1,它与-x1相同
-
2016-12-12(1107)
-
修复了所有Cygwin构建中的错误,如果vlmcsd作为服务启动,则无法正确停止。
-
更新了./src/GNUmakefile以在FEATURES = minimum中包含CFLAG NO_TAP
-
更新GNUmakefile有助于解释CFLAG NO_TAP
-
修复了所有Windows和Cygwin构建与TCP端口锁定的错误
-
在Android 1.5的仿生图书馆中解决POSIX 2008兼容性的问题,构建了realpath无法分配字符串缓冲区。
较旧的变化
更新日志
-
2016-12-06(1106)
-
Windows和Cygwin版本的vlmcsd具有新的命令行选项-O,以使用OpenVPN Tap或TeamViewer VPN适配器来轻松自我激活
-
新的INI文件指令VPN =(与命令行选项-O相同)
-
新的CFLAG NO_TAP,可编译vlmcsd而不支持TAP或TeamViewer VPN适配器。
-
修复了在极少数情况下,在命令行选项-O,-A和-R中的时间跨度错误的错误。
-
2016-11-28(1105)
-
解决了旧的uclibc(0.9.30.x)中的一个错误,该realpath不符合POSIX 2008(thx到alorsnon)。
-
使用Linux和musl的PowerPC架构的新二进制文件。
-
2016-11-26(1104)
-
vlmcsd现在支持从文件(外部数据库)加载KMS产品数据库
-
现在,vlmcsd预构建的二进制文件现在只包含一个基本的数据库,可以像往常一样执行所有任务。但是,如果您记录,所有产品名称显示为“未知”。对于使用清晰的文本名称进行日志记录而不是GUID,您将需要一个外部数据库。您将在.etc/vlmcsd.kmd中找到完整的产品数据库
-
vlmcsd和vlmcs的预构建二进制文件在与vlmcsd和vlmcs 相同的目录中的名为vlmcsd.kmd的文件中查找外部数据库。如果找到,数据库将在程序启动时自动加载。如果您想要一个完整的数据库(用于记录),只需将vlmcsd.kmd放在与vlmcsd二进制文件相同的目录中即可。在OpenBSD,Minix和Hurd系统上,vlmcsd和vlmcs替代了/etc/vlmcsd.kmd。
-
vlmcs和vlmcsd中的新命令行选项-j <filename>来加载特定的外部数据库。-j-禁用加载默认数据库。
-
新的INI文件参数KmsData = <filename>,它与命令行选项-j相同。
-
新的CFLAG -DNO_EXTERNAL_DATA来编译vlmcsd而不支持加载外部数据库。
-
新的CFLAG -DNO_INTERNAL_DATA可以编译没有内部数据库的vlmcsd。如果没有找到外部数据库,则vlmcsd将失败。
-
新建make命令行选项DATA = <filename>以编译具有外部数据库的自定义默认位置的vlmcsd,例如DATA = / usr / local / etc / vlmcsd
-
新的CFLAG -DUNSAFE_DATA_LOAD编译vlmcsd而不检查外部数据库的完整性。这保存一些字节,但如果加载特制数据库,则会冒着远程执行代码。强烈建议不要使用此CFLAG。
-
新的CFLAG -DFULL_INTERNAL_DATA来编译具有完整内部数据库的vlmcsd。如果您合并了-DFULL_INTERNAL_DATABASE和-DNO_EXTERNAL_DATA,则生成的二进制文件将与以前版本的vlmcsd一样工作。
-
CFLAGs -DNO_EXTENDED_PRODUCT_LIST和-DNO_BASIC_PRODUCT_LIST已被删除。
-
make命令行选项WINDOWS =和OFFICE201X =已被删除。
-
可以使用License Manager 4.5或更高版本创建自定义数据库。
-
修复了./src/GNUmakefile中的错误,如果在make命令行或libkms上指定了FEATURES = minimum,则CFLAGs -DNO_STRICT_MODES和-DNO_CLIENT_LIST不会自动定义。
-
修复了在Android构建中未正确检测到共享内存的可用性的错误。
-
如果KMS服务器报告错误,vlmcs现在包含更多的明文错误消息。
-
vlmcs的Windows版本现在将所有错误消息从KMS服务器转换为清除文本。
-
在非详细日志中,vlmcsd现在将显示SKU ID而不是“未知”(由mkuba50请求)
-
Atheros OpenWRT预构建的二进制文件现在支持使用命令行选项-m限制vlmcsd中的并发客户端。
-
现在,Linux x32二进制文件与bfd链接,而不是使它们更小的金子。
-
修复了如果vlmcsd使用CFLAG SIMPLE_SOCKETS编译,则vlmcsd的Windows版本没有锁定侦听端口的错误。这也影响了libkms32.dll和libkms64.dll。
-
删除vlmcsd中不必要的套接字关闭调用。
-
vlmcsd的RPC代码已经针对仿真器检测进行了强化
-
vlmcsd现在在RPC绑定期间检查接口UUID,并发送适当的NACK CTX结果。
-
如果客户端尝试调用未绑定的CTX索引,则vlmcsd现在将返回正确的RPC_PT_FAULT包。
-
修复了vlmcsd抱怨错误的Ndr64 Ctx的错误,即使如果使用CFLAG -D_PEDANTIC编译vlmcsd,则不使用Ndr64。
-
您现在可以在make命令行上为定义__GLIBC__的任何工具链指定AUXV = 1。在以前的版本中,如果__linux__未被工具链定义,AUXV = 1被忽略。
-
2016-11-04(1103)
-
新的二进制vlmcsd-armelv7-bcm47xx_53xx-openwrt-musl支持基于ARM的Broadcom 47xx至53xx芯片的OpenWRT
-
新的二进制vlmcsd-armelv7-bcm47xx_53xx-openwrt-musl-static(与上面的静态构建一样)
-
用于基于glibc的OpenWRT构建的新二进制vlmcsd-armelv7-bcm47xx_53xx-openwrt-glibc
-
将版本控制系统从颠覆更改为git
-
修正了一些在某些Linux版本上可能会失败的错误(由于llabs的隐含定义)
-
在GNUmakefile帮助中包含忘记的CFLAG -DNO_CLIENT_LIST
-
将vlmcsd,vlmcs和vlmcsdmulti的Visual C ++构建中的默认启动代码替换为自己的代码(较小的二进制文件)
-
vlmcsd,vlmcs和vlmcsdmulti的Visual C ++构建现在运行在XP(需要SP3)和Windows Server 2003
-
2016-10-25(svn1099)
-
修复了vlmcs无法向不支持NDR64的服务器发送请求的错误。
-
vlmcsd现在支持维护客户端列表(CMID),以更好地防止仿真器检测(可以使用新的CFLAG -DNO_CLIENT_LISTS在编译时禁用)。
-
CFLAG -DNO_STRICT_MODES现在自动包含-DNO_CLIENT_LISTS。
-
新的vlmcsd命令行选项-M0(默认)和-M1禁用或启用维护CMID。
-
新的vlmcsd命令行选项-E0(默认)和-E1禁用或启用一个空的CMID列表。如果使用-M0,则忽略。
-
新的INI文件参数MaintainClients(与-M0和-M1相同)
-
新的INI文件参数StartEmpty(与-E0和-E1相同)
-
改进了Posix线程可用性的自动检测
-
修复了vlmcsd的cygwin版本中的日志互斥体未初始化的错误。
-
修复了vlmcsd中的一个错误,这是一个长时间未被正确检测到的请求。
-
可启动软盘的syslinux.cfg文件有一个新参数VLMCSD_EXTRA_ARGS来指定将传递给vlmcsd(由vactis请求)的其他命令行选项。
-
可启动软盘现在使用vlmcsdmulti的线程版本能够使用-M1(剥离内核没有共享内存支持)。
-
修复了Linux构建脚本中的一些错误,一些vlmcsdmulti二进制文件未正确构建。
-
修复了示例vlmcsd.ini文件(thx到qewlpal)中的打字错误。
-
将默认HWID更改为当前的Ratiborus虚拟机。
-
OpenBSD预编译二进制文件现在使用线程而不是fork,因为缺少pthread_mutexattr_setpshared。
-
2016-10-21(svn1085)
-
新的CFLAG -DSIMPLE_RPC,禁用在RPC协议中支持NDR64和BTFN
-
NDR64和BTFN现在可以关闭并单独为客户端和服务器(libkms要求)
-
新的命令行选项-c0和-c1 for vlmcsd。如果服务器和客户端的时间差超过4小时,-c1将导致拒绝激活。这对于防止仿真器检测非常有用。
-
新的INI文件参数CheckClientTime(与-c0和-c1相同的效果)
-
已将CFLAG -DNO_WITHELISTING重命名为-DNO_STRICT_MODES。它禁用白名单和时间检查。
-
修复了vlmcsd和vlmcs在64位模式下遇到具有对准要求的CPU(PowerPC64,mips64和sparc64)的错误
-
2016-10-19(svn1080)
-
修复了Office 2013预览未被检测为beta /预览产品(thx至Aty)的错误。
-
修复了一个错误,AppList没有被编译在某些实际需要的实例中。
-
修正了即使不需要编译output.c中的函数(例如NO_LOG定义)的错误。
-
2016-10-19(svn1079)
-
vlmcs,vlmcsd和libkms不再报告像0这样的非特定错误,但是使用平台特定的API(strerror,FormatMessage等)可以将其转换为可读字符串的正确错误号
-
修复了在不支持IPv6的系统上使用SIMPLE_SOCKETS无法编译vlmcsd的错误(例如Minix)
-
Visual Studio Linux项目已暂时移至./src。这是由于Visual C ++ for Linux扩展中的一个错误。
-
在Visual Studio项目中为每个项目正确设置一个单独的obj dierectory。
-
DragonFlyBSD构建系统更新到版本4.6
-
为DragonFlyBSD构建将gcc更新为6.2版。
-
在请求中,vlmcsd现在报告的活动客户端数量至少是N计数策略的两倍,从而使模拟器检测更加困难。
-
vlmcsd中的新命令行选项-K0,-K1,-K2和-K3,允许列出KMS ID。vlmcsd现在可以拒绝未知的KMS ID,KMS ID不正确的应用程序ID,零售KMS ID(例如Windows Home Editions)和测试版/预览KMS ID(由Carlos Detweiller要求)
-
新的INI文件参数WhitelistingLevel(与-K0,-K1,-K2和-K3相同)
-
新的CFLAG -DNO_WHITELISTING来编译没有白名单功能的vlmcsd。
-
libkms现在支持在RPC绑定期间的RPC功能选择和检查(BTFN,NDR64)。将在未来版本的许可证管理器中用于高级仿真器检测。
-
2016-10-12(svn1065)
-
修复MSVC构建中导致错误解析负整数的错误。
-
在vlmcs和vlmcsd中使用选项-V时,MSVC现在包含编译器版本。
-
修复了vlmcsd的所有Windows版本中的错误,它接受的最大值为32767。
-
增加了对Linux的Visual Studio远程构建和调试的支持(需要使用Visual Studioion“15”预览5或使用Linux C ++扩展的Visual Studio 2015)
-
新改进的目录结构
-
所有源文件位于./src中
-
man文件位于./man
-
所有可执行文件默认情况下转到./bin
-
所有图书馆都去./lib
-
临时文件将以./build(execpt * .d文件创建,如果您使用DEPENDENCIES = 1)创建。这些文件必须在./src中创建,以便依赖关系工作)
-
示例vlmcsd.ini现在在./etc中
-
即使设置了* _NAME变量,GNUmakefile现在总是接受通用名称vlmcs,vlmcsd,vlmcsdmulti,libkms和libkms-static作为目标名称
-
标记所有MSVC二进制文件,从CD和网络安全运行,并将其标记为终端服务器
-
修复了包含windows.h和winsock2.h错误顺序的构建警告
-
修复了一个构建错误,如果在使用ELF二进制文件的系统上构建libkms,则-fPIC编译器不会自动设置
-
修复了如果在make命令行上指定了VERBOSE = 1,则导致libkms无法正确构建的错误
-
FreeBSD构建环境升级到FreeBSD 11.0。
-
NetBSD 64位二进制文件现在使用gcc 6.2进行编译
-
GNU Hurd编译器更新到gcc 6.2
-
kFreeBSD编译器更新到6.2
-
2016-10-06(svn1031)
-
因为我相信pkeyconfig文件超过* .cilx文件,但是仍然不能100%确定哪个是哪个,为Win 2016 Azure Core和Cloud Storage交换了SKU ID。
-
vlmcsd,vlmcs,vlmcsdmulti和libkms现在使用Visual Studio 2013和2015编译
-
添加了Visual Studio 2015解决方案
-
更新的Windows构建脚本来构建Visual Studio版本
-
修复了vlmcsd中的一个错误,Office 2016报告了50个活动客户端而不是10个
-
现在使用Visual C ++构建的vlmcsd,vlmcs,vlmcsdmulti和libkms的Windows版本(gcc版本仍然可以使用后缀-gcc.exe,所有msrpc版本仍然使用gcc构建)
-
将Mac OS X更新到Sierra,并为Xcode 8.0,clang 3.8,gcc 6.2.0构建工具
-
2016-09-16(svn1016)
-
如果使用-DNO_LOG编译vlmcsd,则二进制文件中不会包含任何产品名称
-
一些内部更改更容易维护EPID和PKEYCONFIGs
-
Windows 2016的发布日期现在是随机EPID中生成的最小日期
-
新的编译时间CFLAG -DSMALL_AES实现了较小但速度较慢的AES版本
-
在编译vlmcsd时,再次使用-DNO_BASIC_PRODUCT_LIST是安全的。发送适当EPID所需的KMS ID将始终包含在二进制文件中。
-
如果使用了-DNO_LOG,则不再需要APP ID列表,因为它不再需要,因为EPID生成现在使用KMS ID而不是APP ID
-
修复了vlmcs中的错误,KMSv6中的HMAC不正确(Thx到CODYQX4)
-
将FreeBSD工具链更新到gcc 6.1
-
2016-09-03(svn1006)
-
在Cygwin升级到MingW32 gcc 5.4工具链后,更改了GNUmakefile在Windows上构建Windows版本
-
vlmcsd现在使用Office 2016的单独EPID(Thx到Aty和echo2)
-
vlmcsd中的新命令行选项-6可指定Office 2016的用户定义的EPID
-
INI文件不再使用GUID来定义自定义EPID和HWID。改用关键字Windows,Office2010,Office2013和Office2016。
-
修复了vlmcs的-G选项中的错误,将错误的请求发送到KMS服务器
-
vlmcs中的-G选项现在使用新的INI文件格式来创建/更新INI文件
-
GNUmakefile命令行参数FEATURES = minimum不再包含-DNO_BASIC_PRODUCT_LIST,因为现在需要KMS ID来区分Office 2013和Office 2016
-
新的GNUmakefile命令行选项OFFICE2016 =在编译时指定Office2016的默认EPID
-
如果在GNUmakefile CFLAGS中使用-DNO_BASIC_PRODUCT_LIST,则生成的二进制文件将无法为Office 2016发送有效的EPID。此编译时选项不应再使用。
-
可启动软盘现在接受一个内核启动参数OFFICE2016 =指定Office 2016的EPID
-
2016-08-27(svn1003)
-
添加新的KMS ID“Windows 10 2016(卷)”(thx到kelorgo和Aty)
-
将Windows 10 Enterprise 2016 LTSB和LTSB N移动到“Windows 10 2016(卷)”
-
2016-08-26(svn1001)
-
添加了更多产品(SKU ID和KMS ID)
-
修复了ePID生成的随机ePID生成中的一个关键错误,它不会在真正的服务器上激活Office 2016,Windows 10,Windows 8.1,Windows 2012 R2和Windows 2016。
发表评论