Articles

IncrediBuild 2.40 3.20 无限期试用的办法

IncrediBuild是一个很强的分布式编译工具,可以明显缩短大型项目编译时间,但是价格不菲。 对于我这样的穷人来说,只能使用试用版。Coordinator试用期限是30天,30天到了即使删掉再安装仍然不能使用。 给Xoreax写信申请延长试用期限,也没给答复,估计针对个人他们根本就不让延长试用。

令人郁闷的是,网上能找到的所有破解都是无效的。即使界面显示已经破解,但是时间一到,功能根本不正常。 根本不会把编译任务分发给别人,只能本机编译了。

本文则介绍了一种可以无限期试用的办法。

IncrediBuild 2.40的License有两个:CoordLicense.dat和AgentLicense.dat,分别位于Coordinator和Agent安装目录下。 这两个文件都是RSA数字签名过的,除非修改.exe文件中的解密密钥,否则没法伪造License文件。 但既然网上能找到的破解都无法正常使用,所以肯定不容易搞定。对于3.20应该也大同小异。

IncrediBuild在第一次运行的时候会向注册表中写入软件到期的时间。

2.40: HKCR\Interface\{E9B0227F-437C-4F7A-86D9-2676B83F359F}\ProxyStubClsid32 = {M1-M2-M3-T1-T2}
3.20: HKCR\Interface\{B7348B5D-B65D-4BF5-AF63-A3135249ACA7}\ProxyStubClsid32 = {M1-M2-M3-T1-T2}

卸载软件的时候并不会卸载这个注册表项,所以重新安装仍然不能使用。最简单的办法是卸载软件后手动删除这个注册表项,然后重新安装,就又可以继续试用。还有一种办法就是,我们定期更新上面这个注册表项的值,把时间往后推移。还好该软件时间算法并不复杂,很容易算出来。

比如说到期时间是2008.5.30日23:59:59,可以写两行简单的代码:

COleDateTime DateTime(2008, 5, 30, 23, 59, 59);
DATE Date = (DATE)DateTime;

此时Date的值是39598.999988425923 (0x37BA E7FFDF55E340)

T1:37BA
T2:E7FFDF55E340
M1 = 37 * BA * E7 * FF = 23EAEB06
M2 = DF * 55 = 4A0B
M3 = E3 * 40 = 38C0

这样我们就可以把注册表中上述键值改为:{23EAEB06-4A0B-38C0-37BA-E7FFDF55E340} 这样,软件到了2008.5.31 00:00:00才会过期。