关于破解visualsvn 我这里是版本是5.2.1

1.首先备份当前安装visualSVN文件的bin目录,万一出错还能反个水。一般默认安装路径是C:Program Files (x86)VisualSVNin

2.然后运行ildasm,Window中有自带的反编译ildasm工具,位于“C:Program FilesMicrosoft SDKsWindowsv7.0Ain”。

3.用ildasm打开刚才备份的bin目录下的VisualSVN.Core.L.dll文件,单击文件菜单点击转储,如图

4.得到同名的il文件:VisualSVN.Core.L.il,用记事本打开得到的 VisualSVN.Core.L.il 文件,在其中搜索 “KeyToLicenseUnsafe”,找到KeyToLicenseUnsafe方法,大概在3188行附近。查找并替换成下面的代码,然后保存

.method public hidebysig static class VisualSVN.Core.Licensing.License
KeyToLicenseUnsafe(class VisualSVN.Core.IDecoder decoder,
string key) cil managed
{
// 代码大小 69 (0x45)
.locals init (class VisualSVN.Core.Licensing.License V_0, class VisualSVN.Core.Licensing.License V_1, class VisualSVN.Core.Licensing.License V_2)
IL_0000: nop
IL_0001: newobj instance void VisualSVN.Core.Licensing.License::.ctor()
IL_0006: stloc.1
IL_0007: ldloc.1
IL_0008: ldsfld valuetype [mscorlib]System.DateTime [mscorlib]System.DateTime::MinValue
IL_000d: stfld valuetype [mscorlib]System.DateTime VisualSVN.Core.Licensing.License::StartTime
IL_0012: ldloc.1
IL_0013: ldc.i4.1
IL_0014: stfld valuetype VisualSVN.Core.Licensing.LicenseBinding VisualSVN.Core.Licensing.License::Binding
IL_0019: ldloc.1
IL_001a: ldc.i4 0x7ffffffe
IL_001f: stfld int32 VisualSVN.Core.Licensing.License::Capacity
IL_0024: ldloc.1
IL_0025: ldsfld valuetype [mscorlib]System.DateTime [mscorlib]System.DateTime::MaxValue
IL_002a: stfld valuetype [mscorlib]System.DateTime VisualSVN.Core.Licensing.License::EndTime
IL_002f: ldloc.1
IL_0030: ldc.i4.2
IL_0031: stfld valuetype VisualSVN.Core.Licensing.LicenseType VisualSVN.Core.Licensing.License::Type
IL_0036: ldloc.1
IL_0037: ldstr "100"
IL_003c: stfld string VisualSVN.Core.Licensing.License::PurchaseId
IL_0041: ldloc.1
IL_0042: call string [mscorlib]System.Environment::get_UserName()
IL_0047: stfld string VisualSVN.Core.Licensing.License::LicensedTo
IL_004c: ldloc.1
IL_004d: stloc.0
IL_004e: ldloc.0
IL_004f: ldloc.0
IL_0050: ldfld valuetype [mscorlib]System.DateTime VisualSVN.Core.Licensing.License::StartTime
IL_0055: stfld valuetype [mscorlib]System.DateTime VisualSVN.Core.Licensing.License::PurchaseDate
IL_005a: ldloc.0
IL_005b: stloc.2
IL_005c: br.s
IL_005e
IL_005e:ldloc.2
IL_005f: ret
} // end of method LicenseConverter::KeyToLicenseUnsafe  

复制代码
.method public hidebysig static class VisualSVN.Core.Licensing.License
          KeyToLicenseUnsafe(class VisualSVN.Core.IDecoder decoder,
                             string key) cil managed
  {
    // 代码大小       69 (0x45)
    .locals init (class VisualSVN.Core.Licensing.License V_0, class VisualSVN.Core.Licensing.License V_1, class VisualSVN.Core.Licensing.License V_2)
    IL_0000: nop
    IL_0001: newobj instance void VisualSVN.Core.Licensing.License::.ctor()
    IL_0006: stloc.1
    IL_0007: ldloc.1
    IL_0008: ldsfld valuetype [mscorlib]System.DateTime [mscorlib]System.DateTime::MinValue
    IL_000d: stfld valuetype [mscorlib]System.DateTime VisualSVN.Core.Licensing.License::StartTime
    IL_0012: ldloc.1
    IL_0013: ldc.i4.1
    IL_0014: stfld valuetype VisualSVN.Core.Licensing.LicenseBinding VisualSVN.Core.Licensing.License::Binding
    IL_0019: ldloc.1
    IL_001a: ldc.i4 0x7ffffffe
    IL_001f: stfld int32 VisualSVN.Core.Licensing.License::Capacity
    IL_0024: ldloc.1
    IL_0025: ldsfld valuetype [mscorlib]System.DateTime [mscorlib]System.DateTime::MaxValue
    IL_002a: stfld valuetype [mscorlib]System.DateTime VisualSVN.Core.Licensing.License::EndTime
    IL_002f: ldloc.1
    IL_0030: ldc.i4.2
    IL_0031: stfld valuetype VisualSVN.Core.Licensing.LicenseType VisualSVN.Core.Licensing.License::Type
    IL_0036: ldloc.1
    IL_0037: ldstr "100"
    IL_003c: stfld string VisualSVN.Core.Licensing.License::PurchaseId
    IL_0041: ldloc.1
    IL_0042: call string [mscorlib]System.Environment::get_UserName()
    IL_0047: stfld string VisualSVN.Core.Licensing.License::LicensedTo
    IL_004c: ldloc.1
    IL_004d: stloc.0
    IL_004e: ldloc.0
    IL_004f: ldloc.0
    IL_0050: ldfld valuetype [mscorlib]System.DateTime VisualSVN.Core.Licensing.License::StartTime
    IL_0055: stfld valuetype [mscorlib]System.DateTime VisualSVN.Core.Licensing.License::PurchaseDate
    IL_005a: ldloc.0
    IL_005b: stloc.2
    IL_005c: br.s
    IL_005e
    IL_005e:ldloc.2
    IL_005f: ret
  } // end of method LicenseConverter::KeyToLicenseUnsafe
复制代码

5.用管理员权限打开VS命令提示工具,如下图↓,我装的是VS2015

6. 运行下面的代码

,看到successfully表示成功了。将重新编译的dll文件覆盖到安装目录中就OK了。

7.然后运行你的VS就可以看到VisualSVN---About已经没有Lisence时间限制啦!

原文地址:https://www.cnblogs.com/Brainpan/p/9927459.html