第一步,首先准备反汇编工具 ildasm.exe,找到VisualSVN的安装路径,一般先备份,在备份里面操作。
第二步,转储 , 得到同名的il文件:VisualSVN.Core.L.il,用记事本打开得到的 VisualSVN.Core.L.il 文件,在其中搜索 “KeyToLicenseUnsafe”,找到KeyToLicenseUnsafe方法,大概在3296行附近。查找并替换成下面的代码,然后保存
.method public hidebysig static class VisualSVN.Core.Licensing.LicenseKeyToLicenseUnsafe(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: nopIL_0001: newobj instance void VisualSVN.Core.Licensing.License::.ctor()IL_0006: stloc.1IL_0007: ldloc.1IL_0008: ldsfld valuetype [mscorlib]System.DateTime [mscorlib]System.DateTime::MinValueIL_000d: stfld valuetype [mscorlib]System.DateTime VisualSVN.Core.Licensing.License::StartTimeIL_0012: ldloc.1IL_0013: ldc.i4.1IL_0014: stfld valuetype VisualSVN.Core.Licensing.LicenseBinding VisualSVN.Core.Licensing.License::BindingIL_0019: ldloc.1IL_001a: ldc.i4 0x7ffffffeIL_001f: stfld int32 VisualSVN.Core.Licensing.License::CapacityIL_0024: ldloc.1IL_0025: ldsfld valuetype [mscorlib]System.DateTime [mscorlib]System.DateTime::MaxValueIL_002a: stfld valuetype [mscorlib]System.DateTime VisualSVN.Core.Licensing.License::EndTimeIL_002f: ldloc.1IL_0030: ldc.i4.2IL_0031: stfld valuetype VisualSVN.Core.Licensing.LicenseType VisualSVN.Core.Licensing.License::TypeIL_0036: ldloc.1IL_0037: ldstr "100"IL_003c: stfld string VisualSVN.Core.Licensing.License::PurchaseIdIL_0041: ldloc.1IL_0042: call string [mscorlib]System.Environment::get_UserName()IL_0047: stfld string VisualSVN.Core.Licensing.License::LicensedToIL_004c: ldloc.1IL_004d: stloc.0IL_004e: ldloc.0IL_004f: ldloc.0IL_0050: ldfld valuetype [mscorlib]System.DateTime VisualSVN.Core.Licensing.License::StartTimeIL_0055: stfld valuetype [mscorlib]System.DateTime VisualSVN.Core.Licensing.License::PurchaseDateIL_005a: ldloc.0IL_005b: stloc.2IL_005c: br.sIL_005eIL_005e:ldloc.2IL_005f: ret} // end of method LicenseConverter::KeyToLicenseUnsafe
第三步,用vs2015开发人员命令提示 ,然后覆盖到 bin目录
用vs2015开发人员命令提示 运行如下代码(换成自己的)
ilasm "C:\Program Files (x86)\VisualSVN\bins\VisualSVN.Core.L.il" /output="C:\Program Files (x86)\VisualSVN\bins\VisualSVN.Core.L.dll" /dll
看到如下界面
表示编译成功,然后把编译好的VisualSVN.Core.L.dll 覆盖到 bin目录下就完成破解了。