首页
社区
课程
招聘
简单的全国企业名录天王--名片天王 1.60(08.22)注册算法
发表于: 2006-11-9 14:58 6448

简单的全国企业名录天王--名片天王 1.60(08.22)注册算法

2006-11-9 14:58
6448
【破文标题】全国企业名录天王--名片天王 1.60(08.22)注册算法
【破文作者】XXNB
【作者邮箱】
【作者主页】http://free.ys168.com/?binbinbin7456
【破解工具】OD
【破解平台】xpsp2
【软件名称】全国企业名录天王--名片天王 1.60(08.22)
【软件大小】3978KB
【原版下载】http://www.newhua.com/soft/5256.htm
【保护方式】VB程序
【软件简介】全国企业名录天王----名片天王数据来源于全国企业数据大全,主要为2002年、2003、2004、2005年工商年检及注册数据,作者对相关数据进行了优

化整理,入选近70万家企业为具有一定规模的工商企业,可以保证本软件的数据准确率在95%以上。

【破解声明】向大侠们学习!!!只为学习!
------------------------------------------------------------------------
【破解过程】
------------------------------------------------------------------------
一个VB程序。简单的注册算法。献给喜欢的朋友!

1、下端__vbaVarMove。(可以Ctrl+N,找到然后F2下断)。按两次F9跳出注册窗口,随意输入假码(123456)。按确定中断在下面:

00470DAC   .  8B35 18104000 mov     esi, [<&MSVBVM60.__vbaVarMove>]  ;  MSVBVM60.__vbaVarMove  断在这句
00470DB2   .  8BD0          mov     edx, eax
00470DB4   .  8D8D FCFEFFFF lea     ecx, [ebp-104]
00470DBA   .  FFD6          call    esi                              ;  <&MSVBVM60.__vbaVarMove>
00470DBC   .  8B3D 84104000 mov     edi, [<&MSVBVM60.#632>]          ;  MSVBVM60.rtcMidCharVar
00470DC2   .  8D85 FCFEFFFF lea     eax, [ebp-104]
00470DC8   .  50            push    eax
00470DC9   .  8D8D 4CFFFFFF lea     ecx, [ebp-B4]
00470DCF   .  6A 02         push    2
00470DD1   .  8D95 ECFEFFFF lea     edx, [ebp-114]
00470DD7   .  51            push    ecx
00470DD8   .  52            push    edx
00470DD9   .  FFD7          call    edi                              ;  <&MSVBVM60.#632>

............中间代码省略..............

00470F32   .  8D8D 4CFFFFFF lea     ecx, [ebp-B4]                    ;  机器码又出现
00470F38   .  FF15 1C104000 call    [<&MSVBVM60.__vbaFreeVar>]       ;  MSVBVM60.__vbaFreeVar
00470F3E   .  8D4D DC       lea     ecx, [ebp-24]
00470F41   .  8D95 5CFFFFFF lea     edx, [ebp-A4]
00470F47   .  51            push    ecx
00470F48   .  52            push    edx
00470F49   .  C785 E4FEFFFF>mov     dword ptr [ebp-11C], 3
00470F53   .  C785 DCFEFFFF>mov     dword ptr [ebp-124], 2
00470F5D   .  FF15 50104000 call    [<&MSVBVM60.__vbaLenVar>]        ;  MSVBVM60.__vbaLenVar
00470F63   .  50            push    eax
00470F64   .  8D85 DCFEFFFF lea     eax, [ebp-124]
00470F6A   .  8D8D 4CFFFFFF lea     ecx, [ebp-B4]
00470F70   .  50            push    eax
00470F71   .  51            push    ecx
00470F72   .  FF15 04104000 call    [<&MSVBVM60.__vbaVarSub>]        ;  MSVBVM60.__vbaVarSub
00470F78   .  8BD0          mov     edx, eax
00470F7A   .  8D8D 3CFFFFFF lea     ecx, [ebp-C4]
00470F80   .  FFD6          call    esi
00470F82   .  8D95 3CFFFFFF lea     edx, [ebp-C4]
00470F88   .  8D45 DC       lea     eax, [ebp-24]
00470F8B   .  52            push    edx
00470F8C   .  6A 02         push    2
00470F8E   .  8D8D 2CFFFFFF lea     ecx, [ebp-D4]
00470F94   .  50            push    eax
00470F95   .  51            push    ecx
00470F96   .  FFD7          call    edi                              ;  这里得到“563025”
00470F98   .  8D95 2CFFFFFF lea     edx, [ebp-D4]
00470F9E   .  8D4D CC       lea     ecx, [ebp-34]
00470FA1   .  FFD6          call    esi
00470FA3   .  8D8D 3CFFFFFF lea     ecx, [ebp-C4]
00470FA9   .  FF15 1C104000 call    [<&MSVBVM60.__vbaFreeVar>]       ;  MSVBVM60.__vbaFreeVar
00470FAF   .  B9 F4684000   mov     ecx, 004068F4                    ;  “m”  ecx
00470FB4   .  B8 08000000   mov     eax, 8                           ;  “8”  eax
00470FB9   .  898D E4FEFFFF mov     [ebp-11C], ecx                   ;  变量赋值“m”
00470FBF   .  8985 DCFEFFFF mov     [ebp-124], eax                   ;  变量赋值“8”
00470FC5   .  898D D4FEFFFF mov     [ebp-12C], ecx                   ;  变量赋值“m”
00470FCB   .  8985 CCFEFFFF mov     [ebp-134], eax                   ;  变量赋值“8”
00470FD1   .  C785 C4FEFFFF>mov     dword ptr [ebp-13C], 004068FC    ;  变量赋值“b”
00470FDB   .  8B3D F4104000 mov     edi, [<&MSVBVM60.__vbaVarCat>]   ;  MSVBVM60.__vbaVarCat  这个mov把这个函数付给edi。方便下面调用。就是连接

函数
00470FE1   .  8985 BCFEFFFF mov     [ebp-144], eax                   ;  变量赋值“8”
00470FE7   .  8D55 AC       lea     edx, [ebp-54]
00470FEA   .  8D85 DCFEFFFF lea     eax, [ebp-124]                   ;  8到eax
00470FF0   .  52            push    edx
00470FF1   .  8D8D 5CFFFFFF lea     ecx, [ebp-A4]
00470FF7   .  50            push    eax
00470FF8   .  51            push    ecx
00470FF9   .  FFD7          call    edi                              ;  <&MSVBVM60.__vbaVarCat>
00470FFB   .  50            push    eax
00470FFC   .  8D55 CC       lea     edx, [ebp-34]
00470FFF   .  8D85 4CFFFFFF lea     eax, [ebp-B4]
00471005   .  52            push    edx
00471006   .  50            push    eax
00471007   .  FFD7          call    edi                              ;  这里得到的是“3m563025”  《《《《----(连接函数)
00471009   .  8D8D CCFEFFFF lea     ecx, [ebp-134]                   ;  这个【ebp-134】装的是上面的“8”
0047100F   .  50            push    eax
00471010   .  8D95 3CFFFFFF lea     edx, [ebp-C4]
00471016   .  51            push    ecx
00471017   .  52            push    edx
00471018   .  FFD7          call    edi                              ;                            《《《《----(连接函数)
0047101A   .  50            push    eax
0047101B   .  8D45 9C       lea     eax, [ebp-64]
0047101E   .  8D8D 2CFFFFFF lea     ecx, [ebp-D4]
00471024   .  50            push    eax
00471025   .  51            push    ecx
00471026   .  FFD7          call    edi                              ; 多了个m了                  《《《《----(连接函数)
00471028   .  50            push    eax
00471029   .  8D55 8C       lea     edx, [ebp-74]
0047102C   .  8D85 1CFFFFFF lea     eax, [ebp-E4]
00471032   .  52            push    edx
00471033   .  50            push    eax
00471034   .  FFD7          call    edi                              ;  多个8                     《《《《----(连接函数)
00471036   .  8D8D BCFEFFFF lea     ecx, [ebp-144]                   ;  m
0047103C   .  50            push    eax
0047103D   .  8D95 0CFFFFFF lea     edx, [ebp-F4]
00471043   .  51            push    ecx
00471044   .  52            push    edx
00471045   .  FFD7          call    edi                              ;                           《《《《----(连接函数)
00471047   .  8BD0          mov     edx, eax
00471049   .  8D4D BC       lea     ecx, [ebp-44]
0047104C   .  FFD6          call    esi
0047104E   .  8D85 1CFFFFFF lea     eax, [ebp-E4]
00471054   .  8D8D 2CFFFFFF lea     ecx, [ebp-D4]
0047105A   .  50            push    eax
0047105B   .  8D95 3CFFFFFF lea     edx, [ebp-C4]
00471061   .  51            push    ecx
00471062   .  8D85 4CFFFFFF lea     eax, [ebp-B4]
00471068   .  52            push    edx
00471069   .  8D8D 5CFFFFFF lea     ecx, [ebp-A4]
0047106F   .  50            push    eax
00471070   .  51            push    ecx
00471071   .  6A 05         push    5
00471073   .  FF15 28104000 call    [<&MSVBVM60.__vbaFreeVarList>]   ;  MSVBVM60.__vbaFreeVarList
00471079   .  8B13          mov     edx, [ebx]
0047107B   .  83C4 18       add     esp, 18
0047107E   .  53            push    ebx
0047107F   .  FF92 00030000 call    [edx+300]
00471085   .  50            push    eax
00471086   .  8D85 70FFFFFF lea     eax, [ebp-90]
0047108C   .  50            push    eax
0047108D   .  FF15 5C104000 call    [<&MSVBVM60.__vbaObjSet>]        ;  MSVBVM60.__vbaObjSet
00471093   .  8BF8          mov     edi, eax
00471095   .  8D95 78FFFFFF lea     edx, [ebp-88]
0047109B   .  52            push    edx
0047109C   .  57            push    edi
0047109D   .  8B0F          mov     ecx, [edi]
0047109F   .  FF91 A0000000 call    [ecx+A0]
004710A5   .  85C0          test    eax, eax
004710A7   .  DBE2          fclex
004710A9   .  7D 12         jge     short 004710BD
004710AB   .  68 A0000000   push    0A0
004710B0   .  68 98604000   push    00406098
004710B5   .  57            push    edi
004710B6   .  50            push    eax
004710B7   .  FF15 4C104000 call    [<&MSVBVM60.__vbaHresultCheckObj>;  MSVBVM60.__vbaHresultCheckObj
004710BD   >  8B85 78FFFFFF mov     eax, [ebp-88]                    ;  假码终于出现
004710C3   .  8D8D 4CFFFFFF lea     ecx, [ebp-B4]
004710C9   .  8985 64FFFFFF mov     [ebp-9C], eax
004710CF   .  8D85 5CFFFFFF lea     eax, [ebp-A4]
004710D5   .  50            push    eax
004710D6   .  51            push    ecx
004710D7   .  C785 78FFFFFF>mov     dword ptr [ebp-88], 0
004710E1   .  C785 5CFFFFFF>mov     dword ptr [ebp-A4], 8
004710EB   .  FF15 74104000 call    [<&MSVBVM60.#520>]               ;  MSVBVM60.rtcTrimVar
004710F1   .  8D95 4CFFFFFF lea     edx, [ebp-B4]
004710F7   .  8D45 BC       lea     eax, [ebp-44]
004710FA   .  52            push    edx
004710FB   .  50            push    eax
004710FC   .  FF15 9C104000 call    [<&MSVBVM60.__vbaVarTstEq>]      ;  MSVBVM60.__vbaVarTstEq
00471102   .  8D8D 70FFFFFF lea     ecx, [ebp-90]
00471108   .  8BF8          mov     edi, eax
0047110A   .  FF15 70114000 call    [<&MSVBVM60.__vbaFreeObj>]       ;  MSVBVM60.__vbaFreeObj
00471110   .  8D8D 4CFFFFFF lea     ecx, [ebp-B4]
00471116   .  8D95 5CFFFFFF lea     edx, [ebp-A4]
0047111C   .  51            push    ecx
0047111D   .  52            push    edx
0047111E   .  6A 02         push    2
00471120   .  FF15 28104000 call    [<&MSVBVM60.__vbaFreeVarList>]   ;  MSVBVM60.__vbaFreeVarList
00471126   .  83C4 0C       add     esp, 0C
00471129   .  66:85FF       test    di, di
0047112C      0F84 C0010000 je      004712F2                         ;  关键跳转!爆破点!

2、上面的代码中有一句是00470FDB  mov     edi, [<&MSVBVM60.__vbaVarCat>]。所以下面调用的call  edi就是调用变量连接函数

跟进这个call  edi可以找到如下关键代码:

660E5EC7    E8 DBAAFFFF     call    660E09A7                         ; 执行完这个call可以在堆栈看到上次连接变量后的结果
660E5ECC    8D75 F0         lea     esi, [ebp-10]
660E5ECF    0FB707          movzx   eax, word ptr [edi]
660E5ED2    23C3            and     eax, ebx
660E5ED4    83F8 0B         cmp     eax, 0B
660E5ED7    75 14           jnz     short 660E5EED
660E5ED9    66:8365 E0 00   and     word ptr [ebp-20], 0
660E5EDE    6A 08           push    8
660E5EE0    8D45 E0         lea     eax, [ebp-20]
660E5EE3    57              push    edi
660E5EE4    50              push    eax
660E5EE5    E8 BDAAFFFF     call    660E09A7
660E5EEA    8D7D E0         lea     edi, [ebp-20]
660E5EED    FF75 08         push    dword ptr [ebp+8]
660E5EF0    56              push    esi
660E5EF1    57              push    edi
660E5EF2    FF15 C8ED1066   call    [6610EDC8]                       ; (OLEAUT32.VarCat)用这个call来连接变量。F7跟进
660E5EF8    8B1D E0190066   mov     ebx, [<&OLEAUT32.#9>]            ; OLEAUT32.VariantClear
660E5EFE    8945 10         mov     [ebp+10], eax

3、跟进call    [6610EDC8]  ; (OLEAUT32.VarCat)这里我们可以看到Unicode在寄存器出现了。

7711BC4C >  8BFF            mov     edi, edi
7711BC4E    55              push    ebp
7711BC4F    8BEC            mov     ebp, esp
7711BC51    51              push    ecx
7711BC52    51              push    ecx
7711BC53    56              push    esi
7711BC54    57              push    edi
7711BC55    FF75 08         push    dword ptr [ebp+8]
7711BC58    8D45 FC         lea     eax, [ebp-4]
7711BC5B    50              push    eax
7711BC5C    8D45 08         lea     eax, [ebp+8]
7711BC5F    50              push    eax
7711BC60    E8 73000000     call    7711BCD8                         ; 这句执行后将得到上次连接变量后的结果,注意看堆栈
7711BC65    8B7D 10         mov     edi, [ebp+10]
7711BC68    8BF0            mov     esi, eax
7711BC6A    85F6            test    esi, esi
7711BC6C    7C 60           jl      short 7711BCCE
7711BC6E    FF75 0C         push    dword ptr [ebp+C]
7711BC71    8D45 F8         lea     eax, [ebp-8]
7711BC74    50              push    eax
7711BC75    8D45 0C         lea     eax, [ebp+C]
7711BC78    50              push    eax
7711BC79    E8 5A000000     call    7711BCD8
7711BC7E    8BF0            mov     esi, eax
7711BC80    85F6            test    esi, esi
7711BC82    0F8C C20A0100   jl      7712C74A
7711BC88    837D 0C FF      cmp     dword ptr [ebp+C], -1            ; 出现了“563025”
7711BC8C    0F84 C50A0100   je      7712C757
7711BC92    837D 08 FF      cmp     dword ptr [ebp+8], -1            ; 出现了“3m”
7711BC96    0F84 D90A0100   je      7712C775
7711BC9C    8D47 08         lea     eax, [edi+8]
7711BC9F    50              push    eax
7711BCA0    FF75 0C         push    dword ptr [ebp+C]                ; “563025”入栈
7711BCA3    FF75 08         push    dword ptr [ebp+8]                ; “3m”入栈
7711BCA6    E8 7648FEFF     call    VarBstrCat                       ; 连接函数!!
7711BCAB    FF75 F8         push    dword ptr [ebp-8]

4、下面的call  edi。依此类推!

【破解总结】
------------------------------------------------------------------------
如果你的

机器码为:"-856302534"

那么注册码为:3m563025m84b

或者:

比如机器码为:"-2142841837"

那么注册码为:3m1428418m27b

都是非常对称的,没有对机器码做任何运算,只是调整了下位置。还有增加了两个字符“m”和“b”。

软件一开始会读取C盘根目录下的名为qsystem的文件。

软件如果注册成功就会在C:\windows\system\目录下生成一个名为:lyodsq的文件,用记事本打开我们可以看到我们的真码。所以,我们只要爆破成功,它就会生成这个文件。

.版本 2

.子程序 _按钮1_被单击
.局部变量 sn1, 文本型
.局部变量 jiqima, 文本型
.局部变量 sn2, 文本型
.局部变量 sn3, 文本型
.局部变量 code, 文本型

jiqima = 编辑框1.内容
sn1 = 取文本中间 (jiqima, 3, 7)
sn2 = 取文本中间 (jiqima, 2, 1)
sn3 = 取文本中间 (jiqima, 11, 1)
code = “3m” + sn1 + “m” + sn2 + sn3 + “b”
编辑框2.内容 = code

[课程]Android-CTF解题方法汇总!

收藏
免费 7
支持
分享
最新回复 (4)
雪    币: 846
活跃值: (221)
能力值: (RANK:570 )
在线值:
发帖
回帖
粉丝
2
消灭0回复~~
2008-11-1 13:50
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
学习了
看来本人还得加对汇编的学习啊
2008-11-6 12:59
0
雪    币: 214
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
楼主怎么不尝试写一个注册机
2009-5-15 11:01
0
雪    币: 211
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
.版本 2

.子程序 _按钮1_被单击
.局部变量 sn1, 文本型
.局部变量 jiqima, 文本型
.局部变量 sn2, 文本型
.局部变量 sn3, 文本型
.局部变量 code, 文本型

jiqima = 编辑框1.内容
sn1 = 取文本中间 (jiqima, 3, 7)
sn2 = 取文本中间 (jiqima, 2, 1)
sn3 = 取文本中间 (jiqima, 11, 1)
code = “3m” + sn1 + “m” + sn2 + sn3 + “b”
编辑框2.内容 = code

这个就是注册机。
2009-5-15 16:05
0
游客
登录 | 注册 方可回帖
返回
//