cst 发表于 2008-1-16 11:13:32

Brainspawn-SpectR-Pro25101破解简析

软件: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-1609:16            62,976 uninst.exe
2008-01-1609:16         522,240 install.exe
2008-01-1609:16             9,877 setup.msg
2008-01-1609:16         203,342 script.bin            //通过分析,只有一部分代码可以看懂。
2008-01-1609:16               287 flist.bin
2008-01-1609:16    <DIR>          {app}
2008-01-1609:16         1,130,496 spectrpro.dll
2008-01-1609:16         761,856 focus.dll
2008-01-1609:16         1,097,728 spectr.dll
2008-01-1609:16         110,592 Register.exe   //这个是注册部分
2008-01-1609:16         955,717 SpectR-Pro.chm
2008-01-1609:16         307,200 spectrnsp.dll
7        经分析发现它是写注册表的操作        搜索注册,找出来,双击填写上自己的名称和假码。此时不确定长度。
User Name:goodbabyLicense 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                              ; 这里也可以下断
好了,到目前为止,一共下了四个断点。
0F0233CE0F0235CD0EFA34A10EFA347A
13        重新载入        0EFA347AF8
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:,2D            ; ds:=F0(为2D就不跳)-
0EFA3487    0F85 6A010000      jnz spectrpr.0EFA35F7
0EFA348D    807A 0B 2D         cmp byte ptr ds:,2D            ; ds:=BA(为2D就不跳)-
0EFA3491    0F85 60010000      jnz spectrpr.0EFA35F7
0EFA3497    807A 11 2D         cmp byte ptr ds:,2D             ; ds:=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


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

magic659117852 发表于 2008-1-16 12:52:06

/:001 对偶来说很新鲜学习

unpack 发表于 2008-1-16 15:03:14

不错的方法啊
虽然我还没有碰到过这样的情况(我破解的都很简单)
恩学习了   主要是方法
/:014

hnld 发表于 2008-1-18 10:42:05

看得我头痛,不过没关系以,下载程序自己操作,慢慢搞定,谢谢楼主。

147417956 发表于 2008-1-18 12:08:29

谢谢楼主的提供,对我们新手来说是不错的

xxdowns 发表于 2008-1-18 19:19:17

是一个好的思路,值得偶学习。
页: [1]
查看完整版本: Brainspawn-SpectR-Pro25101破解简析