首页
社区
课程
招聘
THrawN的CRACKME8算法简单分析
发表于: 2006-2-17 16:23 7360

THrawN的CRACKME8算法简单分析

2006-2-17 16:23
7360

【破文标题】THrawN的CRACKME8算法分析
【破文作者】逍遥风OCN
【破解工具】PEID。OD
【破解平台】WIN2K
根据,任意输入注册信息后的错误提示,用OD找到突破口。
并找到注册信息计算开始的地方。下断
00444AEC  /.  55            PUSH EBP                              
00444AED  |.  8BEC          MOV EBP,ESP
00444AEF  |.  81C4 E8FEFFFF ADD ESP,-118
00444AF5  |.  53            PUSH EBX
00444AF6  |.  56            PUSH ESI
00444AF7  |.  33C9          XOR ECX,ECX
00444AF9  |.  898D E8FEFFFF MOV DWORD PTR SS:[EBP-118],ECX
00444AFF  |.  898D ECFEFFFF MOV DWORD PTR SS:[EBP-114],ECX
00444B05  |.  894D FC       MOV DWORD PTR SS:[EBP-4],ECX
00444B08  |.  894D F8       MOV DWORD PTR SS:[EBP-8],ECX
00444B0B  |.  8BD8          MOV EBX,EAX
00444B0D  |.  33C0          XOR EAX,EAX
00444B0F  |.  55            PUSH EBP
00444B10  |.  68 DB4B4400   PUSH UP8.00444BDB
00444B15  |.  64:FF30       PUSH DWORD PTR FS:[EAX]
00444B18  |.  64:8920       MOV DWORD PTR FS:[EAX],ESP
00444B1B  |.  6A 00         PUSH 0                                   ; /pFileSystemNameSize = NULL
00444B1D  |.  6A 00         PUSH 0                                   ; |pFileSystemNameBuffer = NULL
00444B1F  |.  8D45 F0       LEA EAX,DWORD PTR SS:[EBP-10]            ; |
00444B22  |.  50            PUSH EAX                                 ; |pFileSystemFlags
00444B23  |.  8D45 F4       LEA EAX,DWORD PTR SS:[EBP-C]             ; |
00444B26  |.  50            PUSH EAX                                 ; |pMaxFilenameLength
00444B27  |.  56            PUSH ESI                                 ; |pVolumeSerialNumber
00444B28  |.  68 00010000   PUSH 100                                 ; |MaxVolumeNameSize = 100 (256.)
00444B2D  |.  8D85 F0FEFFFF LEA EAX,DWORD PTR SS:[EBP-110]           ; |
00444B33  |.  50            PUSH EAX                                 ; |VolumeNameBuffer
00444B34  |.  68 E84B4400   PUSH UP8.00444BE8                        ; |RootPathName = "c:\"
00444B39  |.  E8 2A15FCFF   CALL <JMP.&KERNEL32.GetVolumeInformation>; \GetVolumeInformationA
00444B3E  |.  8B06          MOV EAX,DWORD PTR DS:[ESI]               ;  取C盘序列号
00444B40  |.  03C0          ADD EAX,EAX                              ;  C盘序列号相加
00444B42  |.  8BF0          MOV ESI,EAX
00444B44  |.  8D95 ECFEFFFF LEA EDX,DWORD PTR SS:[EBP-114]
00444B4A  |.  8BC6          MOV EAX,ESI
00444B4C  |.  E8 9F2FFCFF   CALL UP8.00407AF0
00444B51  |.  8B95 ECFEFFFF MOV EDX,DWORD PTR SS:[EBP-114]
00444B57  |.  8B83 E8020000 MOV EAX,DWORD PTR DS:[EBX+2E8]           ;  c盘序列号转换成十进制
00444B5D  |.  E8 6EF2FDFF   CALL UP8.00423DD0
00444B62  |.  8D55 F8       LEA EDX,DWORD PTR SS:[EBP-8]
00444B65  |.  8B83 E8020000 MOV EAX,DWORD PTR DS:[EBX+2E8]
00444B6B  |.  E8 30F2FDFF   CALL UP8.00423DA0                        ;  取十进制数位数
00444B70  |.  8D45 FC       LEA EAX,DWORD PTR SS:[EBP-4]
00444B73  |.  8B55 F8       MOV EDX,DWORD PTR SS:[EBP-8]             ;  EBP-8=十进制数
00444B76  |.  8A52 03       MOV DL,BYTE PTR DS:[EDX+3]
00444B79  |.  E8 0AEFFBFF   CALL UP8.00403A88                        ;  注意
00444B7E  |.  8B45 FC       MOV EAX,DWORD PTR SS:[EBP-4]
00444B81  |.  E8 D62FFCFF   CALL UP8.00407B5C
00444B86  |.  F7EE          IMUL ESI                                 ;  16进制数乘以4
00444B88  |.  8D0440        LEA EAX,DWORD PTR DS:[EAX+EAX*2]
00444B8B  |.  A3 48784400   MOV DWORD PTR DS:[447848],EAX
00444B90  |.  8D95 E8FEFFFF LEA EDX,DWORD PTR SS:[EBP-118]
00444B96  |.  A1 48784400   MOV EAX,DWORD PTR DS:[447848]
00444B9B  |.  E8 502FFCFF   CALL UP8.00407AF0
00444BA0  |.  8B95 E8FEFFFF MOV EDX,DWORD PTR SS:[EBP-118]
00444BA6  |.  B8 4C784400   MOV EAX,UP8.0044784C
00444BAB  |.  E8 84EDFBFF   CALL UP8.00403934
00444BB0  |.  33C0          XOR EAX,EAX
00444BB2  |.  5A            POP EDX
00444BB3  |.  59            POP ECX
00444BB4  |.  59            POP ECX
00444BB5  |.  64:8910       MOV DWORD PTR FS:[EAX],EDX
00444BB8  |.  68 E24B4400   PUSH UP8.00444BE2
00444BBD  |>  8D85 E8FEFFFF LEA EAX,DWORD PTR SS:[EBP-118]
00444BC3  |.  BA 02000000   MOV EDX,2
00444BC8  |.  E8 37EDFBFF   CALL UP8.00403904
00444BCD  |.  8D45 F8       LEA EAX,DWORD PTR SS:[EBP-8]
00444BD0  |.  BA 02000000   MOV EDX,2
00444BD5  |.  E8 2AEDFBFF   CALL UP8.00403904
00444BDA  \.  C3            RETN
00444BDB   .- E9 98E7FBFF   JMP UP8.00403378
00444BE0   .^ EB DB         JMP SHORT UP8.00444BBD
00444BE2   .  5E            POP ESI
00444BE3   .  5B            POP EBX
00444BE4   .  8BE5          MOV ESP,EBP
00444BE6   .  5D            POP EBP
00444BE7   .  C3            RETN
00444BE8   .  63 3A 5C 00   ASCII "c:\",0
00444BEC  /.  55            PUSH EBP
00444BED  |.  8BEC          MOV EBP,ESP
00444BEF  |.  33C9          XOR ECX,ECX
00444BF1  |.  51            PUSH ECX
00444BF2  |.  51            PUSH ECX
00444BF3  |.  51            PUSH ECX
00444BF4  |.  51            PUSH ECX
00444BF5  |.  51            PUSH ECX
00444BF6  |.  51            PUSH ECX
00444BF7  |.  51            PUSH ECX
00444BF8  |.  53            PUSH EBX
00444BF9  |.  56            PUSH ESI
00444BFA  |.  57            PUSH EDI
00444BFB  |.  8BF8          MOV EDI,EAX
00444BFD  |.  33C0          XOR EAX,EAX
00444BFF  |.  55            PUSH EBP
00444C00  |.  68 EB4C4400   PUSH UP8.00444CEB
00444C05  |.  64:FF30       PUSH DWORD PTR FS:[EAX]
00444C08  |.  64:8920       MOV DWORD PTR FS:[EAX],ESP
00444C0B  |.  8D55 FC       LEA EDX,DWORD PTR SS:[EBP-4]
00444C0E  |.  8B87 D0020000 MOV EAX,DWORD PTR DS:[EDI+2D0]
00444C14  |.  E8 87F1FDFF   CALL UP8.00423DA0                        ;  取注册名位数
00444C19  |.  8B45 FC       MOV EAX,DWORD PTR SS:[EBP-4]             ;  EBP-4=注册名
00444C1C  |.  E8 3FEFFBFF   CALL UP8.00403B60
00444C21  |.  83F8 03       CMP EAX,3                                ;  注册名位数与3相比
00444C24  |.  7D 15         JGE SHORT UP8.00444C3B
00444C26  |.  6A 00         PUSH 0                                   ; /Arg1 = 00000000
00444C28  |.  66:8B0D FC4C4>MOV CX,WORD PTR DS:[444CFC]              ; |
00444C2F  |.  B2 01         MOV DL,1                                 ; |
00444C31  |.  B8 084D4400   MOV EAX,UP8.00444D08                     ; |name must be more than 2 characters!
00444C36  |.  E8 E5F9FFFF   CALL UP8.00444620                        ; \UP8.00444620
00444C3B  |>  8B45 FC       MOV EAX,DWORD PTR SS:[EBP-4]
00444C3E  |.  E8 1DEFFBFF   CALL UP8.00403B60                        ;  取注册名位数
00444C43  |.  8BD8          MOV EBX,EAX
00444C45  |.  85DB          TEST EBX,EBX
00444C47  |.  7E 29         JLE SHORT UP8.00444C72
00444C49  |.  BE 01000000   MOV ESI,1                                ;  使ESI=1
00444C4E  |>  8D4D E8       /LEA ECX,DWORD PTR SS:[EBP-18]
00444C51  |.  8B45 FC       |MOV EAX,DWORD PTR SS:[EBP-4]            ;  EBP-4=注册名
00444C54  |.  0FB64430 FF   |MOVZX EAX,BYTE PTR DS:[EAX+ESI-1]       ;  取每一位注册名的ASCII值
00444C59  |.  BA 02000000   |MOV EDX,2
00444C5E  |.  E8 BD2EFCFF   |CALL UP8.00407B20
00444C63  |.  8B55 E8       |MOV EDX,DWORD PTR SS:[EBP-18]           ;  EBP-18=注册名的ASCII值
00444C66  |.  8D45 F8       |LEA EAX,DWORD PTR SS:[EBP-8]
00444C69  |.  E8 FAEEFBFF   |CALL UP8.00403B68
00444C6E  |.  46            |INC ESI                                 ;  每计算一次ESI+1
00444C6F  |.  4B            |DEC EBX                                 ;  每计算一次EBX-1
00444C70  |.^ 75 DC         \JNZ SHORT UP8.00444C4E
00444C72  |>  8D55 F0       LEA EDX,DWORD PTR SS:[EBP-10]
00444C75  |.  A1 48784400   MOV EAX,DWORD PTR DS:[447848]
00444C7A  |.  E8 712EFCFF   CALL UP8.00407AF0                        ;  注意
00444C7F  |.  8D45 F4       LEA EAX,DWORD PTR SS:[EBP-C]
00444C82  |.  8B55 F8       MOV EDX,DWORD PTR SS:[EBP-8]
00444C85  |.  E8 EEECFBFF   CALL UP8.00403978                        ;  注意
00444C8A  |.  8D45 EC       LEA EAX,DWORD PTR SS:[EBP-14]
00444C8D  |.  8B4D F4       MOV ECX,DWORD PTR SS:[EBP-C]
00444C90  |.  8B55 F0       MOV EDX,DWORD PTR SS:[EBP-10]
00444C93  |.  E8 14EFFBFF   CALL UP8.00403BAC
00444C98  |.  8D55 E4       LEA EDX,DWORD PTR SS:[EBP-1C]
00444C9B  |.  8B87 D4020000 MOV EAX,DWORD PTR DS:[EDI+2D4]
00444CA1  |.  E8 FAF0FDFF   CALL UP8.00423DA0                        ;  取假码
00444CA6  |.  8B45 E4       MOV EAX,DWORD PTR SS:[EBP-1C]
00444CA9  |.  8B55 EC       MOV EDX,DWORD PTR SS:[EBP-14]
00444CAC  |.  E8 BFEFFBFF   CALL UP8.00403C70                        ;  真假注册码比较
00444CB1  |.  75 15         JNZ SHORT UP8.00444CC8
00444CB3  |.  6A 00         PUSH 0                                   ; /Arg1 = 00000000
00444CB5  |.  66:8B0D FC4C4>MOV CX,WORD PTR DS:[444CFC]              ; |
00444CBC  |.  B2 02         MOV DL,2                                 ; |
00444CBE  |.  B8 384D4400   MOV EAX,UP8.00444D38                     ; |correct!
00444CC3  |.  E8 58F9FFFF   CALL UP8.00444620                        ; \UP8.00444620

------------------------------------------------------------------------
算法总结:
1)取C盘序列号乘以2。结果转换成十进制取第4位的值。乘以“C盘序列号乘以2”设积为A
2)A+A*2的值转换成十进制。设结果为甲。
3)将注册名转换成对应的十六进制数。设为乙。 (注册名必须大于三位)
4)将甲乙合并既得注册码。
例:
注册名tcxb  
我的C盘序列号是84B9022F。84B9022F*2=972045E。转换成十进制158467166
972045E*4=25C81178。25C81178+25C81178*2=71583468 对应的“甲”是1901605992
      t-----74,c----63,x----78,b----62
      1901605992与74637862合并
所以,注册码:190160599274637862
附件里有CRACKME和我脱壳以后的CRACKME


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

上传的附件:
收藏
免费 7
支持
分享
最新回复 (12)
雪    币: 443
活跃值: (200)
能力值: ( LV9,RANK:1140 )
在线值:
发帖
回帖
粉丝
2
坐个沙发,支持!!!
2006-2-18 00:02
0
雪    币: 2256
活跃值: (941)
能力值: (RANK:2210 )
在线值:
发帖
回帖
粉丝
3
呵呵~多谢冷血兄
2006-2-18 13:44
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
老大啊,你发的那个输入后没有什么反应啊,不回出现什么提示框啊。
2006-2-18 19:12
0
雪    币: 424
活跃值: (3353)
能力值: ( LV6,RANK:90 )
在线值:
发帖
回帖
粉丝
5
支持!!!
2006-2-19 01:22
0
雪    币: 200
活跃值: (42)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
谢谢,学习中!
2006-2-19 10:46
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
7
看逍遥老大的算法,到这课有些疑问,所以冒S顶帖子问问

00444B79  |.  E8 0AEFFBFF   CALL UP8.00403A88                        ;  注意
00444B7E  |.  8B45 FC       MOV EAX,DWORD PTR SS:[EBP-4]
00444B81  |.  E8 D62FFCFF   CALL UP8.00407B5C
00444B86  |.  F7EE          IMUL ESI                                 ;  16进制数乘以4

这里乘以4是如何知道的?

还有我分析的时候,注册码就是用户名转换后连接,之后前面加了个0?和老大给出的算法不一样啊,照着大大的算法走了一次,没有得到正确的注册码,不知道哪里出问题了,求教,感激!
2007-2-12 18:54
0
雪    币: 201
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
8
值得好好学习,我支持支持支持^
2007-2-18 12:26
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
9
这篇是不是分析错了,大家给看看?
2007-2-18 13:25
0
雪    币: 3689
活跃值: (4247)
能力值: (RANK:215 )
在线值:
发帖
回帖
粉丝
10
00444B3E  |.  8B06          mov     eax, dword ptr [esi]             ;  序列号 堆栈 ds:[0012F038]=073F1C07
00444B40  |.  03C0          add     eax, eax                         ;  序列号+序列号
00444B42  |.  8BF0          mov     esi, eax
00444B44  |.  8D95 ECFEFFFF lea     edx, dword ptr [ebp-114]
00444B4A  |.  8BC6          mov     eax, esi
00444B4C  |.  E8 9F2FFCFF   call    00407AF0
00444B51  |.  8B95 ECFEFFFF mov     edx, dword ptr [ebp-114]         ;  转换为10进制(ASCII "243152910")
00444B57  |.  8B83 E8020000 mov     eax, dword ptr [ebx+2E8]         ;  ds:[00D51A9C]=00D54D9C
00444B5D  |.  E8 6EF2FDFF   call    00423DD0
00444B62  |.  8D55 F8       lea     edx, dword ptr [ebp-8]
00444B65  |.  8B83 E8020000 mov     eax, dword ptr [ebx+2E8]
00444B6B  |.  E8 30F2FDFF   call    00423DA0
00444B70  |.  8D45 FC       lea     eax, dword ptr [ebp-4]
00444B73  |.  8B55 F8       mov     edx, dword ptr [ebp-8]           ;  堆栈 ss:[0012EE7C]=00D51D78, (ASCII "243152910")
00444B76  |.  8A52 03       mov     dl, byte ptr [edx+3]             ;  取数据第4位字符HEX
00444B79  |.  E8 0AEFFBFF   call    00403A88
00444B7E  |.  8B45 FC       mov     eax, dword ptr [ebp-4]
00444B81  |.  E8 D62FFCFF   call    00407B5C
00444B86  |.  F7EE          imul    esi                              ;  eax=1(机器码第4位)*esi=0E7E380E  243152910的16进制数据
00444B88  |.  8D0440        lea     eax, dword ptr [eax+eax*2]       ;  eax+eax*2=0E7E380E  地址=2B7AA82A
00444B8B  |.  A3 48784400   mov     dword ptr [447848], eax
00444B90  |.  8D95 E8FEFFFF lea     edx, dword ptr [ebp-118]
00444B96  |.  A1 48784400   mov     eax, dword ptr [447848]          ;  ds:[00447848]=2B7AA82A  10进制729458730
00444B9B  |.  E8 502FFCFF   call    00407AF0
00444BA0  |.  8B95 E8FEFFFF mov     edx, dword ptr [ebp-118]
00444BA6  |.  B8 4C784400   mov     eax, 0044784C
00444BAB  |.  E8 84EDFBFF   call    00403934
00444BB0  |.  33C0          xor     eax, eax
00444BB2  |.  5A            pop     edx
00444BB3  |.  59            pop     ecx
00444BB4  |.  59            pop     ecx
00444BB5  |.  64:8910       mov     dword ptr fs:[eax], edx
00444BB8  |.  68 E24B4400   push    00444BE2
00444BBD  |>  8D85 E8FEFFFF lea     eax, dword ptr [ebp-118]
00444BC3  |.  BA 02000000   mov     edx, 2
00444BC8  |.  E8 37EDFBFF   call    00403904
00444BCD  |.  8D45 F8       lea     eax, dword ptr [ebp-8]
00444BD0  |.  BA 02000000   mov     edx, 2
00444BD5  |.  E8 2AEDFBFF   call    00403904
00444BDA  \.  C3            retn
00444BDB   .- E9 98E7FBFF   jmp     00403378
00444BE0   .^ EB DB         jmp     short 00444BBD
00444BE2   .  5E            pop     esi
00444BE3   .  5B            pop     ebx
00444BE4   .  8BE5          mov     esp, ebp
00444BE6   .  5D            pop     ebp
00444BE7   .  C3            retn
00444BE8   .  63 3A 5C 00   ascii   "c:\",0
00444BEC  /.  55            push    ebp
00444BED  |.  8BEC          mov     ebp, esp
00444BEF  |.  33C9          xor     ecx, ecx
00444BF1  |.  51            push    ecx
00444BF2  |.  51            push    ecx
00444BF3  |.  51            push    ecx
00444BF4  |.  51            push    ecx
00444BF5  |.  51            push    ecx
00444BF6  |.  51            push    ecx
00444BF7  |.  51            push    ecx
00444BF8  |.  53            push    ebx
00444BF9  |.  56            push    esi
00444BFA  |.  57            push    edi
00444BFB  |.  8BF8          mov     edi, eax
00444BFD  |.  33C0          xor     eax, eax
00444BFF  |.  55            push    ebp
00444C00  |.  68 EB4C4400   push    00444CEB
00444C05  |.  64:FF30       push    dword ptr fs:[eax]
00444C08  |.  64:8920       mov     dword ptr fs:[eax], esp
00444C0B  |.  8D55 FC       lea     edx, dword ptr [ebp-4]
00444C0E  |.  8B87 D0020000 mov     eax, dword ptr [edi+2D0]
00444C14  |.  E8 87F1FDFF   call    00423DA0
00444C19  |.  8B45 FC       mov     eax, dword ptr [ebp-4]
00444C1C  |.  E8 3FEFFBFF   call    00403B60
00444C21  |.  83F8 03       cmp     eax, 3
00444C24  |.  7D 15         jge     short 00444C3B
00444C26  |.  6A 00         push    0                                ; /Arg1 = 00000000
00444C28  |.  66:8B0D FC4C4>mov     cx, word ptr [444CFC]            ; |
00444C2F  |.  B2 01         mov     dl, 1                            ; |
00444C31  |.  B8 084D4400   mov     eax, 00444D08                    ; |ASCII "Name must be more than 2 characters!"
00444C36  |.  E8 E5F9FFFF   call    00444620                         ; \unpacked.00444620
00444C3B  |>  8B45 FC       mov     eax, dword ptr [ebp-4]
00444C3E  |.  E8 1DEFFBFF   call    00403B60
00444C43  |.  8BD8          mov     ebx, eax                         ;  用户名长度
00444C45  |.  85DB          test    ebx, ebx
00444C47  |.  7E 29         jle     short 00444C72
00444C49  |.  BE 01000000   mov     esi, 1
00444C4E  |>  8D4D E8       /lea     ecx, dword ptr [ebp-18]
00444C51  |.  8B45 FC       |mov     eax, dword ptr [ebp-4]          ;  用户名
00444C54  |.  0FB64430 FF   |movzx   eax, byte ptr [eax+esi-1]       ;  取用户名HEX
00444C59  |.  BA 02000000   |mov     edx, 2
00444C5E  |.  E8 BD2EFCFF   |call    00407B20
00444C63  |.  8B55 E8       |mov     edx, dword ptr [ebp-18]         ;  转换为字符
00444C66  |.  8D45 F8       |lea     eax, dword ptr [ebp-8]
00444C69  |.  E8 FAEEFBFF   |call    00403B68
00444C6E  |.  46            |inc     esi
00444C6F  |.  4B            |dec     ebx
00444C70  |.^ 75 DC         \jnz     short 00444C4E
00444C72  |>  8D55 F0       lea     edx, dword ptr [ebp-10]
00444C75  |.  A1 48784400   mov     eax, dword ptr [447848]          ;  00447848  2A A8 7A 2B  *?+? 序列号处理结果
00444C7A  |.  E8 712EFCFF   call    00407AF0
00444C7F  |.  8D45 F4       lea     eax, dword ptr [ebp-C]
00444C82  |.  8B55 F8       mov     edx, dword ptr [ebp-8]           ;  用户名HEX连接起来的字符串堆栈(ASCII "6368696E61")
00444C85  |.  E8 EEECFBFF   call    00403978
00444C8A  |.  8D45 EC       lea     eax, dword ptr [ebp-14]
00444C8D  |.  8B4D F4       mov     ecx, dword ptr [ebp-C]
00444C90  |.  8B55 F0       mov     edx, dword ptr [ebp-10]          ;  堆栈 ss:[0012F3FC]=00D51D4C, (ASCII "729458730")
00444C93  |.  E8 14EFFBFF   call    00403BAC
00444C98  |.  8D55 E4       lea     edx, dword ptr [ebp-1C]
00444C9B  |.  8B87 D4020000 mov     eax, dword ptr [edi+2D4]
00444CA1  |.  E8 FAF0FDFF   call    00423DA0
00444CA6  |.  8B45 E4       mov     eax, dword ptr [ebp-1C]
00444CA9  |.  8B55 EC       mov     edx, dword ptr [ebp-14]          ;  机器码跟用户名HEX连接起来作为注册码
堆栈 ss:[0012F3F8]=00D51E38, (ASCII "7294587306368696E61")
edx=00140608

===========================

delphi code

var
  VolumeName,FileSystemName:array[0..255]of char;
  size1,size2:cardinal;
  VolumeSerialNumber:DWORD;
  i:Integer;
  s1,s2,sn:String;
begin
  GetVolumeInformation('c:\',VolumeName,256,@VolumeSerialNumber,size1,size2,FileSystemName,256);
  s1:=inttostr(VolumeSerialNumber*2);
  s1:=inttostr(strtoint(s1)*strtoint(s1[4])*3);
  s2:=edit1.text;
  sn:='';
  for i:=1 to length(s2) do
  begin
     sn:=sn+inttohex(ord(s2[i]),2);
  end;
  edit2.text:=s1+sn;
end;
上传的附件:
2007-2-18 22:18
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
11
我跟出来的注册码就不是那两个连在一起?不过china老大的keygen算出来的正确,何解?
2007-2-19 09:08
0
雪    币: 3689
活跃值: (4247)
能力值: (RANK:215 )
在线值:
发帖
回帖
粉丝
12
你看看你前一段的内容,程序中用到的是16进制进行处理,最后转为了10进制。

算法就是我写的那样,再仔细看看。
2007-2-19 09:30
0
雪    币: 817
活跃值: (1927)
能力值: ( LV12,RANK:2670 )
在线值:
发帖
回帖
粉丝
13
支持逍遥风及ChinaABC
2007-2-19 15:43
0
游客
登录 | 注册 方可回帖
返回
//