飘云阁

 找回密码
 加入我们

QQ登录

只需一步,快速开始

查看: 3288|回复: 5

[原创] Brainspawn-SpectR-Pro25101破解简析

[复制链接]

该用户从未签到

发表于 2008-1-16 11:13:32 | 显示全部楼层 |阅读模式
软件:Brainspawn-SpectR-Pro25101
大小:1.94 MB (2,040,865 字节)
MD5:E12A9BA08BA5D8080F59085A639FEF1F
工具:OD
声明:仅为学习
下载:http://www.brainspawn.com/
过程:
内容        备注
1        下载、杀毒并安装        安装过程中要求注册
2        输入用户和假码        默认为demo
根据经验,此注册信息将可能写入到系统的某个位置,有可能是文件内,有可能是注册表。
3        输入任意用户和假码注册、提示不成功        Inno制作的安装包
提示:You must enter a valid registration key.  Enter DEMO for the User Name to install the DEMO version.
4        取消或以demo方式安装,去试用软件        需要宿主软件才能使用
安装目录:C:\Program Files\brainspawn\SpectR-Pro
软件限制:This software is unregistered and will function for 3 minutes.
5        试用了解软件限制,以方便爆破,但今天我们追码        还得回到安装包
根据经验,有可能将注册信息写到了注册表,而判断的正误的依据有可能在安装包中的某个文件里或是代码。
6        提取安装包、观察并分析提取的文件       
2008-01-16  09:16            62,976 uninst.exe
2008-01-16  09:16           522,240 install.exe
2008-01-16  09:16             9,877 setup.msg
2008-01-16  09:16           203,342 script.bin              //通过分析,只有一部分代码可以看懂。
2008-01-16  09:16               287 flist.bin
2008-01-16  09:16    <DIR>          {app}
2008-01-16  09:16         1,130,496 spectrpro.dll
2008-01-16  09:16           761,856 focus.dll
2008-01-16  09:16         1,097,728 spectr.dll
2008-01-16  09:16           110,592 Register.exe   //这个是注册部分
2008-01-16  09:16           955,717 SpectR-Pro.chm
2008-01-16  09:16           307,200 spectrnsp.dll
7        经分析发现它是写注册表的操作        搜索注册,找出来,双击填写上自己的名称和假码。此时不确定长度。
User Name:goodbaby  License Key:11111111111111111111111       
8        OD转入宿主软件,加载spectrpro.dll        右键查看此模块,ctrl+n(搜索当前模块中的标签)
安装时:用到RegSetValueExA
加载时:用到RegQueryValueExA  //取出设定的值,此函数下断
9        下断点,重新加载软件       
0F0233CE    8B1D 04D0020F        mov ebx,dword ptr ds:[<&ADVAPI32.RegQue>; ADVAPI32.RegQueryValueExA
10        断下,在此处:0F0233CE        单步跟,发现这段确实是从表中取值,此步只为证明这个思路。
11        下断,在此处:0F0235CD        因为会用到这个:strncmp,字串比较。
关于这个strncmp函数,请看看资料。
到目前为止一共设了两个断点,再细看两个是不是离得不是很远,这下得更仔细的去观察下。
0F0233CE    8B1D 04D0020F        mov ebx,dword ptr ds:[<&ADVAPI32.RegQue>; ADVAPI32.RegQueryValueExA
取值后,到下面来对比,习惯上的思维。
0F0235CD    FF15 F0D0020F        call dword ptr ds:[<&MSVCRT.strncmp>]   ; MSVCRT.strncmp
12        再下断,在strncmp上面的一些位置随意下        但建议在跳转和CALL的前一条下断。如果看跳转的颜色习惯就用单击的方式直接观察。
0EFA34A1    55                   push ebp                                ; 开始,下断
也可以在它的上面第一个跳转的前一条下断
0EFA347A    83F9 17              cmp ecx,17                              ; 这里也可以下断
好了,到目前为止,一共下了四个断点。
0F0233CE  0F0235CD  0EFA34A1  0EFA347A
13        重新载入        0EFA347A  F8
0EFA347A    83F9 17              cmp ecx,17                              ; 真码字串23位
双击ecx修改为23就不跳
0EFA347A    83F9 17              cmp ecx,17                              ; 真码字串23位
0EFA347D    0F85 74010000        jnz spectrpr.0EFA35F7
0EFA3483    807A 05 2D           cmp byte ptr ds:[edx+5],2D              ; ds:[0037DF9D]=F0(为2D就不跳)-
0EFA3487    0F85 6A010000        jnz spectrpr.0EFA35F7
0EFA348D    807A 0B 2D           cmp byte ptr ds:[edx+B],2D              ; ds:[0037DFA3]=BA(为2D就不跳)-
0EFA3491    0F85 60010000        jnz spectrpr.0EFA35F7
0EFA3497    807A 11 2D           cmp byte ptr ds:[edx+11],2D             ; ds:[0037DFA9]=F0(为2D就不跳)-
0EFA349B    0F85 56010000        jnz spectrpr.0EFA35F7
0EFA34A1    55                   push ebp                                ; 开始
说明:23位中必须有3条横线。
假想:
因23-3=20
所以,有20个非-的字串可参考输入
如:11111-22222-33333-44444
这样安排刚好有三条小横线,其它之和为20。
这只是假想,我们继续,我决定将注册表中的License:11111-22222-33333-44444
这样来试一次,结果如下:
一直到0F0235CD处,请看:真假字串的比较
0012F960   0012F990  |s1 = "70CFFFABC25B07C865FC1EDBAD47B1CB"
0012F964   0012F978  |s2 = "11111222223333344444"
0012F968   00000014  \maxlen = 14 (20.)
出现这个后,我立即按假想对位输入
11111-22222-33333-44444
70CFF-FABC2-5B07C-865FC  多出来的-1EDBA-D47B1CB
将70CFF-FABC2-5B07C-865FC直接埴入注册表中的License:70CFF-FABC2-5B07C-865FC
导出结果:
Windows Registry Editor Version 5.00

[HKEY_CURRENT_USER\Software\brainspawn\SpectR-Pro]
"License"="70CFF-FABC2-5B07C-865FC"
"Name"="goodbaby"
14        OD重新加载        还是重复刚才的步骤跟踪,哈哈,结果是成功。
15        总结
软件安装包一般可以提取,有些不能。
提取目的是分析以获得更多信息。
这样也绿色,如果不用虚拟机。
它的dll文件从注册表中取值(RegQueryValueExA)进行判断(strncmp)是否为正确的注册许可。
破解时可以胡思乱想,结合经验可以快速的破解,不一定要死记硬背。
为了不浪费青春,可以不用一条一条的跟,因为它不是非要一条一条的分析才破得了的。
关键是了解加密的思路与应对的方法。
OD的操作要非常熟悉。
同时要利用辅助工具计算或是获得信息。
水平有限,请批评指正。谢谢大家,以此文与同水平的朋友们共勉。

Brainspawn-SpectR-Pro25101破解简析.rar

6.88 KB, 下载次数: 1, 下载积分: 飘云币 -2 枚

网页文档方便阅读

PYG19周年生日快乐!

该用户从未签到

发表于 2008-1-16 12:52:06 | 显示全部楼层
/:001 对偶来说很新鲜  学习
PYG19周年生日快乐!

该用户从未签到

发表于 2008-1-16 15:03:14 | 显示全部楼层
不错的方法啊
虽然我还没有碰到过这样的情况(我破解的都很简单)
恩  学习了   主要是方法
/:014
PYG19周年生日快乐!

该用户从未签到

发表于 2008-1-18 10:42:05 | 显示全部楼层
看得我头痛,不过没关系以,下载程序自己操作,慢慢搞定,谢谢楼主。
PYG19周年生日快乐!

该用户从未签到

发表于 2008-1-18 12:08:29 | 显示全部楼层
谢谢楼主的提供,对我们新手来说是不错的
PYG19周年生日快乐!

该用户从未签到

发表于 2008-1-18 19:19:17 | 显示全部楼层
是一个好的思路,值得偶学习。
PYG19周年生日快乐!
您需要登录后才可以回帖 登录 | 加入我们

本版积分规则

快速回复 返回顶部 返回列表