如何更改Visual Studio 2012,2013或2015许可证密钥?
我有我的机器上的Visual Studio 2012专业版的副本,我不再使用,因为我不得不使用另一个。 我的问题是我继续卸载Visual Studio但注册信息仍然存在后重新安装,我不知道哪个registrypath我不得不删除(我删除了几个)没有运气。
有没有简单的方法来删除登记信息或交换我的钥匙?
谢谢
我有同样的问题,并希望将产品密钥更改为另一个。 不幸的是它不像VS2010那么容易。
以下步骤工作:
-
删除包含许可证信息的registry项:HKEY_CLASSES_ROOT \ Licenses \ 77550D6B-6352-4E77-9DA3-537419DF564B
-
如果找不到密钥,请使用sysinternals ProcessMonitor检查VS2012的registry访问权限,以find始终位于HKEY_CLASSES_ROOT \ Licenses中的正确密钥
-
删除这个密钥后,VS2012会告诉你它的授权信息是不正确的。 转到“程序和function”,并修复VS2012。
-
修复之后,VS2012将恢复为30天的试用期,您可以input新的产品密钥。 这也可以用来停留在试用版本循环中,并且不要input产品密钥。
对于那些需要从Visual Studio 2015中删除产品密钥的人:
- 删除registry项
HKCR\Licenses\4D8CFBCB-2F6A-4AD2-BABF-10E28F6F2C8F
- 修复Visual Studio安装
就是这样,现在您可以根据需要更改产品密钥。
对于我来说,在Visual Studio 2013中,仅仅删除许可密钥并执行修复是不够的(修复恢复了许可密钥而不是恢复到试用版本,并且在没有修复的情况下运行(删除密钥之后)许可证已过期,但不会让我input新的密钥)。
我不得不:
- 了解Visual Studio在Process Monitor的registry中寻找什么许可证密钥(它是
HKCR\Licenses\E79B3F9C-6543-4897-BBA5-5BFB0A02BB5C
) - 完全卸载Visual Studio 2013(首先保存CurrentSettings.vssettings)
- 在registry中手动删除registry中的许可证密钥
- 使用公共可用的Web安装程序(它没有任何烘焙的许可证密钥 – 安装30天的试用版)安装Visual Studio,
- input我的新许可证密钥
- (重新)安装更新(此时更新1)
- 通过导入由CurrentSettings.vssettings组成的备份来恢复设置
要查看这些HKCR \ Licenses中的内容,请使用API Monitor v2
API-Filter find RegQueryValueExW ^-Enable all from Advapi32.dll CryptUnprotectData ^- Enable all from Crypt32.dll + Breakpoint / after Call
来自CryptUnprotectData的样本数据:
HKEY_CLASSES_ROOT\Licenses\4D8CFBCB-2F6A-4AD2-BABF-10E28F6F2C8F\07078 [length 0x1C6 (0454.) ] 00322-20000-00000-AA450 <- PID2 7d3cbcbb-90b1-411f-9981-6e28039a9b82 <- Ver 7C3WXN74-VRMXH-J8X3H-M8F7W-CPQB8 <- PID3 HKEY_CLASSES_ROOT\Licenses\4D8CFBCB-2F6A-4AD2-BABF-10E28F6F2C8F\0bcad [length 0xbcad (0534.) ] 0000 00000025 ffffffff 7fffffff 07064. 00000007 07078. 00000007 ffffffff 0020 7fffffff ffffffff 7fffffff ffffffff 7fffffff ffffffff 7fffffff ffffffff 0040 7fffffff ffffffff 7fffffff ffffffff 7fffffff ffffffff 7fffffff ffffffff 0060 7fffffff ffffffff 7fffffff ffffffff 7fffffff ffffffff 7fffffff ffffffff 0080 7fffffff ffffffff 7fffffff ffffffff 7fffffff ffffffff 7fffffff ffffffff 00a0 7fffffff ffffffff 7fffffff ffffffff 7fffffff ffffffff 7fffffff ffffffff 00c0 7fffffff ffffffff 7fffffff ffffffff 7fffffff ffffffff 7fffffff ffffffff 00e0 7fffffff ffffffff 7fffffff ffffffff 7fffffff ffffffff 7fffffff ffffffff 0100 7fffffff ffffffff 7fffffff ffffffff 7fffffff ffffffff 7fffffff ffffffff 0120 7fffffff ffffffff 7fffffff 10.2015. c2a6 11. 0134 ^installation date^
这里有用的可能是安装时间戳(11.10.2015这里) 改变这将需要调用'CryptProtectData'。 这样做需要一些努力,比如写一个小程序,或者在这个地方停下来用ollydebug,然后手工“制作”一个CryptProtectData调用。
注意:在这个例子中,我使用的是Microsoft®Visual Studio 2015
– >对于一个quick'n'dirty 潜入过期的 VS我推荐阅读这篇文章。 但是,这只是偶尔使用,直到你得到所有的注册和login废话再正常完成;)
好吧真正的肉在这里:
%LOCALAPPDATA%\ Microsoft \ VisualStudio \ 14.0 \ Licenses \ ^ – 此path来自HKCU \ Software \ Microsoft \ VisualStudio \ 14.0 \ Licenses \ 715f10eb-9e99-11d2-bfc2-00c04f990235 \ 1
1_3jdh3uyw **。** crtok
– 一些Base64解码之后:
<ClientRightsContainer xmlns="http://schemas.datacontract.org/2004/07/Microsoft.VisualStudio.Services.Licensing" xmlns:i="http://www.w3.org/2001/XMLSchema-instance"> <CertificateBytes> 00000000 30 82 06 41 30 82 04 29 A0 03 02 01 02 02 13 5A 0‚ A0‚ ) Z 00000010 00 00 BC CB 23 AC 52 9C E8 93 F9 0A 00 01 00 00 ¼Ë#¬Rœè“ù 00000020 BC CB 30 0D 06 09 2A 86 48 86 F7 0D 01 01 0B 05 ¼Ë0 *†H†÷ 00000030 00 30 81 8B 31 0B 30 09 06 03 55 04 06 13 02 55 0 ‹1 0 UU 00000040 53 31 13 30 11 06 03 55 04 08 13 0A 57 61 73 68 S1 0 U Wash 00000050 69 6E 67 74 6F 6E 31 10 30 0E 06 03 55 04 07 13 ington1 0 U 00000060 07 52 65 64 6D 6F 6E 64 31 1E 30 1C 06 03 55 04 Redmond1 0 U 00000070 0A 13 15 4D 69 63 72 6F 73 6F 66 74 20 43 6F 72 Microsoft Cor 00000080 70 6F 72 61 74 69 6F 6E 31 15 30 13 06 03 55 04 poration1 0 U 00000090 0B 13 0C 4D 69 63 72 6F 73 6F 66 74 20 49 54 31 Microsoft IT1 000000A0 1E 30 1C 06 03 55 04 03 13 15 4D 69 63 72 6F 73 0 U Micros 000000B0 6F 66 74 20 49 54 20 53 53 4C 20 53 48 41 32 30 oft IT SSL SHA20 000000C0 1E 17 0D 31 35 30 33 30 35 32 31 32 39 35 36 5A 150305212956Z 000000D0 17 0D 31 37 30 33 30 34 32 31 32 39 35 36 5A 30 170304212956Z0 000000E0 25 31 23 30 21 06 03 55 04 03 13 1A 61 70 70 2E %1#0! U app. 000000F0 76 73 73 70 73 2E 76 69 73 75 61 6C 73 74 75 64 vssps.visualstud 00000100 69 6F 2E 63 6F 6D 30 82 01 22 30 0D 06 09 2A 86 io.com0‚ "0 *† ... 000002B0 6E 86 36 68 74 74 70 3A 2F 2F 6D 73 63 72 6C 2E n†6http://mscrl. 000002C0 6D 69 63 72 6F 73 6F 66 74 2E 63 6F 6D 2F 70 6B microsoft.com/pk 000002D0 69 2F 6D 73 63 6F 72 70 2F 63 72 6C 2F 6D 73 69 i/mscorp/crl/msi 000002E0 74 77 77 77 32 2E 63 72 6C 86 34 68 74 74 70 3A twww2.crl†4http: 000002F0 2F 2F 63 72 6C 2E 6D 69 63 72 6F 73 6F 66 74 2E //crl.microsoft. 00000300 63 6F 6D 2F 70 6B 69 2F 6D 73 63 6F 72 70 2F 63 com/pki/mscorp/c 00000310 72 6C 2F 6D 73 69 74 77 77 77 32 2E 63 72 6C 30 rl/msitwww2.crl0 00000320 70 06 08 2B 06 01 05 05 07 01 01 04 64 30 62 30 p + d0b0 00000330 3C 06 08 2B 06 01 05 05 07 30 02 86 30 68 74 74 < + 0 †0htt 00000340 70 3A 2F 2F 77 77 77 2E 6D 69 63 72 6F 73 6F 66 p://www.microsof 00000350 74 2E 63 6F 6D 2F 70 6B 69 2F 6D 73 63 6F 72 70 t.com/pki/mscorp 00000360 2F 6D 73 69 74 77 77 77 32 2E 63 72 74 30 22 06 /msitwww2.crt0" 00000370 08 2B 06 01 05 05 07 30 01 86 16 68 74 74 70 3A + 0 † http: 00000380 2F 2F 6F 63 73 70 2E 6D 73 6F 63 73 70 2E 63 6F //ocsp.msocsp.co 00000390 6D 30 4E 06 03 55 1D 20 04 47 30 45 30 43 06 09 m0N U G0E0C 000003A0 2B 06 01 04 01 82 37 2A 01 30 36 30 34 06 08 2B + ‚7* 0604 + 000003B0 06 01 05 05 07 02 01 16 28 68 74 74 70 3A 2F 2F (http:// 000003C0 77 77 77 2E 6D 69 63 72 6F 73 6F 66 74 2E 63 6F www.microsoft.co 000003D0 6D 2F 70 6B 69 2F 6D 73 63 6F 72 70 2F 63 70 73 m/pki/mscorp/cps 000003E0 00 30 27 06 09 2B 06 01 04 01 82 37 15 0A 04 1A 0' + ‚7 000003F0 30 18 30 0A 06 08 2B 06 01 05 05 07 03 01 30 0A 0 0 + 0 00000400 06 08 2B 06 01 05 05 07 03 02 30 25 06 03 55 1D + 0% U 00000410 11 04 1E 30 1C 82 1A 61 70 70 2E 76 73 73 70 73 0 ‚ app.vssps 00000420 2E 76 69 73 75 61 6C 73 74 75 64 69 6F 2E 63 6F .visualstudio.co 00000430 6D 30 0D 06 09 2A 86 48 86 F7 0D 01 01 0B 05 00 m0 *†H†÷ ... U </CertificateBytes> <Token> { "typ":"JWT", "alg":"RS256", "x5t":"i7qX-NUrehXBYdQC5PSH-TdvzXA" } </Token> </ClientRightsContainer>
似乎M $使用JSON Web令牌( JWT )来包装许可证数据。 我猜里面的CertificateBytes将以某种方式有效载荷 – 你是电子邮件和其他细节。
到目前为止,粗略的概述里面的数据是什么。
为更多的希望得到ILSpy + Reflexil (< – 改变/正确的小东西!),然后“浏览器和更正”的文件,如C:\ Program Files文件(x86)\微软Visual Studio 14.0 \ Common7 \ IDE的Microsoft.VisualStudio.Licensing。 DLL **或检出“Microsoft.VisualStudio.Services.WebApi.dll”
对于那些使用Visual Studio 2017 Professional的用户,registry项是:
HKCR \许可证\ 5C505A59-E312-4B89-9508-E162F8150517
我还build议您在删除之前首先导出registry项,这样如果您不小心删除了错误的密钥,就会有备份。
我有Windows 8和Windows 8.1的另一台电脑
我有许可证错误,说“预发行软件。许可证过期”。
我发现的唯一的解决scheme是受上述解决scheme(谢谢!)的启发,是运行进程监视器,并查看启动VS2013时访问的确切的registry项:
HKCR \许可证\ E79B3F9C-6543-4897-BBA5-5BFB0A02BB5C
就像之前的文章中提到的一样。 但是进程监视器说这个registry是拒绝访问的。
所以我打开registry,发现registry项,我无法打开它。 它说我没有权限看到它。
所以我必须改变它的权限:
- 右键点击“HKCR \ Licenses \ E79B3F9C-6543-4897-BBA5-5BFB0A02BB5C”键
- 权限
- 加
- 在“input对象名称来select”我已经添加了我的Windows用户名。 好。
- 检查完全控制
- 高级
- 所有者点击“更改”
- 在“input对象名称来select”我已经添加了我的Windows用户名。 好。
- 好。 好。 好。
我发现这个registry项有几个子键,但是你必须重新启动registry才能看到它们。
通过查看进程监视器中哪些其他registry项被拒绝访问,我知道VS2013将专门处理这些访问被拒绝的子项:06181 0bcad
这些子键也应该像上面一样改变它们的权限。
做这些权限更改后,一切运作良好。
同样的事情已经完成了Microsoft Visual Studio 2010,因为许可证中的错误以及解决scheme运行良好。
国际标准化组织可能是预先制定的。 您需要从安装文件中删除密钥。 然后它应该在安装过程中要求您input密钥。
从registry中删除许可证信息的解决scheme也适用于Visual Studio 2013,但正如上面的答案中所述,在Visual Studio上执行“修复”是非常重要的。