GeekCat 发表于 2015-8-23 15:05:02

BigJig v8.25 算法分析 + 注册机源代码

本帖最后由 GeekCat 于 2015-8-23 15:07 编辑

【文章标题】: BigJig v8.25 简单算法分析 + 注册机源代码 【文章作者】: geekcat
【作者邮箱】: 【作者主页】:
【软件名称】: BigJig v8.25 【软件大小】: 【加壳方式】: 无【保护方式】: 注册码
【编写语言】: Borland Delphi
【使用工具】: OD、PEID
【操作平台】: XP SP3【下载地址】:百度【软件介绍】: 【破解声明】:技术交流、学习,请不要用于商业用途!--------------------------------------------------------------------------------------------------------------------------------
切入方式:1、工具按键事件;2、F12暂停法
算法代码:004D43A8|.8903          mov dword ptr ds:,eax
004D43AA|.8D45 D8       lea eax,dword ptr ss:          ;(ASCII "CatPYG")
004D43AD|>8A10          /mov dl,byte ptr ds:                ;依次取注册名的每一位
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:
004D43C2|.40            |inc eax
004D43C3|.833B 06       |cmp dword ptr ds:,0x6
004D43C6|.^ 75 E5         \jnz short bigjig.004D43AD               ;循环要求:用户名大写字母
004D43C8|.33C0          xor eax,eax
004D43CA|.8A45 D8       mov al,byte ptr ss:            ;用户名第一位
004D43CD|.33D2          xor edx,edx
004D43CF|.8A55 D9       mov dl,byte ptr ss:            ;用户名第二位
004D43D2|.03C2          add eax,edx                              ;注册名前两位AS值累加
004D43D4|.33D2          xor edx,edx
004D43D6|.8A55 DA       mov dl,byte ptr ss:            ;用户名第三位
004D43D9|.03C2          add eax,edx                              ;注册名前三位AS值累加
004D43DB|.33D2          xor edx,edx
004D43DD|.8A55 DB       mov dl,byte ptr ss:            ;用户名第四位
004D43E0|.03C2          add eax,edx                              ;注册名前四位AS值累加
004D43E2|.33D2          xor edx,edx
004D43E4|.8A55 DC       mov dl,byte ptr ss:            ;用户名第五位
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:            ;   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:,eax
004D4408|.8D45 D8       lea eax,dword ptr ss:          ;(ASCII "CATPYG")
004D440B|>8B0D 34C55200 /mov ecx,dword ptr ds:         ;ASCII 44,"IKYUN"
004D4411|.8B33          |mov esi,dword ptr ds:
004D4413|.0FB60C31      |movzx ecx,byte ptr ds:         ;取第一段字符串每一位
004D4417|.49            |dec ecx                                 ;AS值减1
004D4418|.0FB630      |movzx esi,byte ptr ds:             ;注册名每一位
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:
004D4425|.40            |inc eax
004D4426|.833B 06       |cmp dword ptr ds:,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:,eax
004D443C|.8D45 D8       lea eax,dword ptr ss:          ;(ASCII "CATPYG")
004D443F|>8B0D 38C55200 /mov ecx,dword ptr ds:         ;(ASCII "EZMJFL")第二段字符串
004D4445|.8B33          |mov esi,dword ptr ds:
004D4447|.0FB60C31      |movzx ecx,byte ptr ds:         ;取第二段字符串每一位
004D444B|.49            |dec ecx
004D444C|.0FB630      |movzx esi,byte ptr ds:
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:
004D4459|.40            |inc eax
004D445A|.833B 06       |cmp dword ptr ds:,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:,eax
004D4470|.8D45 D8       lea eax,dword ptr ss:          ;(ASCII "CATPYG")
004D4473|>8B0D 3CC55200 /mov ecx,dword ptr ds:         ;(ASCII "GMNWCL")第三段字符串
004D4479|.8B33          |mov esi,dword ptr ds:
004D447B|.0FB60C31      |movzx ecx,byte ptr ds:         ;取第三段字符串每一位
004D447F|.49            |dec ecx
004D4480|.0FB630      |movzx esi,byte ptr ds:
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:
004D448D|.40            |inc eax
004D448E|.833B 06       |cmp dword ptr ds:,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:          ;(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:
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:          ;(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:          ;(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:
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:          ;(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:
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:
004D450E|.50            push eax
004D450F|.B9 03000000   mov ecx,0x3
004D4514|.BA 05000000   mov edx,0x5
004D4519|.8B45 F0       mov eax,dword ptr ss:          ;(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:          ;(ASCII "567")
004D4526|.E8 51F2F2FF   call bigjig.0040377C                     ;取得的三位字符10进制转16进制 ,字母不参加运算
004D452B|.8BF0          mov esi,eax                              ;注册eax值
004D452D|.8D45 EC       lea eax,dword ptr ss:          ;(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:          ;(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:          ;(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:            ;注册名第一位AS值
004D4564|.03D1          add edx,ecx                              ;注册名第一位AS值加上(减的结果)
004D4566|.33C9          xor ecx,ecx
004D4568|.8A4D DD       mov cl,byte ptr ss:            ;注册名最后一位AS值
004D456B|.8D0C49      lea ecx,dword ptr ds:         ;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:,edx
004D458F|.68 A9454D00   push bigjig.004D45A9
004D4594|>8D45 EC       lea eax,dword ptr ss:
004D4597|.BA 05000000   mov edx,0x5
004D459C|.E8 B707F3FF   call bigjig.00404D58
004D45A1\.C3            retn

GGLHY 发表于 2015-8-23 15:15:37

坐着沙发前排学习!

飞天 发表于 2015-8-23 16:09:15

来支持版主的算法分析。

0xcb 发表于 2015-8-23 17:12:46

下载地址百度,哈哈

vipcrack 发表于 2015-8-23 17:24:21

大神,收我为徒吧

vipcrack 发表于 2015-8-23 17:24:58

大神,收我为徒吧

mysafer 发表于 2015-8-23 17:48:18

好用吗?!!!

mysafer 发表于 2015-8-23 17:48:32

晕了,这个!!!

mysafer 发表于 2015-8-23 17:49:07

下载看看看!

zaas 发表于 2015-8-23 18:24:44

最近很高产啊!!
页: [1] 2 3
查看完整版本: BigJig v8.25 算法分析 + 注册机源代码