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) 设置相应断点,根据需要调试即可
我返编译了一个版本,目前是可以用的
下载地址: http://pan.baidu.com/s/1c0cyEek