首页
论坛
课程
招聘
[调试逆向] [原创]Bullseye Coverage license破解笔记
2014-3-15 11:45 21882

[调试逆向] [原创]Bullseye Coverage license破解笔记

2014-3-15 11:45
21882
一个多周,茶不思饭不香,下班后除了做饭吃饭就是坐在电脑前读汇编代码,基本上每天凌晨1:00上床,反反复复看了大概上千行汇编代码,一闭上眼满脑子都是一条条汇编指令,经历多次惊喜,失望,再惊喜.再失望的起起落落,终于成功破解了这款商业软件的license.

Bullseye是一个测试代码覆盖率的工具, 作为一个专业的高级的自动化测试工程师^-^,对自己的测试效果作评估,Bullseye是很有效的工具.
http://www.bullseye.com/
这个是bullseye的主页, 据说上面的Evaluate链接是可以申请一个有效期为一个月的license的,于是我填了自己的公司邮箱,很天真地等了两天没有任何消息......

不高兴之下,决定弄个破解版在自己的电脑上跑跑
可能是因为个人很少使用,谁没事会去正规的测试自己的随意写的程序?所以在网上并没有找到合适的破解版或licnese Key.
怎么说哥也是密码学出身,小小的license Key,还难不到

Day1.
暴力破解
这个是最简单的破解方法,直接跳过license Key, 修改程序的二进制代码来跳过对license的检查.商业软件一般没有那么弱智,但是一些不成熟的软件确很容易通过把程序里的JZ/JNZ之类的直接改成JMP (eb) 来跳过检查。
于是,找来Olly,就可以开工了。
不得不提,Olly简直就是Hack的神器,导入程序后直接搜索所有的inter module call,在GetTextW的位置上下断点,然后F9开始调试,在licenseKey的输入框界面里粘贴任意字符,Olly会停在设置的断点上,然后费些精力跟踪程序的运行,尝试把可疑的条件跳转直接改称jmp, 经过反复几次试验,果然界面上提示"next->". 一阵狂喜!~然后点击下一步进行安装。一切那么顺利, 我都开始佩服我自己了~

Day2.
暴力破解第二波
让我意想不到的是,安装好的程序在运行的时候又会去检查licnese。。。。没有办法,故计重试,直接改这些安装的程序,又是一顿折腾,终于我需要用的几个程序可以运行起来了。看着Bullseye的GUI,我那个得意啊,写个程序来测测吧。结果不管我写怎样的程序,最后的结果都是100%Coverage,这不是萌我么,太黑了,这个安全机制坐的这么深

Day3.
BruteForce
我有点生气,于是想试试运气,咱来猜吧。网上有一些过期的license, 再加上之前跟踪license处理的过程,我初步断定license是24个字母或数字组成,每6个字母为一组,于是随手写了个python脚本,随机生成24字节的字符串,然后调用Bullseye自带的license Key检查工具来确认是否是有效的license。程序跑了一天一夜,大概跑了几百万个数据,结果一无所获。其实从key的长度上就应该可以推算出穷举是不现实的,不过有时候人总是会相信自己会有好运气,因为自己是宇宙的中心,哈哈

Day4,5
TEA对称加密算法
眼看暴力破解希望渺茫,哥作了一个重大决定,破解license Key生成算法!再一次开动Olly,一步一步跟踪,初步发现是
1. License Key的字符是从"0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"选出来
2. 每六个字符为一组,转化为一个32bit的
3. Key的长度可以是24个字符也可以是36个,这样最多会转化为6个32bit值
4. 每两个32bit值,会做32轮比较复杂的置换
5. 汇编代码里有四个32bit常量频繁出现在算法里0x499602d2, 0xbb40e64d, 0xf0e1d2c3, 0x3ade68b1,相信这四个值就是加密的密钥
6. 汇编代码本身嵌入了一个常量0xc6ef3720
这时候就要请教almighty的google了,直接搜索c6ef3720, tea算法直接跳了出来:Tiny Encryption Algorithm
这里有篇小论文是介绍这篇算法实现的http://www.cix.co.uk/~klockstone/tea.pdf基本思路也是Feistel置换
对比汇编代码,我一下子或然开朗,这正是Bullseye用的加密算法,于是我把那个找来的过期的license作了一下解密
2DvplG2MnQp22Zk7ek0E4dhp -> 0x10201,0x40034000,0x1e9,0
看到这样的结果,我当时就激动了,我当时是多么相信我离最终答案只有一步之遥....于是我跟踪阿跟踪阿跟踪阿,直到凌晨3点,依然没有跟出来.....商业软件的保护机制不容小觑阿。。。。

Day6
BruteForce second wave
我有点想放弃了,于是有开始了brute force,根据前两天的分析,一个24个字符的license经过解密后,第一个int值byte位从低到高依次代表license的年月日,第二个int的最高byte代表类型,还有剩下的几位会跟一些常量值比较。我把一些位的值固定下来,选了大概40个bit,开始穷举测试,结果区区40个bit,我的破电脑也handle不了,一个晚上下来,跑了大概1%,真沮丧。。。其实我这时候应该意识到,24个字符的license可能完全被弃用了。

Day7,8
继续跟踪

Day9
黄天不负苦心人啊
经过这么多天的苦心经营,终于在一次数据条整之后,安装界面上再次出现了”next->“

整理了一下Bullseye的解密过程大致是这样的,首先最新版的Bullseye的license是36个字符
1. 6个为一组,License key-> int, '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ' 依次对应着0-61的值,然后6个字符对应的6个值按照62进制计算出一个int来
2. 对这6组int,作一次TEA加密
3. 置换某些对int里上半16bit或下16bit的值
4. 在作一次TEA加密
5. 对解密的最终结果作检查,确保license的日期,类型,ID,以及其他某些值的范围

最后用生成的没有用户限制的license成功安装了bullseye,而且一切正常。
搞定,收工~!

本贴纯属炫耀,尽供本人消遣,请勿用于商业用途,谢谢

[公告]名企招聘!

上传的附件:
收藏
点赞1
打赏
分享
最新回复 (14)
雪    币: 248
活跃值: 活跃值 (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
wkxq 活跃值 2014-3-15 17:57
2
0
不错赞一个
雪    币: 114
活跃值: 活跃值 (62)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
qqlinhai 活跃值 2014-3-15 19:52
3
0
思路、文笔不错,+赞一个。
雪    币: 39
活跃值: 活跃值 (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
随风逝去 活跃值 2014-3-16 09:46
4
0
佩服楼主的决心,感谢提供思路工大家学习。
雪    币: 0
活跃值: 活跃值 (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
leisiyu 活跃值 2014-11-28 19:55
5
0
能否求一个安装包和序列号啊
雪    币: 253
活跃值: 活跃值 (441)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
方向感 活跃值 2014-11-29 12:46
6
0
安装包官网有:
http://www.bullseye.com/cgi-bin/download.sh
雪    币: 0
活跃值: 活跃值 (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
leisiyu 活跃值 2014-12-1 09:55
7
0
破解版序列号才是关键
雪    币: 253
活跃值: 活跃值 (441)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
方向感 活跃值 2014-12-1 11:27
8
0
楼主pm一个序列号吧
雪    币: 0
活跃值: 活跃值 (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
luolunmail 活跃值 2015-1-19 18:01
9
0
求楼主赐验证码一枚
QQ:532833858
雪    币: 206
活跃值: 活跃值 (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
wilo 活跃值 2015-3-26 10:00
10
0
深有感触!
雪    币: 223
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
红日one 活跃值 2019-3-27 13:19
11
0
求楼主赐我一个license吧
QQ:1556379519
雪    币: 195
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
newstu1987 活跃值 2019-11-13 16:07
12
0
非常好,我自己写了个注册机
雪    币:
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
wx_juggler 活跃值 2020-4-8 11:02
13
0
求楼主赐一枚 linux 64 平台下version 8.16 的验证吗。1024721066@qq.com
雪    币: 70
活跃值: 活跃值 (299)
能力值: ( LV8,RANK:130 )
在线值:
发帖
回帖
粉丝
killpy 活跃值 2 2020-4-8 22:20
14
0
雪    币:
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
wx_浮萍_159 活跃值 2021-2-23 18:38
15
0

求楼主赐验证码一枚 304962051@qq.com

最后于 2021-2-23 18:38 被wx_浮萍_159编辑 ,原因:
游客
登录 | 注册 方可回帖
返回