第一步,首先準備反彙編工具 ildasm.exe,找到VisualSVN的安裝路徑,一般先備份,在備份裡面操作。 第二步,轉儲 , 得到同名的il文件:VisualSVN.Core.L.il,用記事本打開得到的 VisualSVN.Core.L.il 文件,在其中搜索 “KeyToLicenseUn ...
第一步,首先準備反彙編工具 ildasm.exe,找到VisualSVN的安裝路徑,一般先備份,在備份裡面操作。
第二步,轉儲 , 得到同名的il文件:VisualSVN.Core.L.il,用記事本打開得到的 VisualSVN.Core.L.il 文件,在其中搜索 “KeyToLicenseUnsafe”,找到KeyToLicenseUnsafe方法,大概在3296行附近。查找並替換成下麵的代碼,然後保存
.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
第三步,用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目錄下就完成破解了。