TA的每日心情 | 慵懒 2018-2-11 09:23 |
---|
签到天数: 8 天 [LV.3]偶尔看看II
|
【破文标题】Picture To Video Converte 1.0算法分析
【破文作者】冰糖[BST]
【作者邮箱】[email protected]
【作者主页】http://bbs.thulu.com
【破解工具】peid0.94+OD
【破解平台】XPsp3
【软件名称】Picture To Video Converte 1.0
【软件大小】992k
【原版下载】http://www.onlinedown.net/soft/68027.htm
【保护方式】
【软件简介】Picture To Video Converter图片视频转换器的应用被设计为一个易于使用的工具,加入图片一起视频过渡效果。
【破解声明】本文仅供研究学习,本人对因这篇文章而导致的一切后果,不承担任何法律责任。本文中的不足之处
------------------------------------------------------------------------
【破解过程】继续响应NISY号召,发算发分析破文,刚去华军最近更新看了下,发现这个软件比较小,就选它啦,这次应该不是国产软件啦
PEID 查Microsoft Visual C++ 7.0无壳,直接OD载入
F9运行,输入用户名:bingtang[BST],假码:1234567890,弹出错误提示窗口,F12**找到判断点
段首下段
0041E0B8 . 55 push ebp ; 下断
0041E0B9 . 56 push esi
0041E0BA . 57 push edi
0041E0BB . BD 01000000 mov ebp, 1
0041E0C0 . 55 push ebp
0041E0C1 . 8BF1 mov esi, ecx
0041E0C3 . E8 F2E40100 call 0043C5BA
0041E0C8 . 8B46 70 mov eax, dword ptr [esi+70]
0041E0CB . 8B78 F4 mov edi, dword ptr [eax-C]
0041E0CE . 83FF 02 cmp edi, 2 ; 比较用户名位数
0041E0D1 . 0F8D E0000000 jge 0041E1B7 ; >=2就跳
0041E0D7 . E8 58240200 call 00440534
0041E0DC . 8B10 mov edx, dword ptr [eax]
0041E0DE . 8BC8 mov ecx, eax
0041E0E0 . FF52 0C call dword ptr [edx+C]
0041E0E3 . 83C0 10 add eax, 10
0041E0E6 . 894424 18 mov dword ptr [esp+18], eax
0041E0EA . 6A 67 push 67
0041E0EC . 8D4424 20 lea eax, dword ptr [esp+20]
0041E0F0 . 50 push eax
0041E0F1 . B9 081F4900 mov ecx, 00491F08
0041E0F6 . C74424 34 000>mov dword ptr [esp+34], 0
0041E0FE . E8 1D1DFFFF call 0040FE20
0041E103 . 50 push eax
0041E104 . 8D4C24 1C lea ecx, dword ptr [esp+1C]
0041E108 . C64424 30 01 mov byte ptr [esp+30], 1
0041E10D . E8 BE67FEFF call 004048D0
0041E112 . 8B4424 1C mov eax, dword ptr [esp+1C]
0041E116 . 83C0 F0 add eax, -10
0041E119 . C64424 2C 00 mov byte ptr [esp+2C], 0
0041E11E . 8D48 0C lea ecx, dword ptr [eax+C]
0041E121 . 83CA FF or edx, FFFFFFFF
0041E124 . F0:0FC111 lock xadd dword ptr [ecx], edx
0041E128 . 4A dec edx
0041E129 . 85D2 test edx, edx
0041E12B . 7F 08 jg short 0041E135
0041E12D . 8B08 mov ecx, dword ptr [eax]
0041E12F . 8B11 mov edx, dword ptr [ecx]
0041E131 . 50 push eax
0041E132 . FF52 04 call dword ptr [edx+4]
0041E135 > 6A 69 push 69
0041E137 . 8D4424 20 lea eax, dword ptr [esp+20]
0041E13B . 50 push eax
0041E13C . B9 081F4900 mov ecx, 00491F08
0041E141 . E8 DA1CFFFF call 0040FE20
0041E146 . 8B00 mov eax, dword ptr [eax]
0041E148 . 8B7C24 18 mov edi, dword ptr [esp+18]
0041E14C . 6A 00 push 0
0041E14E . 50 push eax
0041E14F . 57 push edi
0041E150 . 8BCE mov ecx, esi
0041E152 . C64424 38 02 mov byte ptr [esp+38], 2
0041E157 . E8 00E40100 call 0043C55C
0041E15C . 8B4424 1C mov eax, dword ptr [esp+1C]
0041E160 . 83C0 F0 add eax, -10
0041E163 . C64424 2C 00 mov byte ptr [esp+2C], 0
0041E168 . 8D48 0C lea ecx, dword ptr [eax+C]
0041E16B . 83CA FF or edx, FFFFFFFF
0041E16E . F0:0FC111 lock xadd dword ptr [ecx], edx
0041E172 . 4A dec edx
0041E173 . 85D2 test edx, edx
0041E175 . 7F 08 jg short 0041E17F
0041E177 . 8B08 mov ecx, dword ptr [eax]
0041E179 . 8B11 mov edx, dword ptr [ecx]
0041E17B . 50 push eax
0041E17C . FF52 04 call dword ptr [edx+4]
0041E17F > 8D47 F0 lea eax, dword ptr [edi-10]
0041E182 . C74424 2C FFF>mov dword ptr [esp+2C], -1
0041E18A . 8D48 0C lea ecx, dword ptr [eax+C]
0041E18D . 83CA FF or edx, FFFFFFFF
0041E190 . F0:0FC111 lock xadd dword ptr [ecx], edx
0041E194 . 4A dec edx
0041E195 . 85D2 test edx, edx
0041E197 . 0F8F 2F040000 jg 0041E5CC
0041E19D . 8B08 mov ecx, dword ptr [eax]
0041E19F . 8B11 mov edx, dword ptr [ecx]
0041E1A1 . 50 push eax
0041E1A2 . FF52 04 call dword ptr [edx+4]
0041E1A5 . 5F pop edi
0041E1A6 . 5E pop esi
0041E1A7 . 5D pop ebp
0041E1A8 . 8B4C24 18 mov ecx, dword ptr [esp+18]
0041E1AC . 64:890D 00000>mov dword ptr fs:[0], ecx
0041E1B3 . 83C4 24 add esp, 24
0041E1B6 . C3 retn
0041E1B7 > 8B46 74 mov eax, dword ptr [esi+74]
0041E1BA . 8B40 F4 mov eax, dword ptr [eax-C]
0041E1BD . 83F8 08 cmp eax, 8 ; 和8比较用户名位数
0041E1C0 . 53 push ebx
0041E1C1 . 0F8D AF000000 jge 0041E276 ; >=8就跳,否则就死
0041E1C7 . E8 68230200 call 00440534
0041E1CC . 8B10 mov edx, dword ptr [eax]
0041E1CE . 8BC8 mov ecx, eax
0041E1D0 . FF52 0C call dword ptr [edx+C]
0041E1D3 . 83C0 10 add eax, 10
0041E1D6 . 894424 1C mov dword ptr [esp+1C], eax
0041E1DA . 6A 68 push 68
0041E1DC . 8D4424 24 lea eax, dword ptr [esp+24]
0041E1E0 . BB 03000000 mov ebx, 3
0041E1E5 . 50 push eax
0041E1E6 . B9 081F4900 mov ecx, 00491F08
0041E1EB . 895C24 38 mov dword ptr [esp+38], ebx
0041E1EF . E8 2C1CFFFF call 0040FE20
0041E1F4 . 50 push eax
0041E1F5 . 8D4C24 20 lea ecx, dword ptr [esp+20]
0041E1F9 . C64424 34 04 mov byte ptr [esp+34], 4
0041E1FE . E8 CD66FEFF call 004048D0
0041E203 . 8B4424 20 mov eax, dword ptr [esp+20]
0041E207 . 83C0 F0 add eax, -10
0041E20A . 885C24 30 mov byte ptr [esp+30], bl
0041E20E . 8D48 0C lea ecx, dword ptr [eax+C]
0041E211 . 83CA FF or edx, FFFFFFFF
0041E214 . F0:0FC111 lock xadd dword ptr [ecx], edx
0041E218 . 4A dec edx
0041E219 . 85D2 test edx, edx
0041E21B . 7F 08 jg short 0041E225
0041E21D . 8B08 mov ecx, dword ptr [eax]
0041E21F . 8B11 mov edx, dword ptr [ecx]
0041E221 . 50 push eax
0041E222 . FF52 04 call dword ptr [edx+4]
0041E225 > 6A 69 push 69
0041E227 . 8D4424 24 lea eax, dword ptr [esp+24]
0041E22B . 50 push eax
0041E22C . B9 081F4900 mov ecx, 00491F08
0041E231 . E8 EA1BFFFF call 0040FE20
0041E236 . 8B00 mov eax, dword ptr [eax]
0041E238 . 8B7C24 1C mov edi, dword ptr [esp+1C]
0041E23C . 6A 00 push 0
0041E23E . 50 push eax
0041E23F . 57 push edi
0041E240 . 8BCE mov ecx, esi
0041E242 . C64424 3C 05 mov byte ptr [esp+3C], 5
0041E247 . E8 10E30100 call 0043C55C
0041E24C . 8B4424 20 mov eax, dword ptr [esp+20]
0041E250 . 83C0 F0 add eax, -10
0041E253 . 885C24 30 mov byte ptr [esp+30], bl
0041E257 . 8D48 0C lea ecx, dword ptr [eax+C]
0041E25A . 83CA FF or edx, FFFFFFFF
0041E25D . F0:0FC111 lock xadd dword ptr [ecx], edx
0041E261 . 4A dec edx
0041E262 . 85D2 test edx, edx
0041E264 . 7F 08 jg short 0041E26E
0041E266 . 8B08 mov ecx, dword ptr [eax]
0041E268 . 8B11 mov edx, dword ptr [ecx]
0041E26A . 50 push eax
0041E26B . FF52 04 call dword ptr [edx+4]
0041E26E > 8D47 F0 lea eax, dword ptr [edi-10]
0041E271 . E9 36030000 jmp 0041E5AC
0041E276 > 8B46 70 mov eax, dword ptr [esi+70]
0041E279 . 8B48 F4 mov ecx, dword ptr [eax-C]
0041E27C . 85C9 test ecx, ecx
0041E27E . 7D 0A jge short 0041E28A
0041E280 . 68 57000780 push 80070057
0041E285 . E8 7630FEFF call 00401300
0041E28A > 8A10 mov dl, byte ptr [eax]
0041E28C . 8B46 70 mov eax, dword ptr [esi+70]
0041E28F . 3968 F4 cmp dword ptr [eax-C], ebp
0041E292 . 7D 0A jge short 0041E29E
0041E294 . 68 57000780 push 80070057
0041E299 . E8 6230FEFF call 00401300
0041E29E > 8A40 01 mov al, byte ptr [eax+1]
0041E2A1 . 884424 11 mov byte ptr [esp+11], al
0041E2A5 . 8B46 70 mov eax, dword ptr [esi+70]
0041E2A8 . 8B48 F4 mov ecx, dword ptr [eax-C]
0041E2AB . 85C9 test ecx, ecx
0041E2AD . 7D 0A jge short 0041E2B9
0041E2AF . 68 57000780 push 80070057
0041E2B4 . E8 4730FEFF call 00401300
0041E2B9 > 8B4E 70 mov ecx, dword ptr [esi+70]
0041E2BC . 8A18 mov bl, byte ptr [eax]
0041E2BE . 3969 F4 cmp dword ptr [ecx-C], ebp
0041E2C1 . 7D 0A jge short 0041E2CD
0041E2C3 . 68 57000780 push 80070057
0041E2C8 . E8 3330FEFF call 00401300
0041E2CD > 0FB6C2 movzx eax, dl ; 用户名第一位b
0041E2D0 . 83C8 50 or eax, 50 ; or &H50
0041E2D3 . 99 cdq
0041E2D4 . BD 0A000000 mov ebp, 0A ; ebp=&H0A
0041E2D9 . F7FD idiv ebp ; eax MOD &H0A
0041E2DB . 0FB64424 11 movzx eax, byte ptr [esp+11] ; 用户名第二位i
0041E2E0 . 83C8 48 or eax, 48 ; or &H48
0041E2E3 . 885424 16 mov byte ptr [esp+16], dl ; [000DF5FE]<--4 结果1
0041E2E7 . 99 cdq
0041E2E8 . F7FD idiv ebp ; EAX MOD EBX
0041E2EA . 0FB6C3 movzx eax, bl ; 用户名第一位b
0041E2ED . 83C8 4F or eax, 4F ; or &H4F
0041E2F0 . 8BDD mov ebx, ebp
0041E2F2 . 885424 11 mov byte ptr [esp+11], dl ; [000DF5F9]<--5 结果2
0041E2F6 . 99 cdq
0041E2F7 . F7FB idiv ebx ; eax mod ebx
0041E2F9 . 0FB641 01 movzx eax, byte ptr [ecx+1] ; 用户名第二位i
0041E2FD . 83C8 54 or eax, 54 ; or &h54
0041E300 . 8BCD mov ecx, ebp
0041E302 . 885424 17 mov byte ptr [esp+17], dl ; [000DF5FF]<--1 结果3
0041E306 . 99 cdq
0041E307 . F7F9 idiv ecx ; eax mod ecx
0041E309 . 33C0 xor eax, eax
0041E30B . 33C9 xor ecx, ecx
0041E30D . 85FF test edi, edi
0041E30F . 885424 18 mov byte ptr [esp+18], dl ; [000DF600]<--05 结果4
0041E313 . 7E 1F jle short 0041E334
0041E315 > 85C9 test ecx, ecx
0041E317 . 0F8C E6000000 jl 0041E403
0041E31D . 8B56 70 mov edx, dword ptr [esi+70] ; 用户名bingtang[BST]
0041E320 . 3B4A F4 cmp ecx, dword ptr [edx-C]
0041E323 . 0F8F DA000000 jg 0041E403
0041E329 . 0FB6140A movzx edx, byte ptr [edx+ecx] ; 依次取用户名bingtang[BST]的每个字符
0041E32D . 03C2 add eax, edx ; 依次取用户名bingtang[BST]的每个字符的ASCII和放入EAX,最终EAX=&H4EB
0041E32F . 41 inc ecx
0041E330 . 3BCF cmp ecx, edi
0041E332 .^ 7C E1 jl short 0041E315
0041E334 > 99 cdq
0041E335 . B9 0A000000 mov ecx, 0A ; ecx<--&H0A
0041E33A . F7F9 idiv ecx ; 用户名ASCII和(&H4EB) MOD &H0A
0041E33C . 8B46 74 mov eax, dword ptr [esi+74] ; 假码
0041E33F . 8B48 F4 mov ecx, dword ptr [eax-C] ; 假码位数
0041E342 . 85C9 test ecx, ecx
0041E344 . 885424 19 mov byte ptr [esp+19], dl ; [000DF601]<--09 结果5
0041E348 . 7D 0A jge short 0041E354
0041E34A . 68 57000780 push 80070057
0041E34F . E8 AC2FFEFF call 00401300
0041E354 > \8A10 mov dl, byte ptr [eax] ; dl<--注册码第一位
0041E356 . 8B4E 74 mov ecx, dword ptr [esi+74]
0041E359 . 8379 F4 01 cmp dword ptr [ecx-C], 1
0041E35D . 885424 1A mov byte ptr [esp+1A], dl ; [esp+1A]<--注册码第一位
0041E361 . 7D 0A jge short 0041E36D
0041E363 . 68 57000780 push 80070057
0041E368 . E8 932FFEFF call 00401300
0041E36D > 8A41 01 mov al, byte ptr [ecx+1] ; al<--注册码第二位
0041E370 . 8B4E 74 mov ecx, dword ptr [esi+74]
0041E373 . 884424 12 mov byte ptr [esp+12], al ; [esp+12]<--注册码第二位
0041E377 . 8379 F4 02 cmp dword ptr [ecx-C], 2
0041E37B . 7D 0A jge short 0041E387
0041E37D . 68 57000780 push 80070057
0041E382 . E8 792FFEFF call 00401300
0041E387 > 8A49 02 mov cl, byte ptr [ecx+2] ; cl<--注册码第三位
0041E38A . 884C24 13 mov byte ptr [esp+13], cl ; [esp+13]<--注册码第三位
0041E38E . 8B4E 74 mov ecx, dword ptr [esi+74]
0041E391 . 8379 F4 03 cmp dword ptr [ecx-C], 3
0041E395 . 7D 0A jge short 0041E3A1
0041E397 . 68 57000780 push 80070057
0041E39C . E8 5F2FFEFF call 00401300
0041E3A1 > 8A41 03 mov al, byte ptr [ecx+3] ; al<--注册码第四位
0041E3A4 . 8B4E 74 mov ecx, dword ptr [esi+74]
0041E3A7 . 884424 14 mov byte ptr [esp+14], al ; [esp+14]<--注册码第四位
0041E3AB . 8379 F4 04 cmp dword ptr [ecx-C], 4
0041E3AF . 7D 0A jge short 0041E3BB
0041E3B1 . 68 57000780 push 80070057
0041E3B6 . E8 452FFEFF call 00401300
0041E3BB > 8A49 04 mov cl, byte ptr [ecx+4]
0041E3BE . 884C24 15 mov byte ptr [esp+15], cl ; [esp+15]<--注册码第五位
0041E3C2 . 8B4E 74 mov ecx, dword ptr [esi+74]
0041E3C5 . 8379 F4 05 cmp dword ptr [ecx-C], 5
0041E3C9 . 7D 0A jge short 0041E3D5
0041E3CB . 68 57000780 push 80070057
0041E3D0 . E8 2B2FFEFF call 00401300
0041E3D5 > 8A41 05 mov al, byte ptr [ecx+5] ; al<--注册码第六位
0041E3D8 . 8B4E 74 mov ecx, dword ptr [esi+74] ; ecx<--假码
0041E3DB . 8B79 F4 mov edi, dword ptr [ecx-C]
0041E3DE . 83FF 06 cmp edi, 6
0041E3E1 . 884424 1B mov byte ptr [esp+1B], al ; [esp+1B]<--注册码第六位
0041E3E5 . 7D 0A jge short 0041E3F1
0041E3E7 . 68 57000780 push 80070057
0041E3EC . E8 0F2FFEFF call 00401300
0041E3F1 > 8B7E 74 mov edi, dword ptr [esi+74]
0041E3F4 . 8B6F F4 mov ebp, dword ptr [edi-C]
0041E3F7 . 8A41 06 mov al, byte ptr [ecx+6] ; al<--注册码第七位
0041E3FA . BB 07000000 mov ebx, 7
0041E3FF . 3BEB cmp ebp, ebx
0041E401 . 7D 0A jge short 0041E40D
0041E403 > 68 57000780 push 80070057
0041E408 . E8 F32EFEFF call 00401300
0041E40D > 8A4F 07 mov cl, byte ptr [edi+7] ; cl<--注册码第八位
0041E410 . 0FB66C24 16 movzx ebp, byte ptr [esp+16] ; ebp<--结果1
0041E415 . 0FB6FA movzx edi, dl ; edi<--注册码第一位
0041E418 . 83EF 30 sub edi, 30
0041E41B . 3BEF cmp ebp, edi ; 注册码第一位和用户名计算结果1比较
0041E41D . 75 48 jnz short 0041E467 ; 不等就跳,跳就到比较固定注册码
0041E41F . 0FB65424 12 movzx edx, byte ptr [esp+12] ; edx<--注册码第二位
0041E424 . 0FB67C24 11 movzx edi, byte ptr [esp+11] ; edi<--结果2
0041E429 . 83EA 30 sub edx, 30
0041E42C . 3BFA cmp edi, edx ; 注册码第二位和用户名计算结果2比较
0041E42E . 75 33 jnz short 0041E463 ; 不等就跳,跳就挂
0041E430 . 0FB65424 13 movzx edx, byte ptr [esp+13] ; edx<--注册码第三位
0041E435 . 0FB67C24 17 movzx edi, byte ptr [esp+17] ; edi<--结果3
0041E43A . 83EA 30 sub edx, 30
0041E43D . 3BFA cmp edi, edx ; 注册码第三位和用户名计算结果3比较
0041E43F . 75 22 jnz short 0041E463 ; 不等就跳,跳就挂
0041E441 . 0FB65424 14 movzx edx, byte ptr [esp+14] ; edx<--注册码第四位
0041E446 . 0FB67C24 18 movzx edi, byte ptr [esp+18] ; edi<--结果4
0041E44B . 83EA 30 sub edx, 30
0041E44E . 3BFA cmp edi, edx ; 注册码第四位和用户名计算结果4比较
0041E450 . 75 11 jnz short 0041E463 ; 不等就跳,跳就挂
0041E452 . 0FB65424 15 movzx edx, byte ptr [esp+15] ; edx<--注册码第五位
0041E457 . 0FB67C24 19 movzx edi, byte ptr [esp+19] ; edi<--结果5
0041E45C . 83EA 30 sub edx, 30
0041E45F . 3BFA cmp edi, edx ; 注册码第五位和用户名计算结果5比较
0041E461 . 74 55 je short 0041E4B8 ; 相等跳到注册正确
0041E463 > 8A5424 1A mov dl, byte ptr [esp+1A]
0041E467 > 80FA 35 cmp dl, 35 ; 注册码第一位和5比较
0041E46A . 0F85 D7000000 jnz 0041E547
0041E470 . 807C24 12 31 cmp byte ptr [esp+12], 31 ; 注册码第二位和1比较
0041E475 . 0F85 CC000000 jnz 0041E547
0041E47B . 807C24 13 38 cmp byte ptr [esp+13], 38 ; 注册码第三位和8比较
0041E480 . 0F85 C1000000 jnz 0041E547
0041E486 . 807C24 14 39 cmp byte ptr [esp+14], 39 ; 注册码第四位和9比较
0041E48B . 0F85 B6000000 jnz 0041E547
0041E491 . 807C24 15 37 cmp byte ptr [esp+15], 37 ; 注册码第五位和7比较
0041E496 . 0F85 AB000000 jnz 0041E547
0041E49C . 807C24 1B 36 cmp byte ptr [esp+1B], 36 ; 注册码第六位和6比较
0041E4A1 . 0F85 A0000000 jnz 0041E547
0041E4A7 . 3C 31 cmp al, 31 ; 注册码第七位和1比较
0041E4A9 . 0F85 98000000 jnz 0041E547
0041E4AF . 80F9 38 cmp cl, 38 ; 注册码第八位和8比较
0041E4B2 . 0F85 8F000000 jnz 0041E547
0041E4B8 > 6A 6A push 6A
0041E4BA . 8D4424 24 lea eax, dword ptr [esp+24]
0041E4BE . 50 push eax
0041E4BF . B9 081F4900 mov ecx, 00491F08
0041E4C4 . E8 5719FFFF call 0040FE20
0041E4C9 . 8B00 mov eax, dword ptr [eax]
0041E4CB . 6A 00 push 0
0041E4CD . 68 805D4500 push 00455D80 ; ok
0041E4D2 . 50 push eax
0041E4D3 . 8BCE mov ecx, esi
0041E4D5 . C74424 3C 060>mov dword ptr [esp+3C], 6
0041E4DD . E8 7AE00100 call 0043C55C ; 正确提示
0041E4E2 . 8D4C24 20 lea ecx, dword ptr [esp+20]
0041E4E6 . C74424 30 FFF>mov dword ptr [esp+30], -1
------------------------------------------------------------------------
【破解总结】总结,程序通过用户名的前两个字符计算出注册码的前4位,通过用户名的ASCII和计算出注册码第5位,后面任意,但注册码必须大于8位,需要注意的是程序读取用户名的时候是以ANSI方式读取的,写算法注册机的时候需要注意.另外程序还有一个固定的注册码51897618,感谢蚊香MM提醒o(∩_∩)o...
VB算法注册机- Private Sub Command1_Click()
- Dim i As Integer
- Dim a As Long
- Dim t As String
- t = Text1
- If LenB(t) >= 2 Then
- s1 = Asc(Mid$(t, 1, 1))
- If s1 < 0 Then
- s1 = "&H" & Mid$(Hex$(Asc(Mid$(t, 1, 1))), 1, 2)
- s2 = "&H" & Mid$(Hex$(Asc(Mid$(t, 1, 1))), 3, 2)
- Else
- s2 = Asc(Mid$(t, 2, 1))
- If s2 < 0 Then
- s2 = "&H" & Mid$(Hex$(Asc(Mid$(t, 2, 1))), 1, 2)
- End If
- End If
- c = (s1 Or &H50) Mod &HA
- c = c & (s2 Or &H48) Mod &HA
- c = c & (s1 Or &H4F) Mod &HA
- c = c & (s2 Or &H54) Mod &HA
- For i = 1 To Len(t)
- If Asc(Mid$(t, i, 1)) > 0 Then
- a = a + Asc(Mid$(t, i, 1))
- Else
- a = a + CLng("&H" & Mid$(Hex$(Asc(Mid$(t, i, 1))), 1, 2)) + CLng("&H" & Mid$(Hex$(Asc(Mid$(t, i, 1))), 3, 2))
- End If
- Next i
- c = c & a Mod &HA
- Text2.Text = CStr(c) & "XXX(后三位任意)"
- Else
- Text2.Text = "用户名不得小于2位"
- End If
- End Sub
复制代码 这个软件算法一会就看完了,写算法注册机字符处理费了不少心思
冰糖
2008.6.15
------------------------------------------------------------------------
【版权声明】技术交流而已,转载请注明作者并保持文章的完整, 谢谢!
[ 本帖最后由 冰糖 于 2008-6-17 21:12 编辑 ] |
|