如何更改Visual Studio 2012,2013或2015许可证密钥?

Fat*_*uno 60 visual-studio-2012 visual-studio-2013 visual-studio-2015

我的机器上有一个Visual Studio 2012 Pro的副本,带有一个我不再想使用的串行键,因为我必须使用另一个.我的问题是我保持卸载Visual Studio但重新安装后注册信息仍然存在,我无法弄清楚我必须删除哪些注册表路径(我删除了一些)没有运气.

有没有一种简单的方法来删除注册信息或交换我的密钥?

谢谢

小智 63

我有同样的问题,想要将产品密钥更改为另一个.不幸的是,它并不像在VS2010上那么容易.

以下步骤有效:

  • 删除包含许可证信息的注册表项:HKEY_CLASSES_ROOT\Licenses\77550D6B-6352-4E77-9DA3-537419DF564B

  • 如果找不到密钥,请使用sysinternals ProcessMonitor检查VS2012的注册表访问权限,找到始终位于HKEY_CLASSES_ROOT\Licenses的正确密钥

  • 删除此密钥后,VS2012会告诉您它的许可证信息不正确.转到"程序和功能"并修复VS2012.

  • 修复后,VS2012将恢复为30天试用版,您可以输入新的产品密钥.这也可以用于保持试用版循环并且永远不会输入产品密钥.

  • 确切地说,我需要删除以下子项(04938):HKEY_CLASSES_ROOT\Licenses\77550D6B-6352-4E77-9DA3-537419DF564B\04938 (4认同)
  • VisualStudio安装/修复需要很长时间:DI想知道系统一直在做什么.没有CPU,没有磁盘,没有进展...... (3认同)
  • 工作良好 .对于VS15"HKEY_CLASSES_ROOT\Licenses\4D8CFBCB-2F6A-4AD2-BABF-10E28F6F2C8F" (2认同)

Ale*_*lex 55

对于需要从Visual Studio 2015中删除产品密钥的用户:

  1. 删除注册表项 HKCR\Licenses\4D8CFBCB-2F6A-4AD2-BABF-10E28F6F2C8F
  2. 修复Visual Studio安装

就是这样,现在您可以根据需要更改产品密钥.

  • 我已经为VS2015完成了这些步骤并且他们工作了.完成修复和重新设置过程需要花费很长时间(约1小时) (2认同)

Cam*_*ron 30

对我来说,使用Visual Studio 2013,仅删除许可证密钥并执行修复是不够的(修复恢复了许可证密钥而不是恢复到试用版,并且在没有修复的情况下运行它(删除密钥后)声称许可证已过期,但不允许我输入新密钥).

我不得不:

  • 了解Visual Studio在Process Monitor中寻找的许可证密钥(它是HKCR\Licenses\E79B3F9C-6543-4897-BBA5-5BFB0A02BB5C)
  • 完全卸载Visual Studio 2013(首先保存CurrentSettings.vssettings)
  • 在regedit中手动删除注册表中的许可证密钥
  • 使用公共可用的Web安装程序(没有任何已编入的许可证密钥 - 安装30天试用版)安装Visual Studio
  • 输入我的新许可证密钥
  • (重新)安装更新(此时更新1)
  • 通过导入由CurrentSettings.vssettings组成的备份来恢复设置


Nad*_*adu 10

要查看这些HKCR\Licenses中的内容,请使用 API Monitor v2

API-Filter find 

    RegQueryValueExW 
        ^-Enable all from Advapi32.dll

    CryptUnprotectData
        ^- Enable all from Crypt32.dll
         + Breakpoint / after Call
Run Code Online (Sandbox Code Playgroud)

样本数据将来自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^
Run Code Online (Sandbox Code Playgroud)

这里有用的可能是安装时间戳(这里是11.10.2015) 更改这需要调用'CryptProtectData'.这样做需要一些努力,比如编写一个小程序或在这个地方停止使用ollydebug并手动"制作"一个CryptProtectData调用......

注意:在此示例中,我使用的是Microsoft®VisualStudio 2015

- >对于一个快速'n'dirty 偷偷进入过期的 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>
Run Code Online (Sandbox Code Playgroud)

似乎M $正在使用JSON Web Token(JWT)来包装许可证数据.我想在CertificateBytes里面会以某种方式有效载荷 - 你是电子邮件和其他细节.

到目前为止粗略概述了里面的数据.

欲了解更多愿望,请获取ILSpy + Reflexil(< - 更改/更正小事!)然后'浏览器和更正'文件,如c:\ Program Files(x86)\ Microsoft Visual Studio 14.0\Common7\IDE**Microsoft.VisualStudio.Licensing. dll**或查看'Microsoft.VisualStudio.Services.WebApi.dll'


Bog*_*che 10

对于那些使用Visual Studio 2017 Professional的人,注册表项是:

HKCR \许可证\ 5C505A59-E312-4B89-9508-E162F8150517

我还建议您在删除之前首先导出注册表项,这样如果您不小心删除了错误的密钥,就会有备份.


Mon*_*eur 1

ISO 可能是预先指定的。您需要从安装文件中删除密钥。然后它应该在安装过程中要求您提供密钥。