我的机器上有一个 Visual Studio 2012 Pro 的副本,带有一个我不再想使用的串行密钥,因为我必须使用另一个。我的问题是我一直在卸载 Visual Studio,但重新安装后注册信息仍然存在,我无法确定我必须删除哪个注册表路径(我删除了一些),但没有运气。
有没有一种简单的方法可以删除 tha reg 信息或交换我的密钥?
谢谢
我的机器上有一个 Visual Studio 2012 Pro 的副本,带有一个我不再想使用的串行密钥,因为我必须使用另一个。我的问题是我一直在卸载 Visual Studio,但重新安装后注册信息仍然存在,我无法确定我必须删除哪个注册表路径(我删除了一些),但没有运气。
有没有一种简单的方法可以删除 tha reg 信息或交换我的密钥?
谢谢
我遇到了同样的问题,想将产品密钥更改为另一个。不幸的是,它不像在 VS2010 上那么容易。
以下步骤有效:
删除包含许可证信息的注册表项:HKEY_CLASSES_ROOT\Licenses\77550D6B-6352-4E77-9DA3-537419DF564B
如果找不到密钥,请使用 sysinternals ProcessMonitor检查 VS2012 的注册表访问,以找到始终在 HKEY_CLASSES_ROOT\Licenses 中的正确密钥
删除此密钥后,VS2012 会告诉您它的许可证信息不正确。转到“程序和功能”并修复VS2012。
修复后,VS2012 恢复为 30 天试用,您可以输入新的产品密钥。这也可以用于留在试用版循环中,并且从不输入生产密钥。
对于需要从 Visual Studio 2015 中删除产品密钥的用户:
HKCR\Licenses\4D8CFBCB-2F6A-4AD2-BABF-10E28F6F2C8F
就是这样,现在您可以根据需要更改产品密钥。
对我来说,使用 Visual Studio 2013,删除许可证密钥并执行修复是不够的(修复恢复了许可证密钥而不是恢复到试用版,并且在没有修复的情况下运行它(删除密钥后)声称许可证已过期,但不允许我输入新密钥)。
我不得不:
HKCR\Licenses\E79B3F9C-6543-4897-BBA5-5BFB0A02BB5C
)对于使用 Visual Studio 2017 Professional 的用户,注册表项为:
HKCR\许可证\5C505A59-E312-4B89-9508-E162F8150517
我还建议您先导出注册表项,然后再删除它,这样如果您不小心删除了错误的键,您将有一个备份。
要查看这些 HKCR\License 中的内容,请使用 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
-> 为了快速潜入过期的VS,我建议阅读这篇文章。然而,这只是偶尔使用的好处,直到您再次正确完成所有注册和登录废话;)
好吧,真正的肉在这里:
%LOCALAPPDATA%\Microsoft\VisualStudio\14.0\Licenses\ ^- 这个路径来自 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 U U
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)\Microsoft Visual Studio 14.0\Common7\IDE**Microsoft.VisualStudio.Licensing。 dll** 或查看“Microsoft.VisualStudio.Services.WebApi.dll”
在阅读以下答案之前,请在最后查看我的更新。
我有 Windows 8 和另一台装有 Windows 8.1 的电脑
我有许可证错误说“预发布软件。许可证已过期”。
我发现受上述解决方案启发的唯一解决方案(谢谢!)是运行进程监视器并查看启动 VS2013 时访问的确切注册表项,它们是:
HKCR\许可证\E79B3F9C-6543-4897-BBA5-5BFB0A02BB5C
就像以前的帖子中提到的那样。然而,进程监视器说这个注册表被拒绝访问。
所以我打开了regedit,找到了那个注册表项,我无法打开它。它说我无权查看它。
所以我不得不改变它的许可:
我发现这个注册表项有几个子项,但是您必须重新启动 regedit 才能看到它们。
通过查看进程监视器中哪些其他注册表项被拒绝访问,我知道 VS2013 将专门处理这些也被拒绝访问的子项:06181 0bcad
并且这些子项应该像上面一样更改它们的权限。
进行这些权限更改后,一切正常。
Microsoft Visual Studio 2010 也发生了同样的事情,因为许可证中也存在错误,并且解决方案运行良好。
更新:事实证明,以管理员身份启动 Visual Studio 解决了这个问题而没有这个注册表按摩。更改用户设置中删除的“登录所需密码”后,这似乎发生在我的电脑上。(我想让电脑在从崩溃或其他任何情况下重新启动后无需任何密码即可开始运行)。这使得很多程序无法写入临时文件夹等文件夹,除非我以管理员身份启动应用程序。如果 excel 没有以管理员身份启动,即使从 excel 打印也不起作用。
ISO可能是预先确定的。您需要从设置文件中删除密钥。然后它应该在安装过程中要求您提供密钥。
从注册表中删除许可证信息的解决方案也适用于 Visual Studio 2013,但如上面的答案所述,在 Visual Studio 上执行“修复”很重要。
对于使用 Visual Studio 2019 Professional 的用户,注册表项为:
HKCR\Licenses\41717607-F34E-432C-A138-A3CFD7E25CDA
之后在 Visual Studio 上执行“修复”。