mm475 发表于 2015-1-26 23:22

xx计算机职称考试模块全系列注册算法及注册机

本帖最后由 mm475 于 2015-1-26 23:25 编辑

最近好忙,没时间仔细做教程,感觉对不住兄弟们!

全系列注册机

为什么在字符串加密能猜出是MD5加密,这是peid的插件

注册成功后系统保存的注册信息
下面是简单的算法,不足之处请多多指教



004595E0/$55            push ebp
004595E1|.8BEC          mov ebp,esp
004595E3|.6A FF         push -0x1
004595E5|.68 3DE95700   push PhotoSho.0057E93D
004595EA|.64:A1 0000000>mov eax,dword ptr fs:
004595F0|.50            push eax
004595F1|.81EC 38050000 sub esp,0x538
004595F7|.A1 64D75F00   mov eax,dword ptr ds:
004595FC|.33C5          xor eax,ebp
004595FE|.8945 F0       mov ,eax
00459601|.50            push eax
00459602|.8D45 F4       lea eax,
00459605|.64:A3 0000000>mov dword ptr fs:,eax
0045960B|.898D C4FAFFFF mov ,ecx
00459611|.C785 C8FAFFFF>mov ,0x0
0045961B|.8B45 14       mov eax,
0045961E|.50            push eax
0045961F|.8B4D 18       mov ecx,
00459622|.51            push ecx
00459623|.8B55 10       mov edx,
00459626|.52            push edx
00459627|.8B45 0C       mov eax,
0045962A|.50            push eax
0045962B|.E8 6085FCFF   call PhotoSho.00421B90
00459630|.50            push eax
00459631|.68 14FB5900   push PhotoSho.0059FB14                   ;%s-%s-%s-%s-%s
00459636|.68 FF030000   push 0x3FF
0045963B|.8D8D 6CFBFFFF lea ecx,
00459641|.51            push ecx
00459642|.E8 0C421000   call PhotoSho.0055D853
00459647|.83C4 20       add esp,0x20
0045964A|.8D8D FCFAFFFF lea ecx,
00459650|.E8 4BE0FDFF   call PhotoSho.004376A0
00459655|.8D95 6CFBFFFF lea edx,
0045965B|.52            push edx
0045965C|.E8 EF111000   call PhotoSho.0055A850
00459661|.83C4 04       add esp,0x4
00459664|.50            push eax
00459665|.8D85 6CFBFFFF lea eax,
0045966B|.50            push eax
0045966C|.8D8D FCFAFFFF lea ecx,
00459672|.E8 59E1FDFF   call PhotoSho.004377D0
00459677|.6A 40         push 0x40
00459679|.6A 00         push 0x0
0045967B|.8D8D 6CFFFFFF lea ecx,                     ;软件系列-假码前10位-假码后5-机器码-版本
00459681|.51            push ecx
00459682|.E8 692E1000   call PhotoSho.0055C4F0                   ;PhotoShop6-2222222222-22222-0996290939-full
00459687|.83C4 0C       add esp,0xC
0045968A|.8D95 CCFAFFFF lea edx,
00459690|.52            push edx
00459691|.8D8D FCFAFFFF lea ecx,                      ;md5 加密后32位小写
00459697|.E8 A4F4FDFF   call PhotoSho.00438B40                   ;"0c143d86f89214819bd7d92a32b3d193"
0045969C|.8985 C0FAFFFF mov ,eax
004596A2|.8B85 C0FAFFFF mov eax,
004596A8|.8985 BCFAFFFF mov ,eax
004596AE|.C745 FC 00000>mov ,0x0
004596B5|.8B8D BCFAFFFF mov ecx,
004596BB|.E8 000F0000   call PhotoSho.0045A5C0
004596C0|.50            push eax                                 ;"0c143d86f89214819bd7d92a32b3d193"
004596C1|.8D4D AC       lea ecx,
004596C4|.51            push ecx
004596C5|.E8 46451000   call PhotoSho.0055DC10
004596CA|.83C4 08       add esp,0x8
004596CD|.C745 FC FFFFF>mov ,-0x1
004596D4|.8D8D CCFAFFFF lea ecx,
004596DA|.E8 71F5FDFF   call PhotoSho.00438C50
004596DF|.C785 F8FAFFFF>mov ,0x0                      ;计数变量初始0
004596E9|.EB 0F         jmp XPhotoSho.004596FA
004596EB|>8B95 F8FAFFFF /mov edx,
004596F1|.83C2 01       |add edx,0x1                           ;计数变量322+1
004596F4|.8995 F8FAFFFF |mov ,edx
004596FA|>83BD F8FAFFFF> cmp ,0xA                     ;是否10位
00459701|.0F8D 88000000 |jge PhotoSho.0045978F
00459707|.8B85 F8FAFFFF |mov eax,                     ;计数
0045970D|.8A4C05 AC   |mov cl,byte ptr ss:       ;取变量位
00459711|.888D F5FAFFFF |mov byte ptr ss:,cl
00459717|.8B95 F8FAFFFF |mov edx,
0045971D|.8A4415 B6   |mov al,byte ptr ss:       ;取10+变量位
00459721|.8885 F6FAFFFF |mov byte ptr ss:,al
00459727|.B9 20000000   |mov ecx,0x20                            ;20h=十进制32
0045972C|.2B8D F8FAFFFF |sub ecx,                     ; 32-变量位
00459732|.8A540D AC   |mov dl,byte ptr ss:       ;倒数变量位给dl
00459736|.8895 F7FAFFFF |mov byte ptr ss:,dl
0045973C|.0FBE85 F5FAFF>|movsx eax,byte ptr ss:       ;变量位md5后asc吗给eax
00459743|.0FBE8D F6FAFF>|movsx ecx,byte ptr ss:       ;取10+变量位asc吗给ecx
0045974A|.03C1          |add eax,ecx                           ;相加1+11 2+12 3+13。。。。。
0045974C|.0FBE95 F7FAFF>|movsx edx,byte ptr ss:       ;倒数变量位
00459753|.03C2          |add eax,edx                           ;再加最后一位asc
00459755|.99            |cdq
00459756|.B9 0A000000   |mov ecx,0xA                           ;ecx=10
0045975B|.F7F9          |idiv ecx                              ;eax除以10
0045975D|.52            |push edx                              ;取余数
0045975E|.68 24FB5900   |push PhotoSho.0059FB24                  ;%d
00459763|.6A 09         |push 0x9
00459765|.8D95 E8FAFFFF |lea edx,
0045976B|.52            |push edx
0045976C|.E8 E2401000   |call PhotoSho.0055D853
00459771|.83C4 10       |add esp,0x10
00459774|.8D85 E8FAFFFF |lea eax,
0045977A|.50            |push eax
0045977B|.8D8D 6CFFFFFF |lea ecx,
00459781|.51            |push ecx
00459782|.E8 99441000   |call PhotoSho.0055DC20
00459787|.83C4 08       |add esp,0x8
0045978A|.^ E9 5CFFFFFF   \jmp PhotoSho.004596EB            向上循环10次
0045978F|>8D95 6CFFFFFF lea edx,                     ;注册码"5053701238")
00459795|.52            push edx
00459796|.8B4D 08       mov ecx,
00459799|.E8 4218FBFF   call PhotoSho.0040AFE0
0045979E|.8B85 C8FAFFFF mov eax,
004597A4|.83C8 01       or eax,0x1
004597A7|.8985 C8FAFFFF mov ,eax
004597AD|.8B45 08       mov eax,
004597B0|.8B4D F4       mov ecx,
004597B3|.64:890D 00000>mov dword ptr fs:,ecx
004597BA|.59            pop ecx
004597BB|.8B4D F0       mov ecx,
004597BE|.33CD          xor ecx,ebp
004597C0|.E8 480F1000   call PhotoSho.0055A70D
004597C5|.8BE5          mov esp,ebp
004597C7|.5D            pop ebp
004597C8\.C2 1400       retn 0x14

注册码
1位:md5加密后转asc码 (1位+11位+0)除以10取余
2位:md5加密后转asc码 (2位+12位+32位)除以10取余
3位:md5加密后转asc码 (3位+13位+31位)除以10取余
4位:md5加密后转asc码 (4位+14位+30位)除以10取余
5位:md5加密后转asc码 (5位+15位+29位)除以10取余
…………
10位:md5加密后转asc码 (10位+20位+24位)除以10取余

易语言注册机代码
.版本 2
.支持库 Md5
.支持库 spec
.程序集变量 md5加密, 文本型
.程序集变量 密码表, 字节集
.程序集变量 注册码, 文本型
.程序集变量 系列, 文本型
.程序集变量 版本, 文本型
.子程序 _按钮1_被单击
.局部变量 n, 整数型
.局部变量 y, 整数型
.局部变量 注册码文本, 文本型
注册码 = “”
机器码 ()
密码表 = 到字节集 (md5加密)
.计次循环首 (9, n)
    n = 1 + n
    y = 32 - n + 2
    注册码 = 注册码 + 到文本 (取整 ((密码表 + 密码表 + 密码表 ) % 10))
.计次循环尾 ()
注册码文本 = 到文本 ((密码表 + 密码表 ) % 10) + 注册码
编辑框注册1.内容 = 取文本左边 (注册码文本, 5)
编辑框注册5.内容 = 取文本右边 (注册码文本, 5)

.子程序 机器码
.局部变量 a, 字节集
.局部变量 i, 整数型
.判断开始 (组合框系列.现行选中项 = 0)
    系列 = “WindowsXP”
.判断 (组合框系列.现行选中项 = 1)
    系列 = “PhotoShop6”
.判断 (组合框系列.现行选中项 = 2)
    系列 = “Windows7”
.判断 (组合框系列.现行选中项 = 3)
    系列 = “Word2003”
.判断 (组合框系列.现行选中项 = 4)
    系列 = “Word2007”
.判断 (组合框系列.现行选中项 = 5)
    系列 = “PPT2003”
.判断 (组合框系列.现行选中项 = 6)
    系列 = “PPT2007”
.判断 (组合框系列.现行选中项 = 7)
    系列 = “Excel2003”
.判断 (组合框系列.现行选中项 = 8)
    系列 = “Excel2007”
.默认
.判断结束
.判断开始 (组合框版本.现行选中项 = 0)
    版本 = “full”
.判断 (组合框版本.现行选中项 = 1)
    版本 = “part”
.判断 (组合框版本.现行选中项 = 2)
    版本 = “mini”
.判断 (组合框版本.现行选中项 = 3)
    版本 = “seni”
.默认
.判断结束

md5加密 = 字符串加密 (系列 + “-” + 编辑框序列号.内容 + “-” + 编辑框机器码.内容 + “-” + 版本)




gmh5225 发表于 2015-1-26 23:24

475兄,这个是不是我上次那个职称软件哈。。

zx2cwf 发表于 2015-1-26 23:26

先抢楼占个位前排支持

mm475 发表于 2015-1-26 23:27

gmh5225 发表于 2015-1-26 23:24
475兄,这个是不是我上次那个职称软件哈。。

哦!你分析过算法?我没注意到,最近忙很少上!你要分析过,我就删除帖子,真心的

gmh5225 发表于 2015-1-26 23:28

mm475 发表于 2015-1-26 23:27
哦!你分析过算法?我没注意到,最近忙很少上!你要分析过,我就删除帖子,真心的

https://www.52hb.com/thread-4182-1-1.html
看下这个吧,没事,不用删

mm475 发表于 2015-1-26 23:29

gmh5225 发表于 2015-1-26 23:24
475兄,这个是不是我上次那个职称软件哈。。

真是的,那我找管理删除算了

gmh5225 发表于 2015-1-26 23:30

mm475 发表于 2015-1-26 23:29
真是的,那我找管理删除算了

没事,多一个人多一个思路

阿菜 发表于 2015-1-26 23:32

mm475 发表于 2015-1-26 23:27
哦!你分析过算法?我没注意到,最近忙很少上!你要分析过,我就删除帖子,真心的

MM牛的作品一直都很详细,辛辛苦苦的作品删除太浪费了{:5_191:}突然感觉到你们这些大牛都很有默契,感觉注册机也长得差不多{:6_202:}

mm475 发表于 2015-1-26 23:33

gmh5225 发表于 2015-1-26 23:24
475兄,这个是不是我上次那个职称软件哈。。

我看到你的帖子了,还真是!呵呵!不过我这个也是原创,前天晚上整到4点!

Shark恒 发表于 2015-1-26 23:36

百忙之中有教程,感谢475的精彩分享!

页: [1] 2 3 4
查看完整版本: xx计算机职称考试模块全系列注册算法及注册机