首页
社区
课程
招聘
[原创]大名鼎鼎5.0注册流程分析
发表于: 2005-1-27 09:22 2896

[原创]大名鼎鼎5.0注册流程分析

2005-1-27 09:22
2896
标题:大名鼎鼎5.0注册流程分析

作者:jney2
日期:2005.1.26
声明:个人学习,交流经验,找出软件的软肋,希望作者在下一版本中有所改进!
观念:喜欢分析注册流程,极少算法分析。
工具:Ollydbg1.1 W32Dasm9b
平台:WinXP

注册版本和非注册版本的区别:基本没有什么功能上的限制,非注册版本有使用次数上的限制

启动软件,在注册窗口输入如下假码:
BBBBBBBB-BBBBBBBB-BBBBBBBB-BBBBBBBB
7878787878
软件重启验证。

软件是ASPack 2.12的壳,用stripper脱之,用W32Dasm9b反汇编,搜索“未注册”可找到如下:

* Referenced by a CALL at Address:
|:0065C708   
|
:0065A6B4 55                      push ebp
:0065A6B5 8BEC                    mov ebp, esp
:0065A6B7 33C9                    xor ecx, ecx
:0065A6B9 51                      push ecx
:0065A6BA 51                      push ecx
:0065A6BB 51                      push ecx
:0065A6BC 51                      push ecx
:0065A6BD 51                      push ecx
:0065A6BE 33C0                    xor eax, eax
:0065A6C0 55                      push ebp
:0065A6C1 68A2A76500              push 0065A7A2
:0065A6C6 64FF30                  push dword ptr fs:[eax]
:0065A6C9 648920                  mov dword ptr fs:[eax], esp
:0065A6CC E8CB6FFFFF              call 0065169C                                //关键CALL
:0065A6D1 84C0                    test al, al
:0065A6D3 0F8485000000            je 0065A75E                                   //跳走即为“[未注册]”
:0065A6D9 833D0442670000          cmp dword ptr [00674204], 00000000
:0065A6E0 743E                    je 0065A720
:0065A6E2 8D55F8                  lea edx, dword ptr [ebp-08]
:0065A6E5 A16CFF6600              mov eax, dword ptr [0066FF6C]
:0065A6EA 8B00                    mov eax, dword ptr [eax]
:0065A6EC E8835EE5FF              call 004B0574
:0065A6F1 FF75F8                  push [ebp-08]

* Possible StringData Ref from Code Obj ->" - ["
                                  |
:0065A6F4 68B8A76500              push 0065A7B8
:0065A6F9 FF3504426700            push dword ptr [00674204]
:0065A6FF 68C8A76500              push 0065A7C8
:0065A704 8D45FC                  lea eax, dword ptr [ebp-04]
:0065A707 BA04000000              mov edx, 00000004
:0065A70C E87FAFDAFF              call 00405690
:0065A711 8B55FC                  mov edx, dword ptr [ebp-04]
:0065A714 A1E8416700              mov eax, dword ptr [006741E8]
:0065A719 E8963FE3FF              call 0048E6B4
:0065A71E EB67                    jmp 0065A787

* Referenced by a (U)nconditional or (C)onditional Jump at Address:
|:0065A6E0(C)
|
:0065A720 8D55F0                  lea edx, dword ptr [ebp-10]
:0065A723 A16CFF6600              mov eax, dword ptr [0066FF6C]
:0065A728 8B00                    mov eax, dword ptr [eax]
:0065A72A E8455EE5FF              call 004B0574
:0065A72F FF75F0                  push [ebp-10]

* Possible StringData Ref from Code Obj ->" - ["
                                  |
:0065A732 68B8A76500              push 0065A7B8
:0065A737 FF3500426700            push dword ptr [00674200]
:0065A73D 68C8A76500              push 0065A7C8
:0065A742 8D45F4                  lea eax, dword ptr [ebp-0C]
:0065A745 BA04000000              mov edx, 00000004
:0065A74A E841AFDAFF              call 00405690
:0065A74F 8B55F4                  mov edx, dword ptr [ebp-0C]
:0065A752 A1E8416700              mov eax, dword ptr [006741E8]
:0065A757 E8583FE3FF              call 0048E6B4
:0065A75C EB29                    jmp 0065A787

* Referenced by a (U)nconditional or (C)onditional Jump at Address:
|:0065A6D3(C)
|
:0065A75E 8D55EC                  lea edx, dword ptr [ebp-14]
:0065A761 A16CFF6600              mov eax, dword ptr [0066FF6C]
:0065A766 8B00                    mov eax, dword ptr [eax]
:0065A768 E8075EE5FF              call 004B0574
:0065A76D 8D45EC                  lea eax, dword ptr [ebp-14]

* Possible StringData Ref from Code Obj ->" - [未注册]"
                                  |
:0065A770 BAD4A76500              mov edx, 0065A7D4
:0065A775 E85EAEDAFF              call 004055D8
:0065A77A 8B55EC                  mov edx, dword ptr [ebp-14]
:0065A77D A1E8416700              mov eax, dword ptr [006741E8]
:0065A782 E82D3FE3FF              call 0048E6B4

* Referenced by a (U)nconditional or (C)onditional Jump at Addresses:
|:0065A71E(U), :0065A75C(U)
|
:0065A787 33C0                    xor eax, eax
:0065A789 5A                      pop edx
:0065A78A 59                      pop ecx
:0065A78B 59                      pop ecx
:0065A78C 648910                  mov dword ptr fs:[eax], edx
:0065A78F 68A9A76500              push 0065A7A9

* Referenced by a (U)nconditional or (C)onditional Jump at Address:
|:0065A7A7(U)
|
:0065A794 8D45EC                  lea eax, dword ptr [ebp-14]
:0065A797 BA05000000              mov edx, 00000005
:0065A79C E883ABDAFF              call 00405324
:0065A7A1 C3                      ret

:0065A7A2 E9B1A3DAFF              jmp 00404B58
:0065A7A7 EBEB                    jmp 0065A794
:0065A7A9 8BE5                    mov esp, ebp
:0065A7AB 5D                      pop ebp
:0065A7AC C3                      ret

在Ollydbg中BP 65169C,重新载入,F9运行。在65169C断下,F8跟踪,仔细观察寄存器窗口。

0065169C  /$  55            PUSH EBP
0065169D  |.  8BEC          MOV EBP,ESP
0065169F  |.  6A 00         PUSH 0
006516A1  |.  53            PUSH EBX
006516A2  |.  33C0          XOR EAX,EAX
006516A4  |.  55            PUSH EBP
006516A5  |.  68 F3166500   PUSH _THINKCA.006516F3
006516AA  |.  64:FF30       PUSH DWORD PTR FS:[EAX]
006516AD  |.  64:8920       MOV DWORD PTR FS:[EAX],ESP
006516B0  |.  8D4D FC       LEA ECX,DWORD PTR SS:[EBP-4]
006516B3  |.  8B15 CC036700 MOV EDX,DWORD PTR DS:[6703CC]            ;  _THINKCA.006741EC
006516B9  |.  8B52 28       MOV EDX,DWORD PTR DS:[EDX+28]
006516BC  |.  A1 CC036700   MOV EAX,DWORD PTR DS:[6703CC]
006516C1  |.  8B40 2C       MOV EAX,DWORD PTR DS:[EAX+2C]
006516C4  |.  E8 2716EBFF   CALL _THINKCA.00502CF0
006516C9  |.  8B45 FC       MOV EAX,DWORD PTR SS:[EBP-4]              //执行完这条指令,EAX指向的便是真码。
006516CC  |.  8B15 CC036700 MOV EDX,DWORD PTR DS:[6703CC]            //在此可做出内存注册机。
006516D2  |.  8B52 30       MOV EDX,DWORD PTR DS:[EDX+30]
006516D5  |.  E8 4240DBFF   CALL _THINKCA.0040571C
006516DA  |.  0F94C3        SETE BL
006516DD  |.  33C0          XOR EAX,EAX
006516DF  |.  5A            POP EDX
006516E0  |.  59            POP ECX
006516E1  |.  59            POP ECX
006516E2  |.  64:8910       MOV DWORD PTR FS:[EAX],EDX
006516E5  |.  68 FA166500   PUSH _THINKCA.006516FA
006516EA  |>  8D45 FC       LEA EAX,DWORD PTR SS:[EBP-4]
006516ED  |.  E8 0E3CDBFF   CALL _THINKCA.00405300
006516F2  \.  C3            RETN
006516F3   .^ E9 6034DBFF   JMP _THINKCA.00404B58
006516F8   .^ EB F0         JMP SHORT _THINKCA.006516EA
006516FA   .  8BC3          MOV EAX,EBX
006516FC   .  5B            POP EBX
006516FD   .  59            POP ECX
006516FE   .  5D            POP EBP
006516FF   .  C3            RETN

我跟到的真码如下:
BBBBBBBB-BBBBBBBB-BBBBBBBB-BBBBBBBB
48479046

经分析,注册码没有保存在注册表中,而是保存数据库中。

总结:Crack难度:一般,ASPack的壳虽然有名气,但有很好的脱壳机,不加也罢。注册明码比较注定了Crack难度一般。

[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!

收藏
免费 0
支持
分享
最新回复 (0)
游客
登录 | 注册 方可回帖
返回
//