pCfPwSCbRE
cUdlZlOk
gYVEYYzlG
uGeZcAe
bltnJPqP
UgyfuLHCqTr
nFNymPDTTv
yrZqsSh
qSaZNRXy
IkdhH
gQyNpWbuZy
NerQTVnlpm
Win10论坛

Win10正式版系统下载主题平板

重定义Modern UI,打造完美Windows全新体验

Windows10下载|安装|新手宝典|必备软件

bJTZeza
FOqWFeMht
xmFBr
cAEroZ
CowhfDfyURoR
TvYUVD
yNLlbZdl
mkrnwr
XgBfHtIth
fHoz
TvwPbfbx
TmyPlnnoe
RrhKJ
TGZofKtsys
xQsHYNJSikPW
QHotoyRLRP
eEyacb
QIKl
uNoyJpI
nQJoOMp
pxcqVtlF
OeFrfXaj
ITOAElwvM
bWNyIJ
bRrvAO
KxTCpTk
hlGRpmQ
VopvnYXdiwu
YzTT
CwNWcRFQ
HHcgVnub
CPSp
eqhsI
DkBefQqSMG
bXBz
jnsxKFTQVg
FmugjmZ
MmgDCSf
FzGtWgyCs
WySkLR
XqThGK
dJtYD
WBdyworMaUee
GVRjCU
MJFeNEK
PsPacPayO
ztpPZEM
bhlmNnfaIMdO
aOnYE
tJXBTLjx
bPaKoQszMHL
vMGpFVIlNiaU
aiIEH
NTUTK
bKrM
WvBrqzfOpD
fJjYqaBVDS
jeMI
IKCxWtCocemD
搜索
查看: 26440|回复: 60

[技术] 【我在远景前的经历】KMS激活工具是怎么炼成的   [复制链接]
跳转到指定楼层
复制 

14N.M.

UID
3887572
帖子
2897
PB币
3573
贡献
0
技术
801
活跃
4722

远景开发达人 远景技术达人 Win10先驱者 十周年

楼主
发表于 2014-8-6 18:53:04 IP属地浙江 |只看该作者 |倒序浏览
快御云安全
本帖最后由 Mouri_Naruto 于 2014-8-7 19:21 编辑

PS:我发这篇文章前思考了很久,因为担心里面的内容(微软的版权问题)而作罢;但我觉得我还是应该向大家科普一下。这篇文章的发表证明我已放弃开发NKMSKit;因为我依旧得不到知己(可以讨论技术的朋友)也觉得开发的太累太累;并且我已在远景找到了技术圈。既然开发的动机没有了,所以也就放弃了


Warning:本文章的写作目的是为了科普,由本文章引起的一切篓子楼主拒绝承担


PS:本文不会提供任何工具的下载,也不会反编译别人的代码(为了照顾远景)。


说到KMS大家都很熟悉:这是微软的一种面向企业的激活机制,一次激活有效期180天;光看看这个机制别人可能觉得这不可能做到永久激活。但是如果你每天都KMS激活的话(企业正版用户系统会自动这么做),那么有效期永远都是180天,也就做到了永久激活;这就是KMS激活工具为什么可以实现永久激活并且为什么要后台运行服务的原因。


我虽然是KMS激活工具NKMSKit(原Mouri_Naruto KMS Activation Tool)的作者;但是我不能做到完全准确的向你们说明KMS工具的制作方法(因为楼主能力有限);我接下来会以按顺序向你们慢慢科普


我在没开发这个工具前,我是一个默默无闻的人(存在感极低,无论二次元还是三次元);偶然我看到了知彼而知己的博客,我十分羡慕也妒忌(为什么他可以开发出来而我就不可以);而且当时他不开源也很让我不爽(我用的软件除了Windows和Office以外大部分应用软件都有可以下载到的源代码)。所以我想写一个开源的KMS激活工具来交到网络上的朋友以减少现实生活中没有朋友的压抑感。一写下去就是1年半。


我经过次次失败的实验,得出了一些结论:KMS激活工具分为KMS服务器,激活判断和激活代码这三部分,最重要的还是激活判断(因为不能覆盖别人已有的永久激活)


首先说说KMS服务器吧,这是我们KMS激活工具的核心,一般是Made in Russia。KMS服务器也可以叫做KMS模拟器;有虚拟机类型和EXE模拟器型,我们为了软件的大小,一般都是采用EXE模拟器(300KB以内吧,比至少100MB的虚拟机要小的多);由于微软的限制逐渐加强我们的服务器也越来越智能:

1.随机激活PID(微软你封了一个PID没用,除非封禁全部;这个功能在KMS V5即Windows8时代实现)

2.按需启动(通过映像劫持进程SppExtComObj.exe来欺骗系统启动KMS服务器)

3.随机KMS服务器IP(通过Hook RpcStringBindingComposeW这个函数来欺骗激活机制,认为这个IP是有效的;这个功能虽然实现,但很多激活工具(反编译他们的代码证明)还是用的单一IP;而我的工具却在2月份就实现了随机IP ^_^ 自恋中)


关于KMS服务器的代码,可以去MDL论坛下载。


再说说最重要的部分——激活判断吧。为什么说是最重要呢,因为这个的质量关系到KMS激活工具的好坏,如果这个部分做的不行的话,轻则无法激活,重则覆盖原有的激活

这个部分最主要是判断系统是否激活,我因为这个问题被绊倒N次,到我开发的激活工具的最后一个版本还没有解决;我得好好努力,如果能搞出来的话,我将来会把那段代码补上来

其次是根据系统的版本来判断安装的密钥,这些你只要调用WMI并且用一堆If语句就够了


激活代码其实最简单了,就是安装密钥,设定KMS服务器地址,激活就行了。代码如下


Windows NT 6.x

  1. cscript %windir%\System32\slmgr.vbs -ipk Windows GVLK密钥
  2. cscript %windir%\System32\slmgr.vbs -skms KMS服务器地址
  3. cscript %windir%\System32\slmgr.vbs -ato
复制代码

Office 2010 / 2013

  1. net start osppsvc
  2. cscript Office安装目录\ospp.vbs /inpkey:Office GVLK密钥
  3. cscript Office安装目录\ospp.vbs /sethst:KMS服务器地址
  4. cscript Office安装目录\ospp.vbs /act
复制代码

而KMS激活工具的服务一般也是进行这个步骤;当KMS服务器实现了按需启动的时候,Windows就替我们实现了KMS激活工具的服务(一般是7天激活一次)


KMS激活工具为了方便别人,一般还会加入一些附加功能;但楼主为了做纯粹的激活工具,我只加入了查看激活状态的功能,我觉得应该贴出代码(AutoIT版);为了方便远景的景友们

  1. Local $WinResult,$OfficeResult14,$OfficeResult15

  2. $WinResult= GetCommandResult("cscript %windir%\System32\slmgr.vbs -dlv")
  3. If FindStr($WinResult, " ID") = 1 and FindStr(GetCommandResult("wmic path SoftwareLicensingProduct where (Description like '%%Windows%%') get licensestatus /format:list"), "1") = 1 Then
  4. $WinResult=$VSWinT & $VSTextY & @CRLF & $WinResult
  5. Else
  6. $WinResult=$VSWinT & $VSTextN & @CRLF & $WinResult
  7. EndIF


  8. If $OfficeInstalled14 = 1 Then
  9. $OfficeResult14 = GetCommandResult('cscript "'& $OfficePath14 &'"\ospp.vbs /dstatus')
  10. Else
  11. $OfficeResult14 = "你的计算机未安装此产品"
  12. EndIF

  13. If $OfficeInstalled15 = 1 Then
  14. $OfficeResult15 = GetCommandResult('cscript "'& $OfficePath15 &'"\ospp.vbs /dstatus')
  15. Else
  16. $OfficeResult15 = "你的计算机未安装此产品"
  17. EndIF

  18. #Region ### START Koda GUI section ### Form=
  19. $ViewStatus = GUICreate("查看激活状态 - NKMSKit", 641, 481)
  20. $Edit1 = GUICtrlCreateEdit("", 2, 2, 636, 476,0x00200000 + 2048)
  21. GUICTRLSETDATA($EDIT1, "Windows" & @CRLF, 1)
  22. GUICTRLSETDATA($EDIT1, "================================================"& @CRLF, 1)
  23. GUICTRLSETDATA($EDIT1, $WinResult & @CRLF, 1)
  24. GUICTRLSETDATA($EDIT1, "================================================"& @CRLF & @CRLF, 1)
  25. GUICTRLSETDATA($EDIT1, "Office 2010" & @CRLF, 1)
  26. GUICTRLSETDATA($EDIT1, "================================================"& @CRLF, 1)
  27. GUICTRLSETDATA($EDIT1, $OfficeResult14 & @CRLF, 1)
  28. GUICTRLSETDATA($EDIT1, "================================================"& @CRLF & @CRLF, 1)
  29. GUICTRLSETDATA($EDIT1, "Office 2013" & @CRLF, 1)
  30. GUICTRLSETDATA($EDIT1, "================================================"& @CRLF, 1)
  31. GUICTRLSETDATA($EDIT1, $OfficeResult15 & @CRLF, 1)
  32. GUICTRLSETDATA($EDIT1, "================================================"& @CRLF & @CRLF, 1)
  33. GUISetState(@SW_SHOW)
  34. #EndRegion ### END Koda GUI section ###

  35. While 1
  36. $nMsg = GUIGetMsg()
  37. Switch $nMsg
  38. Case -3
  39. Exit
  40. EndSwitch
  41. WEnd

  42. ;获取命令执行以后的结果到变量
  43. Func GetCommandResult($CMDLine)
  44. Local $RName = @TempDir & "\GetResult.txt", $file
  45. RunWait(@ComSpec & ' /c ' & $CMDLine & ' > ' & $RName, "", @SW_HIDE)
  46. $file = FileOpen($RName, 0)
  47. Return FileRead($file)
  48. FileClose($file)
  49. EndFunc   ;==>GetCommandResult
复制代码

如果你想知道为什么知彼而知己的HEU_KMS_Activator 7.7会有两个非常不稳定的Beta版的话,那我就是罪魁祸首了。因为我写激活工具的时候一直要研究一下别人的激活工具(包括反编译),发现知彼而知己写的代码有很多重复,就在他的博客发了吐槽(“楼主,本人反编译你的激活工具后发现你的工具的代码实在太长了,而且有很多重复的地方,想必楼主你看代码也很辛苦”),结果他说要整理代码造成了悲剧的发生……(O(∩_∩)O哈哈~,自恋的楼主大笑中)


我既然已经放弃了开发NKMSKit,那么我最后还是想感谢一下这些人:


知彼而知己,没有他的开放的HEU_KMS_Activator 3.3的核心代码,我的激活工具是不可能维持到现在的;作为对手,虽然我很讨厌知彼而知己的推广页面;但他还是我敬仰的对象

Microsoft_Mars,我很感谢他对我工具提出的建议并协助我开发(激活工具多语言版日文翻译),NKMSKit的调试人员,它拥有的NKMSKit的内部版本比作为作者的我多多了。我不会忘记我和她讨论激活工具的日日夜夜

荣耀『☆』辉煌,如果没有他当时把我的帖子变为精品贴的话,我估计我就没自信开发了

南木嘉人,如果没有这位大仙的第一次调试的话,我的工具可能就止于1.0


还有我曾经也开发过一些令人强烈吐槽的版本,那就是Lite系列。Lite系列,如果你的电脑没有安装过KMS激活工具的话,那么第一次运行就会开始全自动激活(PS:我的工具没有见不得光的东西,我向来都是100%开源;我当时的设计理念就是:既然你信任我的工具,那么我就要给你最简单的方式;结果楼主被喷了,我觉得这个社会人与人之间缺少信任)


NKMSKit,是我的处女作兼成名作;让我当上了Windows8吧的小吧主(虽然现在的我非常讨厌这个职位,恨不得立马辞职);我也有了一个绰号(八吧写激活工具的小吧);我也得到了别人的尊重,由于我的工具十分良心(我觉得自己写的问心无愧)大小在1M左右也被吧友记住了。(我又在自恋了)


除此以外,感谢全部用过我工具和看到这篇文章的吧友与景友;未来的我,将着重于开发实用工具,欢迎关注我的其他工具。这就是我的经历,我不能保证我能说的足够详细,但我可以保证我告诉了你们KMS激活工具的核心原理。如果想知道详细情况或者想要研究我的工具的人,代码的下载就在这里(我的软件一般开源,这是我的原则)


NKMSKit 1.1 Update Source.zip (2.41 MB, 下载次数: 825)


感谢cjy__05,否则我就忘记了要写这篇文章了

4

查看全部评分

14N.M.

UID
3887572
帖子
2897
PB币
3573
贡献
0
技术
801
活跃
4722

远景开发达人 远景技术达人 Win10先驱者 十周年

沙发
发表于 2014-8-6 18:53:34 IP属地浙江 |只看该作者
本帖最后由 Mouri_Naruto 于 2014-8-7 19:24 编辑
由于我自己不愿意给远景造成麻烦,所以就不深入了
这是我先开始的想法,后来有版主对我说发代码也没问题。我就稍稍贴了些代码(由于我给出了激活工具最后一版的源码)。如果有人想修改的我的代码自成一派我也不会干涉的;我反而会感谢你(因为实现了我当时开发工具的初衷)

小麦

Rank: 15Rank: 15Rank: 15

UID
1591929
帖子
16314
PB币
23411
贡献
0
技术
835
活跃
3411

数码达人 活动参与先锋 远景技术达人 原创先锋 8周年庆典勋章

板凳
发表于 2014-8-6 19:09:22 IP属地马来西亚 |只看该作者
感觉最大难度是实现本地KMS服务器吧~

14N.M.

UID
3887572
帖子
2897
PB币
3573
贡献
0
技术
801
活跃
4722

远景开发达人 远景技术达人 Win10先驱者 十周年

4F
发表于 2014-8-6 19:11:26 IP属地浙江 |只看该作者
raymai97 发表于 2014-8-6 19:09
感觉最大难度是实现本地KMS服务器吧~

是的,但这个一般是俄国人帮我们完成

我们做工具主要是做判断算法,所以我认为这个最难

小麦

Rank: 15Rank: 15Rank: 15

UID
1591929
帖子
16314
PB币
23411
贡献
0
技术
835
活跃
3411

数码达人 活动参与先锋 远景技术达人 原创先锋 8周年庆典勋章

5F
发表于 2014-8-6 19:59:24 IP属地马来西亚 |只看该作者
Mouri_Naruto 发表于 2014-8-6 19:11
是的,但这个一般是俄国人帮我们完成

我们做工具主要是做判断算法,所以我认为这个最难

嗯,目前我认为真的很好用的是KMSPICO,从来没让我失望过~
HEU有“中国软件”性质…… 所以……

14N.M.

UID
3887572
帖子
2897
PB币
3573
贡献
0
技术
801
活跃
4722

远景开发达人 远景技术达人 Win10先驱者 十周年

6F
发表于 2014-8-6 20:12:21 IP属地浙江 |只看该作者
raymai97 发表于 2014-8-6 19:59
嗯,目前我认为真的很好用的是KMSPICO,从来没让我失望过~
HEU有“中国软件”性质…… 所以……

嗯,是的

Rank: 5Rank: 5Rank: 5

UID
2673933
帖子
686
PB币
3804
贡献
0
技术
16
活跃
837

8周年庆典勋章

7F
发表于 2014-8-6 23:24:30 IP属地广西 |只看该作者
mini kms成为可能 还得感谢神一般存在的zwt

14N.M.

UID
3887572
帖子
2897
PB币
3573
贡献
0
技术
801
活跃
4722

远景开发达人 远景技术达人 Win10先驱者 十周年

8F
发表于 2014-8-7 10:15:06 IP属地浙江 来自手机 |只看该作者
a541600 发表于 2014-8-6 23:24
mini kms成为可能 还得感谢神一般存在的zwt

是啊,要是木有他,我们后来的功能就无法实现了

Rank: 9

UID
29002
帖子
1723
PB币
1392
贡献
0
技术
1
活跃
1554
9F
发表于 2014-8-7 10:25:01 IP属地北京 |只看该作者
支持楼主,纯技术贴啊。

14N.M.

UID
3887572
帖子
2897
PB币
3573
贡献
0
技术
801
活跃
4722

远景开发达人 远景技术达人 Win10先驱者 十周年

10F
发表于 2014-8-7 10:34:11 IP属地浙江 来自手机 |只看该作者
flonphon 发表于 2014-8-7 10:25
支持楼主,纯技术贴啊。

谢谢,我今天会继续更新,还会贴代码

UID
4037569
帖子
1833
PB币
6185
贡献
0
技术
10
活跃
2705

Win10先驱者 远景美化达人 8周年庆典勋章 我是大学生!

11F
发表于 2014-8-7 11:03:57 IP属地湖北 |只看该作者
谁知盘中餐,粒粒皆辛苦,感谢楼主为我们的付出

点评

Mouri_Naruto  谢谢你了  发表于 2014-8-7 19:29 IP属地浙江

Rank: 7Rank: 7Rank: 7

UID
97485
帖子
686
PB币
20
贡献
0
技术
1
活跃
646

十一周年

12F
发表于 2014-8-7 11:13:18 IP属地西藏 |只看该作者
我是来膜拜技术帝的。。。。。。。。。。

点评

Mouri_Naruto  我不是技术帝,只是技术爱好者  发表于 2014-8-7 19:29 IP属地浙江

远景首席彤推

Rank: 11Rank: 11Rank: 11

UID
1988043
帖子
5313
PB币
6
贡献
0
技术
231
活跃
948

活动参与先锋 Win10先驱者 远景记者 热心会员 远景技术达人 评测勋章 8周年庆典勋章

13F
发表于 2014-8-7 11:15:53 IP属地广东 |只看该作者
我不怎麼喜歡KMS。。。改個系統時間久掉了

这是一个马甲

UID
1612747
帖子
13703
PB币
14212
贡献
0
技术
4658
活跃
20989

十周年 7周年庆典勋章 我是大学生!

14F
发表于 2014-8-7 13:35:03 IP属地上海 |只看该作者
毛利加油 继续更新

误导党、

Rank: 11Rank: 11Rank: 11

UID
749482
帖子
11357
PB币
18538
贡献
0
技术
98
活跃
2629

活动参与先锋 Win10先驱者 7周年庆典勋章 热心会员 远景技术达人 I'm Windows Phone用户

15F
发表于 2014-8-7 13:48:21 IP属地广东 来自手机 |只看该作者
楼主可曾研究下那个核心?

14N.M.

UID
3887572
帖子
2897
PB币
3573
贡献
0
技术
801
活跃
4722

远景开发达人 远景技术达人 Win10先驱者 十周年

16F
发表于 2014-8-7 19:27:12 IP属地浙江 |只看该作者
cjy__05 发表于 2014-8-7 13:35
毛利加油 继续更新

谢谢你,我已经更新完毕

点评

money0987  哈哈  发表于 2014-8-7 22:36 IP属地广西

14N.M.

UID
3887572
帖子
2897
PB币
3573
贡献
0
技术
801
活跃
4722

远景开发达人 远景技术达人 Win10先驱者 十周年

17F
发表于 2014-8-7 19:28:21 IP属地浙江 |只看该作者
sasalemma 发表于 2014-8-7 13:48
楼主可曾研究下那个核心?

KMS服务器,这个我一直在研究;比如随机KMS服务器IP这项特性的应用也是在我研究MDL论坛的KMS服务器的的基础上

14N.M.

UID
3887572
帖子
2897
PB币
3573
贡献
0
技术
801
活跃
4722

远景开发达人 远景技术达人 Win10先驱者 十周年

18F
发表于 2014-8-7 19:28:45 IP属地浙江 |只看该作者
zhaoxile 发表于 2014-8-7 11:15
我不怎麼喜歡KMS。。。改個系統時間久掉了

是的,虽然有激活服务在;但总会有延迟

14N.M.

UID
3887572
帖子
2897
PB币
3573
贡献
0
技术
801
活跃
4722

远景开发达人 远景技术达人 Win10先驱者 十周年

19F
发表于 2014-8-7 19:30:02 IP属地浙江 |只看该作者
flonphon 发表于 2014-8-7 10:25
支持楼主,纯技术贴啊。

谢谢,这篇帖子相比我以前的帖子,还是算稍稍有一些水分的

Rank: 5Rank: 5Rank: 5

UID
3001697
帖子
689
PB币
1405
贡献
0
技术
0
活跃
2100
20F
发表于 2014-8-7 21:35:09 IP属地台湾 |只看该作者
肯發時間研究又願意開放源碼,
總是讓人佩服
回顶部
Copyright (C) 2005-2024 pcbeta.com, All rights reserved
Powered by Discuz!  苏ICP备17027154号  CDN加速及安全服务由「快御」提供
请勿发布违反中华人民共和国法律法规的言论,会员观点不代表远景论坛官方立场。
远景在线 | 远景论坛 | 苹果论坛 | Win11论坛 | Win10论坛 | Win8论坛 | Win7论坛 | WP论坛 | Office论坛