今天经理让把公司以前的文档补齐,然后就开始用rose7.0 画uml 但以前下的是试用版的只有30天,虽然到期后把系统日期调整后能继续使用,但总感觉不爽,决定把rose破解了。仅供学习使用。
查找注册表发现 他在注册表里面放了一个二进制的键值,但问了同事,所不知道结构根本无法 知道内容
HKEY_LOCAL_MACHINE\SOFTWARE\IBM\License Use Runtime\I4DRIVER ,但发现如果这里没有的话rose启动会把向这里面写入一个新的键值,所以这里不是问题所在,于是看看他的安装后的包,因为是基于eclipse的吗,于是就去plugs里面看,找到了几个比较有意思的东东,com.ibm.cic.licensing.common.core_7.0.0.v20061016.jar 发现一看就知道是干什么的了哈哈。然后就对这个包里面的代码做分析,于是加上一代码 在反编译的 代码里
//加入代码
if(licstatus != null)
{
licstatus.setDaysToExpire(500);
licstatus.setLicenseGranted(true);
licstatus.setStatusCode(0);
}
//原来代码
if(licstatus != null && licstatus.isLicenseGranted())
{
if(pi.isExpirationWarned())
return 0;
if(licstatus.getStatusCode() == 4)
setRunInDisconnectStatus(pi);
else
if(licstatus.isLicenseWillExpire())
setWillExpireStatus(pi, licstatus);
return licstatus.getStatusCode();
}
………………
加上这句话 然后重新编译替换原来的文件 结果 成功。。但这个版本应该只对应试用版才有效,其实是人家不想加密 要是做的话根本没有办法破解。
下面是我测试后的jar包和 成功预览图
最重要的是,我经过测试 在关闭破解rose的时候一定要把所有的tab页面关闭否则下次进入的时候将无法使用,关闭所有的tab页面后,再重新打开rose就可以用了