首页
社区
课程
招聘
[旧帖] [原创]Bullseye Coverage完美破解 0.00雪花
发表于: 2016-2-4 21:03 6033

[旧帖] [原创]Bullseye Coverage完美破解 0.00雪花

2016-2-4 21:03
6033
http://bbs.pediy.com/showthread.php?t=185614首先 为 bullseye coverage 做个广告:
     这是一款用来检查代码执行覆盖率的软件,支持函数级别,分支级别的检查,并且有很好的可视化支持,让你一目了然的了解你所写的代码被执行的情况。如果你在写自动化测试或者单元测试的话,这个工作可以很好的帮助你定位你的用例覆盖度。

但是问题来了,这是一款商业软件,$800 一年的使用费,有平台和人数限制。价格不算贵,最主要的不是钱的问题,而是这家公司根本不给中国地区提供试用版!!!! 大家有兴趣的可以到www.bullseye.com/evaluate去申请一下试用版,你就知道做为一名中国人,内心受到多大的冲击了
    本来我想申请个试用版,如果用的过程中感觉用处足够大,并且很方便使用,就直接买入这款软件,但是苦于申请不到试用版,我试着使用国外的VPN,或者请国外的朋友帮忙申请试用,都没有成功,无奈之下,只能百度一下看看能不能找到好心人发的license key了。在百度里,我发现了一位仁兄的作品:http://bbs.pediy.com/showthread.php?t=185614 ,我试着联系这位仁兄,想弄一个license用用,但是由于PEDIY的非正式会员,无法给这位兄台发邮件,但至少这个帖子它给我指引了一个方向,就是自己破解!

     充分参考了http://bbs.pediy.com/showthread.php?t=185614 里面所提到的所有信息之后,我下载了一个OLLyDBG,开始了破解之旅。 在这里,再次感谢 rodent !!!
     在这里我再次说明一下,现在最新版本的bullseyecoverage的版本是8.9.87,它的安装包从官网就可以直接下载。该软件的安装过程中就要求输入License,否则连安装都没有办法进行。因此整个破解过程就是在这个安装包上进行的。如图所示: 
按照rodent的说法,它给出的截图里也给了一个不完整的license key--->"4xqWB7122dR51DfJTK3itKTv2l5M953JkAZ8",我就想偷个懒,在他的基础上直接使用电脑爆力计算还剩下的七位字符串,进而生成完整的license key.为此我还专门写了一个碰撞工具,跑了一夜,没有成功,但是这次尝试,我却有了意外的收获:
4 x q W B 7 1 2 2 d R 5 1 D f J T K 3 i t K T v 2 l 5 M 9 Q 4 C 6 i V O                                                                                                                                                                                                                                                                                                                                                                                                                                                       
                                                                                                                                                                                                      
4 x q W B 7 1 2 2 d R 5 1 D f J T K 3 i t K T v 2 l 5 M 9 G 4 7 m 0 c R                                                                                                                                                                                                                                                                                                                                                                                                                                                       
                                                                                                                                                                                                          
4 x q W B 7 1 2 2 d R 5 1 D f J T K 3 i t K T v 2 l 5 M 9 0 1 2 y g M Z                                                                                                                                                                                                                                                                                                                                                                                                                                                       
                                                                                                                                                                                                           
4 x q W B 7 1 2 2 d R 5 1 D f J T K 3 i t K T v 2 l 5 M 9 r 0 h N 1 H G                                                                                                                                                                                                                                                                                                                                                                                                                                                       
                                                                                                                                                                                                         
4 x q W B 7 1 2 2 d R 5 1 D f J T K 3 i t K T v 2 l 5 M 9 c 2 p A F Q p                                                                                                                                                                                                                                                                                                                                                                                                                                                       
                                                                                                                                                                                                          
4 x q W B 7 1 2 2 d R 5 1 D f J T K 3 i t K T v 2 l 5 M 9 3 3 7 6 k Z P                                                                                                                                                                                                                                                                                                                                                                                                                                                       
                                                                                                                                                                                                          
4 x q W B 7 1 2 2 d R 5 1 D f J T K 3 i t K T v 2 l 5 M 9 g 3 g E w c p                                                                                                                                                                                                                                                                                                                                                                                                                                                       
                                                                                                                                                                                                          
4 x q W B 7 1 2 2 d R 5 1 D f J T K 3 i t K T v 2 l 5 M 9 w 4 G a P Z c
碰撞出的这些license 虽然不成功,但是它们也并非是一般的"Invalide license", 而是“license version too new". 看到这个信息,相信每一个人都会想,离成功很接近了。因为只需要调整一下就能把这个version搞过去了。可事实上,却并非想象的这么简单。因为你不了解它内部的生成机制的情况下,想调整version谈何容易。这时我坚定了信心,读一读它的汇编代码吧,看看它到底是怎么计算license的。
下面,就是开始DEBUG之后,个人的一些总结吧:

首先,该license key是36位字符串,且是有意义的字符,仅在如下字符串中出现的字符0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ 其次,该字符串是经过TEA加密过后生成的,于是我尝试着找了几次断定,都不能准确的定位到TEA解密的地方。后来想到0xc6ef3720这个magic number,于是使用OLLYDBG搜索了一下这个常量,果然给力的找到了TEA解密的位置,剩下的事儿就是读了。

经过仔细研读之后,将36位license字符串经过TEA解密过程说明如下:(由于之前rodent说得不够详细,这里补充说明一下)
1. 先将36个字符串按照从先到后的次序分成六组,六个一组。
2. 将每个字符串在basestring   "0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"中出现的次序(0-61)以62进位的方式生成整数。pseudo code 如下:
intvalue = 0;
 for(int i = 0 ; i < 6; i++)
{
     intvalue = intvalue * 62 + char index

再明白些,假设分组后的一组字符串为: C1C2C3C4C5C6, 在basestring中出现的次序为i1,i2,i3,i4,i5,i6;最终生成的整数以G来代表,则G = (((((i1*62+i2)*62+i3)*62+i4)*62+i5)*62+i6
这样,六组字符串成生的六个整数分别为:G1,G2,G3,G4,G5,G6
2. 因为标准的TEA加密,解密算法都是以两个整数做为输入,四个KEY做为输出的。BullseyeCoverage是将G1,G2一组做TEA解密,G3,G4一组做TEA解密,G5,G6一组做TEA解密的。所以可以发现在汇编代码里会调用三次同样的函数。这还没算完。第一轮TEA解密之后,数据还不能直接使用,还要进行一次数字调整。
3.数字调整是这样的,假设上述TEA解密之后的六个整数变为G1',G2',G3',G4',G5',G6',假设每个整数的16进制表示为:0x12345678,为了表述方便,定义0x12为第一字节,0x34为第二字节,0x56第三字节,0x78为第四字节。为了保护商业软件的知识产权,这里就不详细介绍数字调整的具体方式了。
4.数字调整之后,又对G1“,G2”     G3“,G4”,    G5“, G6”进行一轮TEA解秘。这时生成的六个整数G1''', G2''',   G3''', G4''', G5''', G6'''就是用来表述license具体含义的数字了。

5,G1'''的第一字节代码商业软件的类型:是维护版还是正式版。 剩下的就是代表license截止日期的日(第二字节),月(第三字节),年(第四字节)了。
      其他几个整数里的每个字节都有些特定的含义:比如 license的平台(windows,linux,macos, HPUX, IRIX等) 比如licese ID, 以200000开始的一个数,当然也有上限。比如license 许可的用户数等。
  同样出于对商业软件知识产权的保护,我不在这里说详述其他几个字节的具体含义。但是可以透露的是,你完全可以在汇编代码中得到所有我没有告诉你的详细信息。 

6.  经过详细的研读分析之后,我自己写了一个KeyGen用来生成指定要求的license.可以给各位看官show一下:
 
生成key之后,用来安装,给大家看看安装截图:
, 
当然,按照惯例,给自己用的license 一定要足够霸气,请上眼:

声明: 本帖子纯粹是以技术交流为目的,本人也并未以商业应用为目的。仅以此向bullseye 公司不向中国大陆地区开放试用版软件发起抗议。

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

上传的附件:
收藏
免费 1
支持
分享
最新回复 (2)
雪    币: 2317
活跃值: (71)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
那么能否分享一下keygen呢?
2016-2-8 15:30
0
雪    币: 116
活跃值: (205)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
很抱歉,出于对商业软件知识版权的保护目的,我不能把keygen公开共享给你。因为有了这个keygen,就可以用更便宜的价格出售这款软件了,所以不能给你。但是如果你想要个license的话,我倒是可以送你一个授权给单个用户,特定平台的,有效期为三个月的license key. 如果你需要的话,联系我吧。
2016-2-12 21:24
0
游客
登录 | 注册 方可回帖
返回
//