首页
社区
课程
招聘
[原创]windows 优化大师v7.76.7.905算法?
发表于: 2007-9-25 22:58 8111

[原创]windows 优化大师v7.76.7.905算法?

2007-9-25 22:58
8111
分析跟踪了几个小时,没搞懂什么算法,明码的“假”注册码倒跟踪了一堆,试着注册一个也不成功。看下面的代码片断:

005CB980  |.  55            push    ebp
005CB981  |.  68 CCB95C00   push    005CB9CC
005CB986  |.  64:FF30       push    dword ptr fs:[eax]
005CB989  |.  64:8920       mov     dword ptr fs:[eax], esp
005CB98C  |.  C705 00447400>mov     dword ptr [744400], 0AE          ;  先置 0AE 未注册标志
005CB996  |.  8D55 FC       lea     edx, dword ptr [ebp-4]
005CB999  |.  8BC6          mov     eax, esi
005CB99B  |.  E8 8CFDFFFF   call    005CB72C

经过分析,凡是[744400]返回的值为0AE,则说明未注册,返回0B2则说明已注册。

005CBCFC   .^\75 90         jnz     short 005CBC8E
005CBCFE   .  A1 68CE7200   mov     eax, dword ptr [72CE68]
005CBD03   .  8338 03       cmp     dword ptr [eax], 3
005CBD06      75 67         jnz     short 005CBD6F                   ;  这里不能跳
005CBD08   .  8D85 E4FEFFFF lea     eax, dword ptr [ebp-11C]
005CBD0E   .  50            push    eax
005CBD0F   .  B9 11000000   mov     ecx, 11
005CBD14   .  BA 13000000   mov     edx, 13
005CBD19   .  8B45 E4       mov     eax, dword ptr [ebp-1C]
005CBD1C   .  E8 1B9CE3FF   call    0040593C
005CBD21   .  8B85 E4FEFFFF mov     eax, dword ptr [ebp-11C]
005CBD27   .  50            push    eax
005CBD28   .  8D95 E0FEFFFF lea     edx, dword ptr [ebp-120]
005CBD2E   .  B8 54C05C00   mov     eax, 005CC054                    ;  ASCII "F4708EAF14D64A8272F7BF1F090ACB6C8E7A90CC94FBB437E68558A9B81E4BF7"
005CBD33   .  E8 F4F9FFFF   call    005CB72C
005CBD38   .  8B95 E0FEFFFF mov     edx, dword ptr [ebp-120]
005CBD3E   .  58            pop     eax
005CBD3F   .  E8 E49AE3FF   call    00405828
005CBD44      0F85 4D020000 jnz     005CBF97                         ;  这里不能跳
005CBD4A   .  8B45 FC       mov     eax, dword ptr [ebp-4]
005CBD4D   .  8B50 40       mov     edx, dword ptr [eax+40]
005CBD50   .  8B45 FC       mov     eax, dword ptr [ebp-4]
005CBD53   .  E8 BC040000   call    005CC214
005CBD58   .  84C0          test    al, al
005CBD5A   .  0F85 37020000 jnz     005CBF97
005CBD60   .  C705 00447400>mov     dword ptr [744400], 0B2          ;  应该执行到这里
005CBD6A   .  E9 28020000   jmp     005CBF97
005CBD6F   >  A1 68CE7200   mov     eax, dword ptr [72CE68]
005CBD74   .  8338 00       cmp     dword ptr [eax], 0
005CBD77      75 67         jnz     short 005CBDE0                   ;  这里不能跳
005CBD79   .  8D85 DCFEFFFF lea     eax, dword ptr [ebp-124]
005CBD7F   .  50            push    eax
005CBD80   .  B9 11000000   mov     ecx, 11
005CBD85   .  BA 13000000   mov     edx, 13
005CBD8A   .  8B45 E4       mov     eax, dword ptr [ebp-1C]
005CBD8D   .  E8 AA9BE3FF   call    0040593C
005CBD92   .  8B85 DCFEFFFF mov     eax, dword ptr [ebp-124]
005CBD98   .  50            push    eax
005CBD99   .  8D95 D8FEFFFF lea     edx, dword ptr [ebp-128]
005CBD9F   .  B8 A0C05C00   mov     eax, 005CC0A0                    ;  ASCII "D72F621FCACA1FD02770013EA56F334F17523F3C02D6BA204451715A23218974"
005CBDA4   .  E8 83F9FFFF   call    005CB72C
005CBDA9   .  8B95 D8FEFFFF mov     edx, dword ptr [ebp-128]
005CBDAF   .  58            pop     eax
005CBDB0   .  E8 739AE3FF   call    00405828
005CBDB5      0F85 DC010000 jnz     005CBF97                         ;  这里不能跳
005CBDBB   .  8B45 FC       mov     eax, dword ptr [ebp-4]
005CBDBE   .  8B50 40       mov     edx, dword ptr [eax+40]
005CBDC1   .  8B45 FC       mov     eax, dword ptr [ebp-4]
005CBDC4   .  E8 4B040000   call    005CC214
005CBDC9   .  84C0          test    al, al
005CBDCB   .  0F85 C6010000 jnz     005CBF97
005CBDD1   .  C705 00447400>mov     dword ptr [744400], 0B2          ;  应该执行到这里
005CBDDB   .  E9 B7010000   jmp     005CBF97
005CBDE0   >  A1 68CE7200   mov     eax, dword ptr [72CE68]
005CBDE5   .  8338 04       cmp     dword ptr [eax], 4
005CBDE8      75 67         jnz     short 005CBE51
005CBDEA   .  8D85 D4FEFFFF lea     eax, dword ptr [ebp-12C]
005CBDF0   .  50            push    eax
005CBDF1   .  B9 11000000   mov     ecx, 11
005CBDF6   .  BA 13000000   mov     edx, 13
005CBDFB   .  8B45 E4       mov     eax, dword ptr [ebp-1C]
005CBDFE   .  E8 399BE3FF   call    0040593C
005CBE03   .  8B85 D4FEFFFF mov     eax, dword ptr [ebp-12C]
005CBE09   .  50            push    eax
005CBE0A   .  8D95 D0FEFFFF lea     edx, dword ptr [ebp-130]
005CBE10   .  B8 ECC05C00   mov     eax, 005CC0EC                    ;  ASCII "8AA951263242025654DB5978E2CBD56564505B4D3B1B26823AB88A1442256B6C"
005CBE15   .  E8 12F9FFFF   call    005CB72C
005CBE1A   .  8B95 D0FEFFFF mov     edx, dword ptr [ebp-130]
005CBE20   .  58            pop     eax
005CBE21   .  E8 029AE3FF   call    00405828
005CBE26      0F85 6B010000 jnz     005CBF97
005CBE2C   .  8B45 FC       mov     eax, dword ptr [ebp-4]
005CBE2F   .  8B50 40       mov     edx, dword ptr [eax+40]
005CBE32   .  8B45 FC       mov     eax, dword ptr [ebp-4]
005CBE35   .  E8 DA030000   call    005CC214
005CBE3A   .  84C0          test    al, al
005CBE3C   .  0F85 55010000 jnz     005CBF97
005CBE42   .  C705 00447400>mov     dword ptr [744400], 0B2          ;  应该执行到这里
005CBE4C   .  E9 46010000   jmp     005CBF97
005CBE51   >  A1 68CE7200   mov     eax, dword ptr [72CE68]
005CBE56   .  8B00          mov     eax, dword ptr [eax]
005CBE58   .  83E8 06       sub     eax, 6
005CBE5B   .  74 08         je      short 005CBE65
005CBE5D   .  83C0 FD       add     eax, -3
005CBE60   .  83E8 02       sub     eax, 2
005CBE63   .  73 67         jnb     short 005CBECC
005CBE65   >  8D85 CCFEFFFF lea     eax, dword ptr [ebp-134]
005CBE6B   .  50            push    eax
005CBE6C   .  B9 11000000   mov     ecx, 11
005CBE71   .  BA 13000000   mov     edx, 13
005CBE76   .  8B45 E4       mov     eax, dword ptr [ebp-1C]
005CBE79   .  E8 BE9AE3FF   call    0040593C
005CBE7E   .  8B85 CCFEFFFF mov     eax, dword ptr [ebp-134]
005CBE84   .  50            push    eax
005CBE85   .  8D95 C8FEFFFF lea     edx, dword ptr [ebp-138]
005CBE8B   .  B8 38C15C00   mov     eax, 005CC138                    ;  ASCII "3F3DB35C1B6D495611E5C94AC0377A32260CF7F656092000112894F38907BAB7"
005CBE90   .  E8 97F8FFFF   call    005CB72C
005CBE95   .  8B95 C8FEFFFF mov     edx, dword ptr [ebp-138]
005CBE9B   .  58            pop     eax
005CBE9C   .  E8 8799E3FF   call    00405828
005CBEA1      0F85 F0000000 jnz     005CBF97                         ;  这里不能条
005CBEA7   .  8B45 FC       mov     eax, dword ptr [ebp-4]
005CBEAA   .  8B50 40       mov     edx, dword ptr [eax+40]
005CBEAD   .  8B45 FC       mov     eax, dword ptr [ebp-4]
005CBEB0   .  E8 5F030000   call    005CC214
005CBEB5   .  84C0          test    al, al
005CBEB7   .  0F85 DA000000 jnz     005CBF97
005CBEBD   .  C705 00447400>mov     dword ptr [744400], 0B2          ;  应该执行到这里
005CBEC7   .  E9 CB000000   jmp     005CBF97
005CBECC   >  8B45 F8       mov     eax, dword ptr [ebp-8]
005CBECF   .  83E8 02       sub     eax, 2                           ;  Switch (cases 2..5)
005CBED2   .  74 0D         je      short 005CBEE1
005CBED4   .  48            dec     eax
005CBED5   .  74 66         je      short 005CBF3D
005CBED7   .  83E8 02       sub     eax, 2
005CBEDA   .  74 61         je      short 005CBF3D
005CBEDC   .  E9 B6000000   jmp     005CBF97
005CBEE1   >  8D85 C4FEFFFF lea     eax, dword ptr [ebp-13C]         ;  Case 2 of switch 005CBECF
005CBEE7   .  50            push    eax
005CBEE8   .  B9 11000000   mov     ecx, 11
005CBEED   .  BA 13000000   mov     edx, 13
005CBEF2   .  8B45 E4       mov     eax, dword ptr [ebp-1C]
005CBEF5   .  E8 429AE3FF   call    0040593C
005CBEFA   .  8B85 C4FEFFFF mov     eax, dword ptr [ebp-13C]
005CBF00   .  50            push    eax
005CBF01   .  8D95 C0FEFFFF lea     edx, dword ptr [ebp-140]
005CBF07   .  B8 84C15C00   mov     eax, 005CC184                    ;  ASCII "8CEB8D8701D9C48F63FFAA85FE5C74DDD9BFA1ABE74BF552DF3029B0209BEA94"
005CBF0C   .  E8 1BF8FFFF   call    005CB72C
005CBF11   .  8B95 C0FEFFFF mov     edx, dword ptr [ebp-140]
005CBF17   .  58            pop     eax
005CBF18   .  E8 0B99E3FF   call    00405828
005CBF1D   .  75 78         jnz     short 005CBF97
005CBF1F   .  8B45 FC       mov     eax, dword ptr [ebp-4]
005CBF22   .  8B50 40       mov     edx, dword ptr [eax+40]
005CBF25   .  8B45 FC       mov     eax, dword ptr [ebp-4]
005CBF28   .  E8 E7020000   call    005CC214
005CBF2D   .  84C0          test    al, al
005CBF2F   .  75 66         jnz     short 005CBF97
005CBF31   .  C705 00447400>mov     dword ptr [744400], 0B2          ;  应该执行到这里
005CBF3B   .  EB 5A         jmp     short 005CBF97
005CBF3D   >  8D85 BCFEFFFF lea     eax, dword ptr [ebp-144]         ;  Cases 3,5 of switch 005CBECF
005CBF43   .  50            push    eax
005CBF44   .  B9 11000000   mov     ecx, 11
005CBF49   .  BA 13000000   mov     edx, 13
005CBF4E   .  8B45 E4       mov     eax, dword ptr [ebp-1C]
005CBF51   .  E8 E699E3FF   call    0040593C
005CBF56   .  8B85 BCFEFFFF mov     eax, dword ptr [ebp-144]
005CBF5C   .  50            push    eax
005CBF5D   .  8D95 B8FEFFFF lea     edx, dword ptr [ebp-148]
005CBF63   .  B8 D0C15C00   mov     eax, 005CC1D0                    ;  ASCII "64D9370F358B4A62B33B641413AAA34CAD398BFA82BF1539C4BB71C078F2E3BD"
005CBF68   .  E8 BFF7FFFF   call    005CB72C
005CBF6D   .  8B95 B8FEFFFF mov     edx, dword ptr [ebp-148]
005CBF73   .  58            pop     eax
005CBF74   .  E8 AF98E3FF   call    00405828
005CBF79   .  75 1C         jnz     short 005CBF97
005CBF7B   .  8B45 FC       mov     eax, dword ptr [ebp-4]
005CBF7E   .  8B50 40       mov     edx, dword ptr [eax+40]
005CBF81   .  8B45 FC       mov     eax, dword ptr [ebp-4]
005CBF84   .  E8 8B020000   call    005CC214
005CBF89   .  84C0          test    al, al
005CBF8B   .  75 0A         jnz     short 005CBF97
005CBF8D   .  C705 00447400>mov     dword ptr [744400], 0B2          ;  应该执行到这里
005CBF97   >  8D85 F0FEFFFF lea     eax, dword ptr [ebp-110]         ;  Default case of switch 005CBECF
005CBF9D   .  E8 7E3FFDFF   call    0059FF20
005CBFA2   .  33C0          xor     eax, eax
005CBFA4   .  5A            pop     edx
005CBFA5   .  59            pop     ecx

上面代码片断中不断比较诸如:cmp     dword ptr [eax], 4 或 cmp     dword ptr [eax], 3 或 cmp     dword ptr [eax], 0 等等,到底是比较使用的大师属于哪个版本还是????搞不明白。上面有几个 mov     dword ptr [744400], 0B2,只要有办法让它跳转到这里,爆破也能成功,但不知道使用过程中有无功能限制没完全测试。

另外一个爆破点就是直接让它不管什么情形始终跳转到分支语句(switch)中的默认支路,即修改前后对照:

修改前:
005CBA2A   .  E8 6D0FE4FF   call    0040C99C
005CBA2F   .  8B45 F4       mov     eax, dword ptr [ebp-C]
005CBA32   .  E8 A59CE3FF   call    004056DC
005CBA37      85C0          test    eax, eax                         ;  必须经过这里
005CBA39      0F84 58050000 je      005CBF97
005CBA3F      BB 01000000   mov     ebx, 1
005CBA44   .  33FF          xor     edi, edi
005CBA46   .  BE 13000000   mov     esi, 13
005CBA4B   >  8B45 F4       mov     eax, dword ptr [ebp-C]

修改后:
005CBA2A   .  E8 6D0FE4FF   call    0040C99C
005CBA2F   .  8B45 F4       mov     eax, dword ptr [ebp-C]
005CBA32   .  E8 A59CE3FF   call    004056DC
005CBA37      33C0          xor     eax, eax                         ;  必须经过这里
005CBA39      85C0          test    eax, eax
005CBA3B      E9 4D050000   jmp     005CBF8D
005CBA40      90            nop
005CBA41      90            nop
005CBA42      90            nop
005CBA43      90            nop
005CBA44   .  33FF          xor     edi, edi
005CBA46   .  BE 13000000   mov     esi, 13
005CBA4B   >  8B45 F4       mov     eax, dword ptr [ebp-C]

不知哪位高手能分析出注册算法,以便学习。
只要能够写出注册机的程序来注册的稳妥些,当然无法通过写注册机来注册或分析算法工作量特别大的除外。

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

收藏
免费 0
支持
分享
最新回复 (5)
雪    币: 47147
活跃值: (20460)
能力值: (RANK:350 )
在线值:
发帖
回帖
粉丝
2
到论坛精华集里找资料,好像是RSA算法
2007-9-25 23:07
0
雪    币: 424
活跃值: (10)
能力值: ( LV9,RANK:850 )
在线值:
发帖
回帖
粉丝
3
看到这个,我就想起娃娃[CCG]
2007-9-26 10:50
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
没看明白。要努力学习了
2007-10-7 20:16
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
wgq
5
我等菜鸟实在是看不懂撒
2007-11-14 21:53
0
雪    币: 3279
活跃值: (1997)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
大牛跟踪分析了几个小时,叫咱们小白怎么活呀?
2013-12-3 15:37
0
游客
登录 | 注册 方可回帖
返回
//