貌似4.x以前的visual svn是破解VisualSVN.Core.dll文件,之后的版本则是需要破解VisualSVN.Core.L.dll文件
长话短说,直接上步骤:
1. 使用ILDASM将dll文件dump到指定目录,比如d:\il\VisualSVN.Core.L.il
2. 在d:\il\VisualSVN.Core.L.il中搜索method public hidebysig static class VisualSVN.Core.Licensing.License KeyToLicenseUnsafe
3. 将函数体中的代码替换为如下:
// Code size 69 (0x45)
.maxstack 2
.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
4.将il文件编译为dll,命令ilasm d:\il\VisualSVN.Core.L.il /dll
将编译好的dll文件覆盖到visualsvn的bin目录即可