公司用的是websphere, 于是自己也下载了一个试用版在自己家里的电脑上玩玩. 可以有事儿没事儿的时候学一下. 但是前天向往常一样启动WAS, 按完快捷键后就开始启Eclipse. 然后就出去了. 等回来时, 发现Eclipse已经启动了. 然后启JBoss. 等JBoss启动后, 敲入地址, 却显示该页无法显示(有点乱啊, 最近这个项目用的是JBoss, 但是平台的Server是WAS). 一查, 发现Was没有启动. 说什么"产品已经到期. 请重新安装或购买该产品."
我的头一下子就大了. 晕哦, 难道要我买正版? 我一个打工的, 哪有那么多钱啊......
于是开始在网上搜索破解之道. 结果一无所获. 找来一个办法就是修改系统时间. 可是一旦修改了系统时间, 卡巴就不干活了. ARP防火墙也不干活了...... 不过没有办法, 没有钱买正版, 又不想重装. 只得修改时间.
今天继续弄它. 想自己破解一下. 反正有Front End. 可是发现无从下手. bat文件看不懂 . 于是报着"让程序报错"的想法(让java的printStackTrace)告诉我是哪个类在检查这个License. 于是我把License文件给改名了. 运行startServer.bat. 发现它竟然打印如下信息:
C:\Documents and Settings\SERAPH>G:\IBM\WebSphere\AppServer\profiles\AppSrv01\bi
n\startServer.bat server1
WSVR0025I: 正在创建临时产品许可证
WSVR0027I: 该产品将在 60 天内到期。
ADMU0116I: 正在文件
G:\IBM\WebSphere\AppServer\profiles\AppSrv01\logs\server1\startServer
.log
中记录工具信息
ADMU7701I: 由于 server1 注册成作为 Windows
服务运行,因此启动该服务器的请求将由启动关联的
Windows 服务完成。
ADMU0116I: 正在文件
G:\IBM\WebSphere\AppServer\profiles\AppSrv01\logs\server1\startServer
.log
中记录工具信息
ADMU0128I: 正在启动具有 AppSrv01 概要文件的工具
ADMU3100I: 正在从服务器读取配置:server1
ADMU3200I: 服务器已启动。等待初始化状态。
ADMU3000I: 为电子商务开放服务器 server1;进程标识为
3856
看来IBM比较聪明, 没有打印printStackTrace. 看来他们先进行了判断, 如果不存在, 那么就生成一个喽. 估计这段代码逻辑应该是在安装后, 第一次运行时执行的. 呵呵, 这样看来IBM满傻的.
这样我们只要在Was到期后, 把License文件删除, 然后再启动就可以继续使用了.
深入:
看来Websphere的License判断时, 是把License的到期时间和当前的系统时间相比. 如果当前系统时间已经超过到期时间, 则认为过期. 而到期时间是在从创建License时开始计算的, 60天.
既然这样, 我们只要在创建License之前把系统时间改的超前一些, 比如改到2010年. 那么创建的License就是二年+60天后到期喽.