非Windows平臺上的仿真KMS服務器

我在這里開始一個新話題,討論如何在非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。

本博客所有文章如無特別注明均為原創。作者:櫻木復制或轉載請以超鏈接形式注明轉自 EFE
原文地址《非Windows平臺上的仿真KMS服務器
分享到:更多

相關推薦

發表評論

路人甲 表情
Ctrl+Enter快速提交

網友評論(0)