2008-01-12
一个SVN Client工具的小手术
关键字: svn 版本控制工具 svn client
最近有个小项目用SVN作版本控制(以前都用StarTeam,为了支持开源,选择了SVN),想找个好用的SVN客户端工具,以前用过小海龟,但不喜欢往资源管理器上加插件,本来资源管理器就已经够乱的了,还加插件,无法忍受!而且,系统重装后还得重装小海龟,麻烦!在网上搜罗好久,找到了SmartSVN,挺好的,只以专业版要钱。虽说基础版功能对于一般的用户也足够了,但追求尽善尽美一直是我的性格,于是去官网申请了一个专业版试用License。试用License在1月14日即将到期,该动动手术了。
手术工具有两个:jshrink(2.39版)和rej(0.7版),如果不清楚这两个工具是啥东东的兄弟,请记住还有一个网站叫“google“,有一种方式叫“搜索”。
首先,用rej打开smartsvn.jar包,查找关键字“expired”,然后根据再查找引用该关键字的地方,最后定位到校验Lincese签名的地方,查找过程很啰嗦就不多讲了,找到的位置是smartsvn.tG类中的
看来只要想办法在while循环之前跳出方法就行了。于时再用rej打开,找到Math.min(b3.length, b4.length);语句,在它的下面增加一个“return”,然后保存。再到
“用户主目录\.smartsvn\3“目录下打开license文件(纯文本的),将其中的:
DemoUntil=2008-1-14
改为
DemoUntil=2010-1-14
,再启动SmartSVN,它提示过期日期是2010-1-14,成功了!SmartSVN不再校验License的签名,可以把试用版到期时间改为任意有效日期了。至此,手术算是基本成功了,可以无限期地使用SmartSVN的专业版功能了。
前面我说过,追求尽善尽美是我的性格,每次启动喋喋不休地提示我是试用版本,累不累啊?!想办法除掉试用版提示。
再用rej打开smartsvn.jar,再查找关键字“expired”,最后找到smartsvn.Ql类的static public String a(java.util.Date d1)方法,反编译后如下:
试用版提示框上显示的就是这句话,只要找到引用这句话的地方,应该是说出提示框的位置吧,继续找,找到smartsvn.vf类的public final void a(dj d1)方法,反编译如下:
看来d1.c(Ql.a(a), Ql.h());这句就是烦人对话框的出生地了,用rej在这句话前加个“return”,保存,再启动SmartSVN,没再出现烦人的提示框了!在干净的天空下呼吸是如此地自由!!
为了避免招来跟陈福寿一样的麻烦,我就不在这里贴手术后的smartsvn.jar包了。下面我贴一下我修改过的试用License、SmartSVN基础版和专业版界面截图。
手术工具有两个:jshrink(2.39版)和rej(0.7版),如果不清楚这两个工具是啥东东的兄弟,请记住还有一个网站叫“google“,有一种方式叫“搜索”。
首先,用rej打开smartsvn.jar包,查找关键字“expired”,然后根据再查找引用该关键字的地方,最后定位到校验Lincese签名的地方,查找过程很啰嗦就不多讲了,找到的位置是smartsvn.tG类中的
static private void a(al a1, java.security.MessageDigest m2)方法,用jshrink反编译后如下:
static private void a(al a1, java.security.MessageDigest m2) throws abp {
byte[] b3;
byte[] b4;
int i6;
b3 = a1.a();
b4 = tG.a(m2, 16);
Math.min(b3.length, b4.length);
l5 = return;
i6 = 0;
while (i6 < l5) {
if (b3[i6] != b4[i6]) {
throw new abp("Invalid signature");
}
i6++;
}
}
看来只要想办法在while循环之前跳出方法就行了。于时再用rej打开,找到Math.min(b3.length, b4.length);语句,在它的下面增加一个“return”,然后保存。再到
“用户主目录\.smartsvn\3“目录下打开license文件(纯文本的),将其中的:
DemoUntil=2008-1-14
改为
DemoUntil=2010-1-14
,再启动SmartSVN,它提示过期日期是2010-1-14,成功了!SmartSVN不再校验License的签名,可以把试用版到期时间改为任意有效日期了。至此,手术算是基本成功了,可以无限期地使用SmartSVN的专业版功能了。
前面我说过,追求尽善尽美是我的性格,每次启动喋喋不休地提示我是试用版本,累不累啊?!想办法除掉试用版提示。
再用rej打开smartsvn.jar,再查找关键字“expired”,最后找到smartsvn.Ql类的static public String a(java.util.Date d1)方法,反编译后如下:
static public String a(java.util.Date d1) {
return new StringBuffer().append("Your Professional demo license will expire on ").append(java.text.DateFormat.getDateInstance().format(d1)).append(".").toString();
}
试用版提示框上显示的就是这句话,只要找到引用这句话的地方,应该是说出提示框的位置吧,继续找,找到smartsvn.vf类的public final void a(dj d1)方法,反编译如下:
public final void a(dj d1) {
sW.b();
d1.c(Ql.a(a), Ql.h());
}
看来d1.c(Ql.a(a), Ql.h());这句就是烦人对话框的出生地了,用rej在这句话前加个“return”,保存,再启动SmartSVN,没再出现烦人的提示框了!在干净的天空下呼吸是如此地自由!!
为了避免招来跟陈福寿一样的麻烦,我就不在这里贴手术后的smartsvn.jar包了。下面我贴一下我修改过的试用License、SmartSVN基础版和专业版界面截图。
- 13:35
- 浏览 (427)
- 评论 (0)
- 分类: 技术文章(java)
- 进入论坛
- 相关推荐
- 浏览: 89155 次

- 详细资料
搜索本博客
我的相册
谁敢范我
共 1 张
共 1 张
最近加入圈子
最新评论
-
Axis实践之Axis入门
楼主说的步骤太复杂了,初学者可能看得晕,这里有个捷径,web services和 ...
-- by taelons -
Web Service实践之——开 ...
用Spring的话 XFIRE还是首选
-- by lixiaoxu85 -
Web Service实践之——开 ...
wdmsyf 写道 Web Service实践之—&mdash ...
-- by fengzhiyin -
Axis实践之Axis入门
现在NetBeans下面也可以通过升级插件获得之间的Axis2集成了
-- by Joo -
Axis实践之Axis入门
第一种 我在eclipse 下通过测试 第二种 不行 Error genera ...
-- by xiaopang106






评论排行榜