- UID
- 66309
注册时间2010-5-1
阅读权限95
最后登录1970-1-1
超级版主
TA的每日心情 | 开心 2019-3-25 14:18 |
---|
签到天数: 881 天 [LV.10]以坛为家III
|
本帖最后由 GeekCat 于 2015-8-23 15:07 编辑
【文章标题】: BigJig v8.25 简单算法分析 + 注册机源代码 【文章作者】: geekcat
【作者邮箱】: 【作者主页】:
【软件名称】: BigJig v8.25 【软件大小】: 【加壳方式】: 无 【保护方式】: 注册码
【编写语言】: Borland Delphi
【使用工具】: OD、PEID
【操作平台】: XP SP3 【下载地址】:百度 【软件介绍】: 【破解声明】:技术交流、学习,请不要用于商业用途! --------------------------------------------------------------------------------------------------------------------------------
切入方式: 1、工具按键事件; 2、F12暂停法
算法代码: - [/align][align=left]004D43A8 |. 8903 mov dword ptr ds:[ebx],eax
- 004D43AA |. 8D45 D8 lea eax,dword ptr ss:[ebp-0x28] ; (ASCII "CatPYG")
- 004D43AD |> 8A10 /mov dl,byte ptr ds:[eax] ; 依次取注册名的每一位
- 004D43AF |. 80FA 41 |cmp dl,0x41 ; AS值跟41(‘A’)比较
- 004D43B2 |. 72 05 |jb short bigjig.004D43B9
- 004D43B4 |. 80FA 5A |cmp dl,0x5A ; AS值跟5A(‘Z’)比较
- 004D43B7 |. 76 07 |jbe short bigjig.004D43C0
- 004D43B9 |> B3 01 |mov bl,0x1
- 004D43BB |. E9 C7010000 |jmp bigjig.004D4587
- 004D43C0 |> FF03 |inc dword ptr ds:[ebx]
- 004D43C2 |. 40 |inc eax
- 004D43C3 |. 833B 06 |cmp dword ptr ds:[ebx],0x6
- 004D43C6 |.^ 75 E5 \jnz short bigjig.004D43AD ; 循环要求:用户名大写字母
- 004D43C8 |. 33C0 xor eax,eax
- 004D43CA |. 8A45 D8 mov al,byte ptr ss:[ebp-0x28] ; 用户名第一位
- 004D43CD |. 33D2 xor edx,edx
- 004D43CF |. 8A55 D9 mov dl,byte ptr ss:[ebp-0x27] ; 用户名第二位
- 004D43D2 |. 03C2 add eax,edx ; 注册名前两位AS值累加
- 004D43D4 |. 33D2 xor edx,edx
- 004D43D6 |. 8A55 DA mov dl,byte ptr ss:[ebp-0x26] ; 用户名第三位
- 004D43D9 |. 03C2 add eax,edx ; 注册名前三位AS值累加
- 004D43DB |. 33D2 xor edx,edx
- 004D43DD |. 8A55 DB mov dl,byte ptr ss:[ebp-0x25] ; 用户名第四位
- 004D43E0 |. 03C2 add eax,edx ; 注册名前四位AS值累加
- 004D43E2 |. 33D2 xor edx,edx
- 004D43E4 |. 8A55 DC mov dl,byte ptr ss:[ebp-0x24] ; 用户名第五位
- 004D43E7 |. 03C2 add eax,edx ; 注册名前五位AS值累加=0x181
- 004D43E9 |. B9 05000000 mov ecx,0x5
- 004D43EE |. 33D2 xor edx,edx
- 004D43F0 |. F7F1 div ecx ; 注册名前五位AS值累加除0x5=0x4D
- 004D43F2 |. 33D2 xor edx,edx
- 004D43F4 |. 8A55 DD mov dl,byte ptr ss:[ebp-0x23] ; 47 ('G') 注册名最后一位
- 004D43F7 |. 3BC2 cmp eax,edx ; 商跟注册名最后一位AS值比较
- 004D43F9 |. 74 07 je short bigjig.004D4402
- 004D43FB |. B3 01 mov bl,0x1
- 004D43FD |. E9 85010000 jmp bigjig.004D4587
- 004D4402 |> B2 01 mov dl,0x1
- 004D4404 |. 33C0 xor eax,eax
- 004D4406 |. 8903 mov dword ptr ds:[ebx],eax
- 004D4408 |. 8D45 D8 lea eax,dword ptr ss:[ebp-0x28] ; (ASCII "CATPYG")
- 004D440B |> 8B0D 34C55200 /mov ecx,dword ptr ds:[0x52C534] ; ASCII 44,"IKYUN"
- 004D4411 |. 8B33 |mov esi,dword ptr ds:[ebx]
- 004D4413 |. 0FB60C31 |movzx ecx,byte ptr ds:[ecx+esi] ; 取第一段字符串每一位
- 004D4417 |. 49 |dec ecx ; AS值减1
- 004D4418 |. 0FB630 |movzx esi,byte ptr ds:[eax] ; 注册名每一位
- 004D441B |. 3BCE |cmp ecx,esi
- 004D441D |. 74 04 |je short bigjig.004D4423
- 004D441F |. 33D2 |xor edx,edx
- 004D4421 |. EB 08 |jmp short bigjig.004D442B
- 004D4423 |> FF03 |inc dword ptr ds:[ebx]
- 004D4425 |. 40 |inc eax
- 004D4426 |. 833B 06 |cmp dword ptr ds:[ebx],0x6
- 004D4429 |.^ 75 E0 \jnz short bigjig.004D440B
- 004D442B |> 84D2 test dl,dl
- 004D442D |. 74 07 je short bigjig.004D4436
- 004D442F |. B3 01 mov bl,0x1
- 004D4431 |. E9 51010000 jmp bigjig.004D4587
- 004D4436 |> B2 01 mov dl,0x1
- 004D4438 |. 33C0 xor eax,eax
- 004D443A |. 8903 mov dword ptr ds:[ebx],eax
- 004D443C |. 8D45 D8 lea eax,dword ptr ss:[ebp-0x28] ; (ASCII "CATPYG")
- 004D443F |> 8B0D 38C55200 /mov ecx,dword ptr ds:[0x52C538] ; (ASCII "EZMJFL")第二段字符串
- 004D4445 |. 8B33 |mov esi,dword ptr ds:[ebx]
- 004D4447 |. 0FB60C31 |movzx ecx,byte ptr ds:[ecx+esi] ; 取第二段字符串每一位
- 004D444B |. 49 |dec ecx
- 004D444C |. 0FB630 |movzx esi,byte ptr ds:[eax]
- 004D444F |. 3BCE |cmp ecx,esi
- 004D4451 |. 74 04 |je short bigjig.004D4457
- 004D4453 |. 33D2 |xor edx,edx
- 004D4455 |. EB 08 |jmp short bigjig.004D445F
- 004D4457 |> FF03 |inc dword ptr ds:[ebx]
- 004D4459 |. 40 |inc eax
- 004D445A |. 833B 06 |cmp dword ptr ds:[ebx],0x6
- 004D445D |.^ 75 E0 \jnz short bigjig.004D443F
- 004D445F |> 84D2 test dl,dl
- 004D4461 |. 74 07 je short bigjig.004D446A
- 004D4463 |. B3 01 mov bl,0x1
- 004D4465 |. E9 1D010000 jmp bigjig.004D4587
- 004D446A |> B2 01 mov dl,0x1
- 004D446C |. 33C0 xor eax,eax
- 004D446E |. 8903 mov dword ptr ds:[ebx],eax
- 004D4470 |. 8D45 D8 lea eax,dword ptr ss:[ebp-0x28] ; (ASCII "CATPYG")
- 004D4473 |> 8B0D 3CC55200 /mov ecx,dword ptr ds:[0x52C53C] ; (ASCII "GMNWCL")第三段字符串
- 004D4479 |. 8B33 |mov esi,dword ptr ds:[ebx]
- 004D447B |. 0FB60C31 |movzx ecx,byte ptr ds:[ecx+esi] ; 取第三段字符串每一位
- 004D447F |. 49 |dec ecx
- 004D4480 |. 0FB630 |movzx esi,byte ptr ds:[eax]
- 004D4483 |. 3BCE |cmp ecx,esi
- 004D4485 |. 74 04 |je short bigjig.004D448B
- 004D4487 |. 33D2 |xor edx,edx
- 004D4489 |. EB 08 |jmp short bigjig.004D4493
- 004D448B |> FF03 |inc dword ptr ds:[ebx]
- 004D448D |. 40 |inc eax
- 004D448E |. 833B 06 |cmp dword ptr ds:[ebx],0x6
- 004D4491 |.^ 75 E0 \jnz short bigjig.004D4473
- 004D4493 |> 84D2 test dl,dl
- 004D4495 |. 74 07 je short bigjig.004D449E
- 004D4497 |. B3 01 mov bl,0x1
- 004D4499 |. E9 E9000000 jmp bigjig.004D4587
- 004D449E |> 8B45 F0 mov eax,dword ptr ss:[ebp-0x10] ; (ASCII "1234567890qwertyuiop")
- 004D44A1 |. E8 4E0BF3FF call bigjig.00404FF4 ; 计算注册码长度
- 004D44A6 |. 83F8 0B cmp eax,0xB ; 注册码要是11位
- 004D44A9 |. 74 07 je short bigjig.004D44B2
- 004D44AB |. B3 01 mov bl,0x1
- 004D44AD |. E9 D5000000 jmp bigjig.004D4587
- 004D44B2 |> 8D45 EC lea eax,dword ptr ss:[ebp-0x14]
- 004D44B5 |. 50 push eax
- 004D44B6 |. B9 04000000 mov ecx,0x4 ; 取的长度为4位
- 004D44BB |. BA 01000000 mov edx,0x1 ; 从第一位开始取
- 004D44C0 |. 8B45 F0 mov eax,dword ptr ss:[ebp-0x10] ; (ASCII "1234567890q")
- 004D44C3 |. E8 8C0DF3FF call bigjig.00405254 ; 在注册码中取1-4位 ASCII "1234"
- 004D44C8 |. BA BC454D00 mov edx,bigjig.004D45BC
- 004D44CD |. 8B45 EC mov eax,dword ptr ss:[ebp-0x14] ; (ASCII "1234")
- 004D44D0 |. E8 6B52F3FF call bigjig.00409740 ; 注册码前4位为:“BJ4-”
- 004D44D5 |. 85C0 test eax,eax ; eax=0才行
- 004D44D7 |. 74 07 je short bigjig.004D44E0
- 004D44D9 |. B3 01 mov bl,0x1
- 004D44DB |. E9 A7000000 jmp bigjig.004D4587
- 004D44E0 |> 8D45 EC lea eax,dword ptr ss:[ebp-0x14]
- 004D44E3 |. 50 push eax
- 004D44E4 |. B9 01000000 mov ecx,0x1 ; 取1位
- 004D44E9 |. BA 08000000 mov edx,0x8 ; 第8位
- 004D44EE |. 8B45 F0 mov eax,dword ptr ss:[ebp-0x10] ; (ASCII "1234567890q")
- 004D44F1 |. E8 5E0DF3FF call bigjig.00405254 ; 第8位要是"-"
- 004D44F6 |. BA CC454D00 mov edx,bigjig.004D45CC ; UNICODE "-"
- 004D44FB |. 8B45 EC mov eax,dword ptr ss:[ebp-0x14]
- 004D44FE |. E8 3D52F3FF call bigjig.00409740 ; 注册码第8位跟"-"比较,要求第8位为"-"
- 004D4503 |. 85C0 test eax,eax
- 004D4505 |. 74 04 je short bigjig.004D450B
- 004D4507 |. B3 01 mov bl,0x1
- 004D4509 |. EB 7C jmp short bigjig.004D4587
- 004D450B |> 8D45 EC lea eax,dword ptr ss:[ebp-0x14]
- 004D450E |. 50 push eax
- 004D450F |. B9 03000000 mov ecx,0x3
- 004D4514 |. BA 05000000 mov edx,0x5
- 004D4519 |. 8B45 F0 mov eax,dword ptr ss:[ebp-0x10] ; (ASCII "1234567890q")
- 004D451C |. E8 330DF3FF call bigjig.00405254 ; 从注册码第5位开始取,取3位(ASCII "567")
- 004D4521 |. 8BD3 mov edx,ebx
- 004D4523 |. 8B45 EC mov eax,dword ptr ss:[ebp-0x14] ; (ASCII "567")
- 004D4526 |. E8 51F2F2FF call bigjig.0040377C ; 取得的三位字符10进制转16进制 ,字母不参加运算
- 004D452B |. 8BF0 mov esi,eax ; 注册eax值
- 004D452D |. 8D45 EC lea eax,dword ptr ss:[ebp-0x14] ; (ASCII "567")
- 004D4530 |. 50 push eax
- 004D4531 |. B9 03000000 mov ecx,0x3
- 004D4536 |. BA 09000000 mov edx,0x9
- 004D453B |. 8B45 F0 mov eax,dword ptr ss:[ebp-0x10] ; (ASCII "1234567890q")
- 004D453E |. E8 110DF3FF call bigjig.00405254 ; 从注册码第9位开始取,取3位(ASCII "90q")
- 004D4543 |. 8BD3 mov edx,ebx
- 004D4545 |. 8B45 EC mov eax,dword ptr ss:[ebp-0x14] ; (ASCII "90q")
- 004D4548 |. E8 2FF2F2FF call bigjig.0040377C ; 取得的三位字符10进制转16进制 ,字母不参加运算
- 004D454D |. 8BD6 mov edx,esi ; 5-7位转10进制成功的入edx
- 004D454F |. D1FA sar edx,1
- 004D4551 |. 79 03 jns short bigjig.004D4556
- 004D4553 |. 83D2 00 adc edx,0x0
- 004D4556 |> 52 push edx
- 004D4557 |. BA 84030000 mov edx,0x384
- 004D455C |. 59 pop ecx
- 004D455D |. 2BD1 sub edx,ecx ; 0x384减去(5-7位转16进制并除2)
- 004D455F |. 33C9 xor ecx,ecx
- 004D4561 |. 8A4D D8 mov cl,byte ptr ss:[ebp-0x28] ; 注册名第一位AS值
- 004D4564 |. 03D1 add edx,ecx ; 注册名第一位AS值加上(减的结果)
- 004D4566 |. 33C9 xor ecx,ecx
- 004D4568 |. 8A4D DD mov cl,byte ptr ss:[ebp-0x23] ; 注册名最后一位AS值
- 004D456B |. 8D0C49 lea ecx,dword ptr ds:[ecx+ecx*2] ; 3*ecx=3*注册名最后一位的AS值
- 004D456E |. 2BD1 sub edx,ecx ; (注册名第一位AS值加上(减的结果))-3*ecx
- 004D4570 |. 83FE 64 cmp esi,0x64 ; 注册码5-7位转10进制要大于0x64=100比较
- 004D4573 |. 7C 0C jl short bigjig.004D4581
- 004D4575 |. 81FE E7030000 cmp esi,0x3E7 ; 注册码5-7位转10进制要小于0x3E7=999比较
- 004D457B |. 7F 04 jg short bigjig.004D4581
- 004D457D |. 3BC2 cmp eax,edx ; eax(注册码最后三位10转16)跟(注册名第一位AS值加上(减的结果))-3*ecx相等
- 004D457F |. 74 04 je short bigjig.004D4585
- 004D4581 |> B3 01 mov bl,0x1
- 004D4583 |. EB 02 jmp short bigjig.004D4587
- 004D4585 |> 33DB xor ebx,ebx
- 004D4587 |> 33C0 xor eax,eax
- 004D4589 |. 5A pop edx
- 004D458A |. 59 pop ecx
- 004D458B |. 59 pop ecx
- 004D458C |. 64:8910 mov dword ptr fs:[eax],edx
- 004D458F |. 68 A9454D00 push bigjig.004D45A9
- 004D4594 |> 8D45 EC lea eax,dword ptr ss:[ebp-0x14]
- 004D4597 |. BA 05000000 mov edx,0x5
- 004D459C |. E8 B707F3FF call bigjig.00404D58
- 004D45A1 \. C3 retn[/align][align=left]
复制代码
|
评分
-
查看全部评分
|