首页
社区
课程
招聘
[原创]IncrediBuild 2.40 3.20 无限期试用的办法
发表于: 2008-5-11 04:00 22561

[原创]IncrediBuild 2.40 3.20 无限期试用的办法

2008-5-11 04:00
22561

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

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

IncrediBuild 2.40的License有2个文件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才会过期。


[招生]科锐逆向工程师培训(2024年11月15日实地,远程教学同时开班, 第51期)

收藏
免费 7
支持
分享
最新回复 (25)
雪    币: 1844
活跃值: (35)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
2
穷人就是有办法
2008-5-11 09:57
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
2008-5-11 12:02
0
雪    币: 208
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
那比如说,程序既然读取注册来获取时间限制,肯定会读取注册表啊,然后比较是否大于当前时间  是不是可以在时间比较这个地方修改使它到了时间也判断成没到时间呢?

小菜菜的天真想法.不知道对不对~~
2008-5-11 23:35
0
雪    币: 236
活跃值: (146)
能力值: ( LV9,RANK:170 )
在线值:
发帖
回帖
粉丝
5
可行,但问题是程序中这样的地方n多,每个.exe,每个.dll里面都有。所以目前网上找到的破解没有一个是完全的。
2008-5-12 00:12
0
雪    币: 256
活跃值: (753)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
6
更正一下,应该是修改:
[HKEY_CLASSES_ROOT\Interface\{B7348B5D-B65D-4BF5-AF63-A3135249ACA7}\ProxyStubClsid32]

@="{0F509010-1FF2-38C0-7D58-E5665E57E340}"

改为: @="{23EAEB06-4A0B-38C0-37BA-E7FFDF55E340}"

才是试用到2008-5-30
2008-5-12 23:11
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
7
那不是写个小程序就可以了?
怎么我的系统中找不到{B7348B5D-B65D-4BF5-AF63-A3135249ACA7}和{E9B0227F-437C-4F7A-86D9-2676B83F359F}?
2008-5-26 09:45
0
雪    币: 202
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
8
如果HOOK了读取时间的函数 应该可行吧
2008-5-26 16:09
0
雪    币: 3758
活跃值: (3337)
能力值: ( LV15,RANK:500 )
在线值:
发帖
回帖
粉丝
9
延长时间的*.ib_lic 可以用来分析Packet格式. 替换N/E后, 可以制造其他日期的Keygen (需要补丁公钥, 和其他跑不出来PQ的RSA算法程序一样).
不过确实难以申请到, 找有安全的企业邮箱的人帮忙不知道是否可以申请来.
这个文件的格式是
tagLicHeader = packet record
  LicenseFileVersion: Integer; // 1
  LicenseFileLength: Integer; // whole ib_lic file size
  ContentChecksum: Int64; // unsigned byte checksum of content
end;
content是密文, 用私钥进行RSA加密后得来, 明文的具体格式未知, 只知道是若干TLicensePacket的堆叠
PDWORD(Packet[0])^ = 2; //format version
Packet[16]开始的16个字节是UUID, 格式就是UUID并非字符串, 内容是 {713F4A0C-C92A-4C75-9366-9ED08B15BEF4}
接下来是个长度, 下面应该是各个Feathur的描述了, 不过没有试用lic, 分析太耗时间.
2008-7-6 01:49
0
雪    币: 256
活跃值: (753)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
10
用楼主的方法将就一下就可以了.效果不错,修改注册表后将两个相关服务关闭一下再重新启用,就是完全的30天了.



上传的附件:
2008-7-6 10:29
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
11
39598.999988425923 到 0x37BA E7FFDF55E340 是怎么转换的啊?
2008-7-7 11:33
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
12
有没有高手可以解释一下啊, 我用的是IB3.2
39598.999988425923 到 0x37BA E7FFDF55E340 是怎么转换的啊?
2008-7-7 12:06
0
雪    币: 256
活跃值: (753)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
13
浮点数的十六进制内存值表现形式,取内存值即可
2008-7-7 20:33
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
14
谢谢楼上的. 呵呵.
2008-7-8 09:37
0
雪    币: 237
活跃值: (29)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
15
请问可以把破解的软件给我发一份么,谢谢

teli_eurydice@163.com
2008-7-8 10:10
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
16
我也成功了, 各位果然是高手啊, 竟对原理如此了解, 佩服啊!

谢谢了!
2008-7-8 10:41
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
17
楼主强人
强人
2008-7-8 11:48
0
雪    币: 237
活跃值: (29)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
18
请问 c++ 代码怎么写啊,谢谢
2008-7-8 13:37
0
雪    币: 256
活跃值: (753)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
19

unsigned int i=0;

COleDateTime destTime;
destTime=COleDateTime::GetCurrentTime();

COleDateTime DateTime(destTime.GetYear(), destTime.GetMonth()+1, destTime.GetDay()-1, 23, 59, 59);
DATE Date = (DATE)DateTime;
i=*(unsigned int *)&Date;
2008-7-8 22:12
0
雪    币: 237
活跃值: (29)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
20
谢谢了,这个小弟写了,就是不知道怎么转成  0x37BA E7FFDF55E340 格式的啊,只得到了0x37BA E7FF,而且是倒过来的, 再次感谢

39598.999988425923 (0x37BA E7FFDF55E340)
2008-7-9 08:44
0
雪    币: 237
活跃值: (29)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
21
自己找到了

        CString strHexData;
        strHexData.Format("%I64x",f);

谢谢
2008-7-9 08:59
0
雪    币: 237
活跃值: (29)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
22
搞定,谢谢各位老大
2008-7-9 10:14
0
雪    币: 237
活跃值: (29)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
23
最新版本换了加密算法
2008-7-16 18:43
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
24
支持了,等待收藏!!!
2008-7-17 01:22
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
25
高手!真是高手啊,菜菜眼红的厉害!
2008-8-5 22:46
0
游客
登录 | 注册 方可回帖
返回
//