visual SVN 反编译破解

今天发现visual SVN 过期了。网上搜索了一下,发现了下面的贴子。

http://www.heiqu.com/show-71200-1.html

一看是用.Net写的,大喜,破解就太简单了。本来按照上文进行破解,结果有个问题,一直显示没有正确的license,于是开始更强的破解,其实是因为我对IL不熟悉,就开始用C#进行破解,以下是破解过程。

  1. 安装 

安装最新版的Visual SVN。

  2. 反编译

  使用reflector对安装目录下的bin\VisualSVN.Core.L.dll进行反编译,导出源代码。

  3. 使用visual studio打开源码工程

  搜索IsValid函数,找到LicenseValidator.IsValid函数,函数体内所有代码删掉,直接

   return true;

4. 生成license

  在LicenseConverter.cs文件中找到函数LicenseConverter.KeyToLicense( )函数,这个是添加license的时候点击OK按钮后执行的函数,要根据输出的key生成license,删掉所有代码,该函数改为:
 public static License KeyToLicense(IDecoder decoder, string key)
        {
License l = new License();
l.EndTime = DateTime.Now.AddYears(100);
l.Capacity = int.MaxValue/2;
l.LicensedTo = "My God";
l.LicenseId = new Guid();
l.PurchaseDate = DateTime.Parse("2012-12-31 0:0:0");
l.PurchaseId = "IDoNotKnowEither";
l.StartTime = DateTime.Now.AddYears(-100);
l.Type = LicenseType.Corporate;
l.Binding = LicenseBinding.Seat;
return l;

  }

然后再编译,生成DLL替换安装目录下的同名文件即可。

说说l.Capacity = int.MaxValue/2;,开始本来写的是 int.MaxValue,后来发现代码里有对这个值的校验,于是就除了2,本来减1也可以,无所谓了,地球上都没那么多机器,随便写个值也够用了,如果感觉100年不够用的话可以自己去改,呵呵。

对插件DLL的调试方法:

1) 启动VS打开插件的源码,然后再启动一个VS

2) 在包含源码的VS进程中使用Debug->Attach to Process命令,然后选择另外一个VS进程

3) 设置相应断点,根据需要调试即可

我返编译了一个版本,目前是可以用的

VisualSvn-4.0.12破解版.rar

下载地址: http://pan.baidu.com/s/1c0cyEek

上一篇:UNIX环境高级编程——线程与进程区别


下一篇:UNIX环境高级编程——线程属性