飘云阁

 找回密码
 加入我们

QQ登录

只需一步,快速开始

查看: 2939|回复: 7

象棋桥V2.1算法分析!

[复制链接]

该用户从未签到

发表于 2005-7-4 16:55:49 | 显示全部楼层 |阅读模式
软件名称:象棋桥V2.1
作者:[PYG]brightsm
使用工具:OD,PEID
操作系统:win2k
l软件下载地址:http://xibuden.vicp.net/pyg.rar

下断点:
用OD载入CCbriage主程序。
在主线程窗口下按CTRL+N,可以看到些程序用了USER32.messageboxa这个系统API来弹出错误信息。
按ALT+E切到模块窗口,选中user32.dll这个模块,双击,查看此模块,再按CTRL+N,弹出此模块的函数表,输入MESSAGEBOXA,光标跑到这个函数的上面,双击此函数,按F2下断点!
按F9运行这个程序,在主窗口中有个“注册”的按扭,点此按扭,会出现注册的窗口,在用户名中填入“brightsm”,注册码中填入“CCB21R-80671”,程序到弹出错误信息时被断下!
按CTRL+F9(功能是运行到一个子程序的最后一行,中间有断点则会停在断点处,再按一下F8,程序就会执行一行代码,返回到上级调用的程序里面,这个用的很多,希望兄弟们要牢记),F8回到CCbriage的程序空间,可以看到,上一行就是弹出错误消息的地方,在上一行按F2下断,并清除在user32.dll中下的断点。

按上一下F8,使程序运行一行,按两下CTRL+F9,再按一下F8,光标会跑到调用这个错误信息的上一个程序区域里面!向上看一行,就是调用出错信息的CALL。

0051E5D5   .  8B0D A4655300    mov ecx,dword ptr ds:[5365A4]            ;  CCBridge.00546B7C
0051E5DB   .  8B89 58050000    mov ecx,dword ptr ds:[ecx+558]
0051E5E1   .  8D45 DC          lea eax,dword ptr ss:[ebp-24]
0051E5E4   .  BA 10E75100      mov edx,CCBridge.0051E710                ;  ASCII "mailto:CCBridge@telekbird.com.cn?subject="
0051E5E9   .  E8 2E59EEFF      call CCBridge.00403F1C
0051E5EE   .  8B45 DC          mov eax,dword ptr ss:[ebp-24]
0051E5F1   .  E8 9256F6FF      call CCBridge.00483C88
0051E5F6   .  EB 22            jmp short CCBridge.0051E61A
0051E5F8   >  6A 10            push 10
0051E5FA   .  8B0D A4655300    mov ecx,dword ptr ds:[5365A4]            ;  CCBridge.00546B7C
0051E600   .  8B89 4C020000    mov ecx,dword ptr ds:[ecx+24C]
0051E606   .  8B15 A4655300    mov edx,dword ptr ds:[5365A4]            ;  CCBridge.00546B7C
0051E60C   .  8B92 48020000    mov edx,dword ptr ds:[edx+248]
0051E612   .  8B45 FC          mov eax,dword ptr ss:[ebp-4]
0051E615   .  E8 6232FEFF      call CCBridge.0050187C                        光标跑到这儿,这就是调用出错子程序的CALL,向上看就是程序注册的区域了!




使用用户名:brightsm
注册码:CCB21R-80671 进行注册

向上看:


0051E39A   .  E8 7D5CF1FF      call CCBridge.0043401C
0051E39F   .  8B45 E8          mov eax,dword ptr ss:[ebp-18]            ;  取得用户名!
0051E3A2   .  8D55 F4          lea edx,dword ptr ss:[ebp-C]
0051E3A5   .  E8 42A5EEFF      call CCBridge.004088EC
0051E3AA   .  B3 01            mov bl,1
0051E3AC   .  8B45 F4          mov eax,dword ptr ss:[ebp-C]
0051E3AF   .  E8 1C5BEEFF      call CCBridge.00403ED0                   ;  取用户名的长度!
0051E3B4   .  83F8 0C          cmp eax,0C
0051E3B7   .  75 60            jnz short CCBridge.0051E419
0051E3B9   .  8D45 F0          lea eax,dword ptr ss:[ebp-10]
0051E3BC   .  8B55 F4          mov edx,dword ptr ss:[ebp-C]
0051E3BF   .  E8 2459EEFF      call CCBridge.00403CE8                   ;  取最后5位
0051E3C4   .  8D45 F0          lea eax,dword ptr ss:[ebp-10]
0051E3C7   .  B9 07000000      mov ecx,7
0051E3CC   .  BA 01000000      mov edx,1
0051E3D1   .  E8 425DEEFF      call CCBridge.00404118                   ;  取最后5位
0051E3D6   .  8D45 F4          lea eax,dword ptr ss:[ebp-C]
0051E3D9   .  B9 05000000      mov ecx,5
0051E3DE   .  BA 08000000      mov edx,8
0051E3E3   .  E8 305DEEFF      call CCBridge.00404118                   ;  取前7位
0051E3E8   .  8B45 F4          mov eax,dword ptr ss:[ebp-C]
0051E3EB   .  BA 70E65100      mov edx,CCBridge.0051E670                ;  ASCII "CCB21R-"
0051E3F0   .  E8 EB5BEEFF      call CCBridge.00403FE0                   ;  前7位是否是ccb21r-?
0051E3F5   .  75 1E            jnz short CCBridge.0051E415                 如果不是则进行下一步判断。
0051E3F7   .  8D55 E4          lea edx,dword ptr ss:[ebp-1C]
0051E3FA   .  8B45 FC          mov eax,dword ptr ss:[ebp-4]
0051E3FD   .  8B80 70090000    mov eax,dword ptr ds:[eax+970]           ;  输入参数“用户名”,用于计算最后五位注册码!
0051E403   .  E8 5462F6FF      call CCBridge.0048465C                   ;  计算注册码,最后五位注册码计算的关键CALL

0051E408   .  8B55 E4          mov edx,dword ptr ss:[ebp-1C]
0051E40B   .  8B45 F0          mov eax,dword ptr ss:[ebp-10]
0051E40E   .  E8 CD5BEEFF      call CCBridge.00403FE0                   ;  最后的5位是否是80672?
0051E413   .  74 06            je short CCBridge.0051E41B


0051E415   > |33DB             xor ebx,ebx
0051E417   . |EB 02            jmp short CCBridge.0051E41B
0051E419   > |33DB             xor ebx,ebx
0051E41B   > \84DB             test bl,bl
0051E41D      0F84 11010000    je CCBridge.0051E534
0051E423   .  8B45 FC          mov eax,dword ptr ss:[ebp-4]
0051E426   .  C680 84090000 01 mov byte ptr ds:[eax+984],1
0051E42D   .  8B45 FC          mov eax,dword ptr ss:[ebp-4]
0051E430   .  C680 85090000 00 mov byte ptr ds:[eax+985],0
0051E437   .  8B45 FC          mov eax,dword ptr ss:[ebp-4]
0051E43A   .  8B80 40090000    mov eax,dword ptr ds:[eax+940]
0051E440   .  33D2             xor edx,edx
0051E442   .  E8 7597F3FF      call CCBridge.00457BBC
0051E447   .  8B45 FC          mov eax,dword ptr ss:[ebp-4]
0051E44A   .  8B80 B0050000    mov eax,dword ptr ds:[eax+5B0]
0051E450   .  33D2             xor edx,edx
0051E452   .  E8 DD5AF1FF      call CCBridge.00433F34
0051E457   .  8B15 A4655300    mov edx,dword ptr ds:[5365A4]            ;  CCBridge.00546B7C
0051E45D   .  8B92 3C020000    mov edx,dword ptr ds:[edx+23C]
0051E463   .  8B45 FC          mov eax,dword ptr ss:[ebp-4]
0051E466   .  E8 E15BF1FF      call CCBridge.0043404C
0051E46B   .  8B45 FC          mov eax,dword ptr ss:[ebp-4]
0051E46E   .  8B80 A0050000    mov eax,dword ptr ds:[eax+5A0]
0051E474   .  33D2             xor edx,edx
0051E476   .  E8 B963F2FF      call CCBridge.00444834
0051E47B   .  8B45 FC          mov eax,dword ptr ss:[ebp-4]
0051E47E   .  8B80 A4050000    mov eax,dword ptr ds:[eax+5A4]
0051E484   .  33D2             xor edx,edx
0051E486   .  E8 A963F2FF      call CCBridge.00444834
0051E48B   .  B2 01            mov dl,1
0051E48D   .  A1 40434500      mov eax,dword ptr ds:[454340]
0051E492   .  E8 A95FF3FF      call CCBridge.00454440
0051E497   .  8945 F8          mov dword ptr ss:[ebp-8],eax
0051E49A   .  BA 01000080      mov edx,80000001
0051E49F   .  8B45 F8          mov eax,dword ptr ss:[ebp-8]
0051E4A2   .  E8 3960F3FF      call CCBridge.004544E0
0051E4A7   .  33C0             xor eax,eax
0051E4A9   .  55               push ebp
0051E4AA   .  68 F3E45100      push CCBridge.0051E4F3
0051E4AF   .  64:FF30          push dword ptr fs:[eax]
0051E4B2   .  64:8920          mov dword ptr fs:[eax],esp
0051E4B5   .  B1 01            mov cl,1
0051E4B7   .  BA 80E65100      mov edx,CCBridge.0051E680                ;  ASCII "Software\ShengYu\CCBridge"
0051E4BC   .  8B45 F8          mov eax,dword ptr ss:[ebp-8]
0051E4BF   .  E8 8060F3FF      call CCBridge.00454544
0051E4C4   .  8B45 FC          mov eax,dword ptr ss:[ebp-4]
0051E4C7   .  8B88 70090000    mov ecx,dword ptr ds:[eax+970]
0051E4CD   .  BA A4E65100      mov edx,CCBridge.0051E6A4                ;  ASCII "RegistryName"
0051E4D2   .  8B45 F8          mov eax,dword ptr ss:[ebp-8]
0051E4D5   .  E8 0662F3FF      call CCBridge.004546E0
0051E4DA   .  B1 01            mov cl,1
0051E4DC   .  BA BCE65100      mov edx,CCBridge.0051E6BC                ;  ASCII "Reg21OK"
0051E4E1   .  8B45 F8          mov eax,dword ptr ss:[ebp-8]
0051E4E4   .  E8 DF62F3FF      call CCBridge.004547C8
0051E4E9   .  33C0             xor eax,eax
0051E4EB   .  5A               pop edx
0051E4EC   .  59               pop ecx
0051E4ED   .  59               pop ecx
0051E4EE   .  64:8910          mov dword ptr fs:[eax],edx
0051E4F1   .  EB 0A            jmp short CCBridge.0051E4FD
0051E4F3   .^ E9 3C4FEEFF      jmp CCBridge.00403434
0051E4F8   .  E8 9352EEFF      call CCBridge.00403790
0051E4FD   >  8B45 F8          mov eax,dword ptr ss:[ebp-8]
0051E500   .  E8 AB5FF3FF      call CCBridge.004544B0
0051E505   .  8B45 F8          mov eax,dword ptr ss:[ebp-8]
0051E508   .  E8 7B4AEEFF      call CCBridge.00402F88
0051E50D   .  6A 40            push 40
0051E50F   .  8B0D A4655300    mov ecx,dword ptr ds:[5365A4]            ;  CCBridge.00546B7C
0051E515   .  8B89 44020000    mov ecx,dword ptr ds:[ecx+244]
0051E51B   .  8B15 A4655300    mov edx,dword ptr ds:[5365A4]            ;  CCBridge.00546B7C
0051E521   .  8B92 40020000    mov edx,dword ptr ds:[edx+240]
0051E527   .  8B45 FC          mov eax,dword ptr ss:[ebp-4]
0051E52A   .  E8 4D33FEFF      call CCBridge.0050187C
0051E52F   .  E9 E6000000      jmp CCBridge.0051E61A
0051E534   >  8D55 E0          lea edx,dword ptr ss:[ebp-20]
0051E537   .  A1 3C915400      mov eax,dword ptr ds:[54913C]
0051E53C   .  8B80 E0020000    mov eax,dword ptr ds:[eax+2E0]
0051E542   .  E8 D55AF1FF      call CCBridge.0043401C
0051E547   .  8B45 E0          mov eax,dword ptr ss:[ebp-20]
0051E54A   .  8D55 F4          lea edx,dword ptr ss:[ebp-C]
0051E54D   .  E8 9AA3EEFF      call CCBridge.004088EC
0051E552   .  B3 01            mov bl,1
0051E554   .  8B45 F4          mov eax,dword ptr ss:[ebp-C]
0051E557   .  E8 7459EEFF      call CCBridge.00403ED0
0051E55C   .  83F8 0E          cmp eax,0E
0051E55F   .  75 47            jnz short CCBridge.0051E5A8
0051E561   .  8B45 F4          mov eax,dword ptr ss:[ebp-C]
0051E564   .  BA CCE65100      mov edx,CCBridge.0051E6CC                ;  ASCII "CCB2000R-SHARE"  注册码判断是否为CCB2000R-SHARE,是则不能注册!试用的注册码!
0051E569   .  E8 725AEEFF      call CCBridge.00403FE0
0051E56E   .  75 02            jnz short CCBridge.0051E572
0051E570   .  33DB             xor ebx,ebx
0051E572   >  8B45 F4          mov eax,dword ptr ss:[ebp-C]
0051E575   .  BA E4E65100      mov edx,CCBridge.0051E6E4                ;  
0051E57A   .  E8 615AEEFF      call CCBridge.00403FE0                      ASCII "CCB2000R-12345"注册码判断是否为CCB2000R-12345,是则不能注册!
0051E57F   .  75 02            jnz short CCBridge.0051E583                 不是则跳出“到用主页上获得升级码!”的提示信息!
0051E581   .  33DB             xor ebx,ebx
0051E583   >  8D45 F4          lea eax,dword ptr ss:[ebp-C]
0051E586   .  B9 05000000      mov ecx,5
0051E58B   .  BA 0A000000      mov edx,0A
0051E590   .  E8 835BEEFF      call CCBridge.00404118
0051E595   .  8B45 F4          mov eax,dword ptr ss:[ebp-C]
0051E598   .  BA FCE65100      mov edx,CCBridge.0051E6FC                ;  ASCII "CCB2000R-"
0051E59D   .  E8 3E5AEEFF      call CCBridge.00403FE0
0051E5A2      74 06            je short CCBridge.0051E5AA
0051E5A4   .  33DB             xor ebx,ebx
0051E5A6   .  EB 02            jmp short CCBridge.0051E5AA
0051E5A8   >  33DB             xor ebx,ebx
0051E5AA   >  84DB             test bl,bl
0051E5AC      74 4A            je short CCBridge.0051E5F8
0051E5AE   .  6A 34            push 34
0051E5B0   .  8B0D A4655300    mov ecx,dword ptr ds:[5365A4]            ;  CCBridge.00546B7C
0051E5B6   .  8B89 54050000    mov ecx,dword ptr ds:[ecx+554]
0051E5BC   .  8B15 A4655300    mov edx,dword ptr ds:[5365A4]            ;  CCBridge.00546B7C
0051E5C2   .  8B92 50050000    mov edx,dword ptr ds:[edx+550]
0051E5C8   .  8B45 FC          mov eax,dword ptr ss:[ebp-4]
0051E5CB   .  E8 AC32FEFF      call CCBridge.0050187C                   ;  
0051E5D0   .  83F8 06          cmp eax,6
0051E5D3      75 45            jnz short CCBridge.0051E61A
0051E5D5   .  8B0D A4655300    mov ecx,dword ptr ds:[5365A4]            ;  CCBridge.00546B7C
0051E5DB   .  8B89 58050000    mov ecx,dword ptr ds:[ecx+558]
0051E5E1   .  8D45 DC          lea eax,dword ptr ss:[ebp-24]
0051E5E4   .  BA 10E75100      mov edx,CCBridge.0051E710                ;  ASCII "mailto:CCBridge@telekbird.com.cn?subject="
0051E5E9   .  E8 2E59EEFF      call CCBridge.00403F1C
0051E5EE   .  8B45 DC          mov eax,dword ptr ss:[ebp-24]
0051E5F1   .  E8 9256F6FF      call CCBridge.00483C88
0051E5F6   .  EB 22            jmp short CCBridge.0051E61A
0051E5F8   >  6A 10            push 10
0051E5FA   .  8B0D A4655300    mov ecx,dword ptr ds:[5365A4]            ;  CCBridge.00546B7C
0051E600   .  8B89 4C020000    mov ecx,dword ptr ds:[ecx+24C]
0051E606   .  8B15 A4655300    mov edx,dword ptr ds:[5365A4]            ;  CCBridge.00546B7C
0051E60C   .  8B92 48020000    mov edx,dword ptr ds:[edx+248]
0051E612   .  8B45 FC          mov eax,dword ptr ss:[ebp-4]
0051E615   .  E8 6232FEFF      call CCBridge.0050187C                      调用出错信息对话框。
0051E61A   >  33C0             xor eax,eax
0051E61C   .  5A               pop edx
0051E61D   .  59               pop ecx
0051E61E   .  59               pop ecx
0051E61F   .  64:8910          mov dword ptr fs:[eax],edx
0051E622   .  68 61E65100      push CCBridge.0051E661
0051E627   >  8D45 DC          lea eax,dword ptr ss:[ebp-24]
0051E62A   .  E8 2156EEFF      call CCBridge.00403C50
0051E62F   .  8D45 E0          lea eax,dword ptr ss:[ebp-20]
0051E632   .  E8 1956EEFF      call CCBridge.00403C50
0051E637   .  8D45 E4          lea eax,dword ptr ss:[ebp-1C]
0051E63A   .  E8 1156EEFF      call CCBridge.00403C50
0051E63F   .  8D45 E8          lea eax,dword ptr ss:[ebp-18]
0051E642   .  BA 02000000      mov edx,2
0051E647   .  E8 2856EEFF      call CCBridge.00403C74
0051E64C   .  8D45 F0          lea eax,dword ptr ss:[ebp-10]
0051E64F   .  BA 02000000      mov edx,2
0051E654   .  E8 1B56EEFF      call CCBridge.00403C74
0051E659   .  C3               retn
0051E65A   .^ E9 8950EEFF      jmp CCBridge.004036E8
0051E65F   .^ EB C6            jmp short CCBridge.0051E627
0051E661   .  5F               pop edi
0051E662   .  5E               pop esi
0051E663   .  5B               pop ebx
0051E664   .  8BE5             mov esp,ebp
0051E666   .  5D               pop ebp
0051E667   .  C3               retn





最后五位注册码计算的关键CALL
0048465C  /$  55               push ebp
0048465D  |.  8BEC             mov ebp,esp
0048465F  |.  83C4 F0          add esp,-10
00484662  |.  53               push ebx
00484663  |.  56               push esi
00484664  |.  57               push edi
00484665  |.  33C9             xor ecx,ecx
00484667  |.  894D F4          mov dword ptr ss:[ebp-C],ecx
0048466A  |.  8955 F8          mov dword ptr ss:[ebp-8],edx
0048466D  |.  8945 FC          mov dword ptr ss:[ebp-4],eax
00484670  |.  8B45 FC          mov eax,dword ptr ss:[ebp-4]
00484673  |.  E8 0CFAF7FF      call CCBridge.00404084
00484678  |.  33C0             xor eax,eax
0048467A  |.  55               push ebp
0048467B  |.  68 48474800      push CCBridge.00484748
00484680  |.  64:FF30          push dword ptr fs:[eax]
00484683  |.  64:8920          mov dword ptr fs:[eax],esp
00484686  |.  8D45 F4          lea eax,dword ptr ss:[ebp-C]
00484689  |.  8B55 FC          mov edx,dword ptr ss:[ebp-4]
0048468C  |.  E8 57F6F7FF      call CCBridge.00403CE8
00484691  |.  8B45 F4          mov eax,dword ptr ss:[ebp-C]
00484694  |.  E8 37F8F7FF      call CCBridge.00403ED0                   ;  取用户名的长度
00484699  |.  40               inc eax
0048469A  |.  8BD8             mov ebx,eax
0048469C  |.  83FB 05          cmp ebx,5
0048469F  |.  7F 13            jg short CCBridge.004846B4               ;  长度大于5则进行用户名剪切
004846A1  |>  8D45 F4          /lea eax,dword ptr ss:[ebp-C]
004846A4  |.  BA 60474800      |mov edx,CCBridge.00484760
004846A9  |.  E8 2AF8F7FF      |call CCBridge.00403ED8                  ;  长度小于5则进行用户名后两位填充空格
004846AE  |.  43               |inc ebx
004846AF  |.  83FB 06          |cmp ebx,6
004846B2  |.^ 75 ED            \jnz short CCBridge.004846A1
004846B4  |>  8B45 F4          mov eax,dword ptr ss:[ebp-C]             ;  开始剪切,字符串的首对地址进入EAX
004846B7  |.  33C9             xor ecx,ecx                              ;  cx=0
004846B9  |.  8A08             mov cl,byte ptr ds:[eax]                 ;  "b"->cl
004846BB  |.  8B45 F4          mov eax,dword ptr ss:[ebp-C]             ;  用户名字符串的首对地址进入EAX
004846BE  |.  33DB             xor ebx,ebx                              ;  bx=0
004846C0  |.  8A58 01          mov bl,byte ptr ds:[eax+1]               ;  "r"->bl
004846C3  |.  8B45 F4          mov eax,dword ptr ss:[ebp-C]             ;  字符串的首对地址进入EAX
004846C6  |.  0FB670 02        movzx esi,byte ptr ds:[eax+2]            ;  "i"->esi
004846CA  |.  8B45 F4          mov eax,dword ptr ss:[ebp-C]             ;  字符串的首对地址进入EAX
004846CD  |.  0FB678 03        movzx edi,byte ptr ds:[eax+3]            ;  "g"->edi
004846D1  |.  8B45 F4          mov eax,dword ptr ss:[ebp-C]             ;  字符串的首对地址进入EAX
004846D4  |.  0FB640 04        movzx eax,byte ptr ds:[eax+4]            ;  "h"->eax
004846D8  |.  8945 F0          mov dword ptr ss:[ebp-10],eax
004846DB  |.  8D040B           lea eax,dword ptr ds:[ebx+ecx]           ;  eax=ASC("b")+ASC("r")   用户名第一位的ASC值与第二位的ASC值进行相加
004846DE  |.  03FE             add edi,esi                              ;  EDI=asc("i")+asc("g")   用户名第三位的ASC值与第四位的ASC值进行相加
004846E0  |.  F7EF             imul edi                                 ;  EAX=EAX*EDI             前两个结果相乘
004846E2  |.  F76D F0          imul dword ptr ss:[ebp-10]               ;  EAX=EAX*ASC("h")        再与用户名的第五位ASC值相乘
004846E5  |.  B9 A0860100      mov ecx,186A0                            ;  ECX=100000D              常数100000D
004846EA  |.  99               cdq                                      ;  将EAX转成无符号数        
004846EB  |.  F7F9             idiv ecx                                 ;  EAX=EAX/ECX  EDX为余数,而且是注册码  向上数三行的结果除以常数取余数就是注册码的最后五位
004846ED  |.  8BDA             mov ebx,edx
004846EF  |.  8D55 F4          lea edx,dword ptr ss:[ebp-C]
004846F2  |.  8BC3             mov eax,ebx
004846F4  |.  E8 B745F8FF      call CCBridge.00408CB0                   ;  注册码已生成
004846F9  |.  8B45 F4          mov eax,dword ptr ss:[ebp-C]
004846FC  |.  E8 CFF7F7FF      call CCBridge.00403ED0                   ;  取生成的注册码长度,
00484701  |.  40               inc eax
00484702  |.  8BD8             mov ebx,eax
00484704  |.  83FB 05          cmp ebx,5
00484707      7F 16            jg short CCBridge.0048471F               ;  若大于5,则进行剪切!
00484709  |>  8D45 F4          /lea eax,dword ptr ss:[ebp-C]
0048470C  |.  8B4D F4          |mov ecx,dword ptr ss:[ebp-C]
0048470F  |.  BA 6C474800      |mov edx,CCBridge.0048476C
00484714  |.  E8 03F8F7FF      |call CCBridge.00403F1C
00484719  |.  43               |inc ebx
0048471A  |.  83FB 06          |cmp ebx,6
0048471D  |.^ 75 EA            \jnz short CCBridge.00484709
0048471F  |>  8B45 F8          mov eax,dword ptr ss:[ebp-8]
00484722  |.  8B55 F4          mov edx,dword ptr ss:[ebp-C]
00484725  |.  E8 7AF5F7FF      call CCBridge.00403CA4
0048472A  |.  33C0             xor eax,eax
0048472C  |.  5A               pop edx
0048472D  |.  59               pop ecx
0048472E  |.  59               pop ecx
0048472F  |.  64:8910          mov dword ptr fs:[eax],edx
00484732  |.  68 4F474800      push CCBridge.0048474F
00484737  |>  8D45 F4          lea eax,dword ptr ss:[ebp-C]
0048473A  |.  E8 11F5F7FF      call CCBridge.00403C50
0048473F  |.  8D45 FC          lea eax,dword ptr ss:[ebp-4]
00484742  |.  E8 09F5F7FF      call CCBridge.00403C50
00484747  \.  C3               retn
00484748   .^ E9 9BEFF7FF      jmp CCBridge.004036E8
0048474D   .^ EB E8            jmp short CCBridge.00484737
0048474F   .  5F               pop edi
00484750   .  5E               pop esi
00484751   .  5B               pop ebx
00484752   .  8BE5             mov esp,ebp
00484754   .  5D               pop ebp
00484755   .  C3               retn


注册机原码:
Private Sub Command1_Click()
Dim na1 As Long
Dim na2 As Long
Dim na3 As Long
Dim na4 As Long
Dim na5 As Long
Dim z1 As Long
Dim z2 As Long
Dim z3 As Long
Dim key As Long
Dim cs As Long
cs = 100000

jkg:  If Len(username.Text) < 5 Then
      MsgBox "用户名不足5位,系统将用空格帮助你补齐5位!"
      username.Text = username.Text + Chr(32)
      GoTo jkg
  End If
On Error GoTo exitsub



na1 = Asc(Mid(username.Text, 1))
na2 = Asc(Mid(username.Text, 2))
na3 = Asc(Mid(username.Text, 3))
na4 = Asc(Mid(username.Text, 4))
na5 = Asc(Mid(username.Text, 5))

z1 = na1 + na2
z2 = na3 + na4
z3 = z1 * z2 * na5

key = Int(z3 / cs)
key = z3 - key * cs

code.Text = "CCB21R-" + Str(key)

Exit Sub

exitsub:
MsgBox "运行出错!请重新输入用户名!"

End Sub

[ Last edited by brightsm on 2005-7-8 at 10:57 AM ]
PYG19周年生日快乐!
  • TA的每日心情
    难过
    2024-4-22 14:49
  • 签到天数: 11 天

    [LV.3]偶尔看看II

    发表于 2005-7-5 22:59:54 | 显示全部楼层
    不错~ 思路清晰~ 加精了!
    建议优化一下注册机源码~
    PYG19周年生日快乐!

    该用户从未签到

    发表于 2005-7-7 21:25:48 | 显示全部楼层
    好文!支持的说。
    PYG19周年生日快乐!

    该用户从未签到

     楼主| 发表于 2005-7-7 22:45:22 | 显示全部楼层
    大家可以优化一下,主要是让刚入门的兄弟看的更清楚一点!
    PYG19周年生日快乐!

    该用户从未签到

    发表于 2005-7-8 04:05:21 | 显示全部楼层
    不错的说,特别是下断点的部分,写的很清楚。好文~
    PYG19周年生日快乐!

    该用户从未签到

    发表于 2005-7-8 10:41:49 | 显示全部楼层
    分析的好!
    PYG19周年生日快乐!

    该用户从未签到

    发表于 2005-7-18 22:28:06 | 显示全部楼层
    高手啊~!!!!!!分析的好!
    PYG19周年生日快乐!
    6928120 该用户已被删除
    发表于 2005-8-7 15:06:31 | 显示全部楼层
    提示: 作者被禁止或删除 内容自动屏蔽
    PYG19周年生日快乐!
    您需要登录后才可以回帖 登录 | 加入我们

    本版积分规则

    快速回复 返回顶部 返回列表