注册码的计算过程比较简单,正好用来练习。
注册码的第一个条件是必须九位且必须是数字
0044FD9C PUSH EBX
0044FD9D PUSH ESI
0044FD9E PUSH EDI
0044FD9F MOV EBX,EDX
0044FDA1 XOR ECX,ECX
0044FDA3 XOR EAX,EAX
0044FDA5 MOV EDX,EBX
0044FDA7 /MOVSX ESI,BYTE PTR DS:[EDX] \
0044FDAA |LEA EDI,DWORD PTR DS:[EAX+1] |
0044FDAD |INC EAX |
0044FDAE |IMUL ESI,EDI }注册码的前八位的ASCII值乘它的位数相加
0044FDB1 |ADD ECX,ESI |
0044FDB3 |INC EDX |
0044FDB4 |CMP EAX,8 /
0044FDB7 \JL SHORT ADVISOR.0044FDA7
0044FDB9 MOV EAX,ECX
0044FDBB MOV EDI,0A ;EDI 赋值
0044FDC0 CDQ ;EDX 清零
0044FDC1 IDIV EDI ;EAX mod EDI ==>值放到 EDX
0044FDC3 MOVSX ESI,BYTE PTR DS:[EBX+8]
0044FDC7 ADD ESI,-30 ; 注册码判断的第二个条件:
0044FDCA CMP EDX,ESI ; ascII值加的和 mod A =最后一位
0044FDCC JNZ SHORT ADVISOR.0044FDD5 ;如果不同就进行第二次计算:
0044FDCE MOV EAX,1
0044FDD3 JMP SHORT ADVISOR.0044FE01
0044FDD5 MOV EAX,ECX
0044FDD7 MOV EDI,9 ;EDI 赋值
0044FDDC CDQ ;EDX 清零
0044FDDD IDIV EDI ;EAX mod EDI ==>值放到 EDX
0044FDDF CMP ESI,EDX ;ascII值加的和 mod 9 =最后一位
0044FDE1 JNZ SHORT ADVISOR.0044FDEA ;如果不同就进行第三次计算:
0044FDE3 MOV EAX,2
0044FDE8 JMP SHORT ADVISOR.0044FE01
0044FDEA MOV EAX,ECX
0044FDEC MOV ECX,7 ;EDI 赋值
0044FDF1 CDQ ;EDX 清零
0044FDF2 IDIV ECX ;EAX mod EDI ==>值放到 EDX
0044FDF4 CMP ESI,EDX ;ascII值加的和 mod 7 =最后一位
0044FDF6 JNZ SHORT ADVISOR.0044FDFF ;死翘翘了
0044FDF8 MOV EAX,3
0044FDFD JMP SHORT ADVISOR.0044FE01
0044FDFF XOR EAX,EAX
0044FE01 POP EDI
0044FE02 POP ESI
0044FE03 POP EBX
0044FE04 RETN
以上可以看出注册码的第九位可能有三个值,也就是说注册码可能有三个。
********************************************************************************
0044F333 MOV WORD PTR SS:[EBP-88],20
0044F33C XOR ECX,ECX
0044F33E MOV DWORD PTR SS:[EBP-C],ECX
0044F341 LEA EDX,DWORD PTR SS:[EBP-C]
0044F344 INC DWORD PTR SS:[EBP-7C]
0044F347 MOV EAX,DWORD PTR DS:[EBX+30C]
0044F34D CALL; 取得软件号 函数
0044F352 CMP DWORD PTR SS:[EBP-C],0
0044F356 JE SHORT ADVISOR.0044F35D
0044F358 MOV ECX,DWORD PTR SS:[EBP-C]
0044F35B JMP SHORT ADVISOR.0044F362
0044F35D MOV ECX,ADVISOR.004875DB
0044F362 PUSH ECX ; /41000891
0044F363 PUSH ADVISOR.004875D8 ; |format = "%s"
0044F368 LEA EAX,DWORD PTR SS:[EBP-AC] ; |
0044F36E PUSH EAX ; |s
0044F36F CALL; \_sprintf
0044F374 ADD ESP,0C
0044F377 DEC DWORD PTR SS:[EBP-7C]
0044F37A LEA EAX,DWORD PTR SS:[EBP-C]
0044F37D MOV EDX,2
0044F382 CALL ADVISOR.00466FA4 ; 第三个条件:注册码的第四位计算
0044F387 LEA ESI,DWORD PTR SS:[EBP-BC] ; 输入的数字-->ESI
0044F38D MOV AL,BYTE PTR DS:[ESI+3] ; 输入的第四位----->AL
0044F390 ADD AL,4 ; ASCII 码 +4
0044F392 CMP AL,BYTE PTR SS:[EBP-AC] ; 第四位=软件号的第一位-4
0044F398 JE SHORT ADVISOR.0044F3C0 ; 如果不是数字就进行以下计算:
0044F39A MOV AL,64 ; 赋值 AL==64
0044F39C SUB AL,BYTE PTR DS:[ESI+3] ; 64-注册码的第四位的ASCII值
0044F39F CMP AL,BYTE PTR SS:[EBP-AC] ; 注册码的第四位=4-软件号的第一位
0044F3A5 JE SHORT ADVISOR.0044F3C0
0044F3A7 MOV EAX,EBX
0044F3A9 CALL ADVISOR.0044FF88 ;死翘翘了
0044F3AE MOV EDX,DWORD PTR SS:[EBP-98]
0044F3B4 MOV DWORD PTR FS:[0],EDX
0044F3BB JMP ADVISOR.0044FABE
0044F3C0 MOV AL,BYTE PTR DS:[ESI+4] ; 第四个条件:注册码的第五位计算
0044F3C3 ADD AL,5 ; ASCII 码 +5
0044F3C5 CMP AL,BYTE PTR SS:[EBP-AB] ; 第五位=软件号的第二位-5
0044F3CB JE SHORT ADVISOR.0044F3F3 ; 如果不是数字就进行以下计算:
0044F3CD MOV AL,65 ; 赋值 AL=65
0044F3CF SUB AL,BYTE PTR DS:[ESI+4] ;
0044F3D2 CMP AL,BYTE PTR SS:[EBP-AB] ;
0044F3D8 JE SHORT ADVISOR.0044F3F3 ; 注册码的第五位=5-软件号的第二位
0044F3DA MOV EAX,EBX
0044F3DC CALL ADVISOR.0044FF88 ;死翘翘了
0044F3E1 MOV EDX,DWORD PTR SS:[EBP-98]
0044F3E7 MOV DWORD PTR FS:[0],EDX
0044F3EE JMP ADVISOR.0044FABE
0044F3F3 MOV AL,BYTE PTR DS:[ESI+1] ; 第五个条件:注册码的第二位计算
0044F3F6 ADD AL,2 ; ASCII码+2
0044F3F8 CMP AL,BYTE PTR SS:[EBP-AA] ; 值=软件号的第三位ASCII值
0044F3FE JE SHORT ADVISOR.0044F426 ; 注册码的第二位=软件号的第三位-2
0044F400 MOV AL,62 ; 如果不是数字就进行以下计算:
0044F402 SUB AL,BYTE PTR DS:[ESI+1]
0044F405 CMP AL,BYTE PTR SS:[EBP-AA] ; 注册码的第二位=2-软件号的第三位
0044F40B JE SHORT ADVISOR.0044F426
0044F40D MOV EAX,EBX
0044F40F CALL ADVISOR.0044FF88
0044F414 MOV EDX,DWORD PTR SS:[EBP-98]
0044F41A MOV DWORD PTR FS:[0],EDX
0044F421 JMP ADVISOR.0044FABE
0044F426 MOV AL,BYTE PTR DS:[ESI+7] ; 条件六:注册码的第八位计算
0044F429 ADD AL,8 ; ASCII 值+8
0044F42B CMP AL,BYTE PTR SS:[EBP-A9] ; 注册码的第八位=软件号的第四位-8
0044F431 JE SHORT ADVISOR.0044F459 ; 如果不是数字就进行以下计算:
0044F433 MOV AL,68
0044F435 SUB AL,BYTE PTR DS:[ESI+7]
0044F438 CMP AL,BYTE PTR SS:[EBP-A9] ;注册码的第八位=8-软件号的第四位
0044F43E JE SHORT ADVISOR.0044F459
0044F440 MOV EAX,EBX
0044F442 CALL ADVISOR.0044FF88
0044F447 MOV EDX,DWORD PTR SS:[EBP-98]
0044F44D MOV DWORD PTR FS:[0],EDX
0044F454 JMP ADVISOR.0044FABE
0044F459 MOV AL,BYTE PTR DS:[ESI+6] ; 条件七:注册码的第七位计算
0044F45C ADD AL,7
0044F45E CMP AL,BYTE PTR SS:[EBP-A8] ; 注册码的第七位=软件号的第五位-7
0044F464 JE SHORT ADVISOR.0044F48C ; 如果不是数字就进行以下计算:
0044F466 MOV AL,67
0044F468 SUB AL,BYTE PTR DS:[ESI+6]
0044F46B CMP AL,BYTE PTR SS:[EBP-A8] ;注册码的第七位=7-软件号的第五位
0044F471 JE SHORT ADVISOR.0044F48C
0044F473 MOV EAX,EBX
0044F475 CALL ADVISOR.0044FF88
0044F47A MOV EDX,DWORD PTR SS:[EBP-98]
0044F480 MOV DWORD PTR FS:[0],EDX
0044F487 JMP ADVISOR.0044FABE
0044F48C MOV AL,BYTE PTR DS:[ESI] ; 条件八:注册码的第一位计算
0044F48E INC EAX
0044F48F CMP AL,BYTE PTR SS:[EBP-A7] ; 注册码的第一位=软件号的第六位-1 0044F495 JE SHORT ADVISOR.0044F4BC ; 如果不是数字就进行以下计算:
0044F497 MOV AL,61
0044F499 SUB AL,BYTE PTR DS:[ESI]
0044F49B CMP AL,BYTE PTR SS:[EBP-A7] ;注册码的第一位=1-软件号的第六位
0044F4A1 JE SHORT ADVISOR.0044F4BC
0044F4A3 MOV EAX,EBX
0044F4A5 CALL ADVISOR.0044FF88
0044F4AA MOV EDX,DWORD PTR SS:[EBP-98]
0044F4B0 MOV DWORD PTR FS:[0],EDX
0044F4B7 JMP ADVISOR.0044FABE
0044F4BC MOV WORD PTR SS:[EBP-88],2C
0044F4C5 LEA EDX,DWORD PTR SS:[EBP-AC]
0044F4CB LEA EAX,DWORD PTR SS:[EBP-10]
0044F4CE CALL ADVISOR.00466E4C
0044F4D3 INC DWORD PTR SS:[EBP-7C]
0044F4D6 MOV EAX,DWORD PTR DS:[EAX]
0044F4D8 CALL
0044F4DD MOV EDI,EAX
0044F4DF MOV EAX,EBX
0044F4E1 CALL ADVISOR.0044FC74
0044F4E6 CMP EDI,EAX
0044F4E8 LEA EAX,DWORD PTR SS:[EBP-10]
0044F4EB SETNE DL
0044F4EE AND EDX,1
0044F4F1 PUSH EDX ; /Arg1
0044F4F2 MOV EDX,2 ; |
0044F4F7 DEC DWORD PTR SS:[EBP-7C] ; |
0044F4FA CALL ADVISOR.00466FA4 ; \Advisor.00466FA4
0044F4FF POP ECX
0044F500 TEST CL,CL
0044F502 JE SHORT ADVISOR.0044F510
0044F504 MOV EAX,DWORD PTR DS:[<&VCL50.@forms@App>
0044F509 MOV EAX,DWORD PTR DS:[EAX]
0044F50B CALL
0044F510 MOV AL,BYTE PTR DS:[ESI+5] ; 条件九:注册码的第六位计算
0044F513 ADD AL,6 ; ASCII值+6
0044F515 CMP AL,BYTE PTR SS:[EBP-A6] ; 注册码的第六位=软件号的第七位-6
0044F51B JE SHORT ADVISOR.0044F543 ; 如果不是数字就进行以下计算:
0044F51D MOV AL,66
0044F51F SUB AL,BYTE PTR DS:[ESI+5]
0044F522 CMP AL,BYTE PTR SS:[EBP-A6] ; 注册码的第六位=6-软件号的第七位
0044F528 JE SHORT ADVISOR.0044F543
0044F52A MOV EAX,EBX
0044F52C CALL ADVISOR.0044FF88
0044F531 MOV EDX,DWORD PTR SS:[EBP-98]
0044F537 MOV DWORD PTR FS:[0],EDX
0044F53E JMP ADVISOR.0044FABE
0044F543 MOV AL,BYTE PTR DS:[ESI+2] ; 条件十:注册码的第三位计算
0044F546 ADD AL,3 ; ASCII 值+3
0044F548 CMP AL,BYTE PTR SS:[EBP-A5] ; 注册码的第三位=软件号的第八位-3
0044F54E JE SHORT ADVISOR.0044F576 ; 如果不是数字就进行以下计算:
0044F550 MOV AL,63
0044F552 SUB AL,BYTE PTR DS:[ESI+2]
0044F555 CMP AL,BYTE PTR SS:[EBP-A5] ; 注册码的第三位=3-软件号的第八位
0044F55B JE SHORT ADVISOR.0044F576
0044F55D MOV EAX,EBX
0044F55F CALL ADVISOR.0044FF88
0044F564 MOV EDX,DWORD PTR SS:[EBP-98]
0044F56A MOV DWORD PTR FS:[0],EDX
0044F571 JMP ADVISOR.0044FABE
0044F576 MOV DL,1
0044F578 MOV EAX,DWORD PTR DS:[<&VCL50.@Registry@>
0044F57D CALL
0044F582 MOV DWORD PTR SS:[EBP-9C],EAX
0044F588 MOV EDX,80000001
0044F58D MOV EAX,DWORD PTR SS:[EBP-9C]
0044F593 CALL ADVISOR.00466E3C
0044F598 MOV WORD PTR SS:[EBP-88],38
0044F5A1 MOV WORD PTR SS:[EBP-88],44
0044F5AA MOV EDX,ADVISOR.004875DC ; ASCII "\Software\Chess Advisor"
0044F5AF LEA EAX,DWORD PTR SS:[EBP-14]
0044F5B2 CALL ADVISOR.00466E4C
0044F5B7 INC DWORD PTR SS:[EBP-7C]
0044F5BA MOV EDX,DWORD PTR DS:[EAX]
0044F5BC MOV CL,1
================================================================================
以上总结:注册码的计算过程如下
注册码长度为 9 且必须是数字
设软件序列号为: ABCDEFGH
软件注册码为:abcdefghi
1: a=F-1 or a=1-F
2: b=C-2 or b=2-C
3: c=H-3 or c=3-H
4: d=A-4 or d=4-A
5: e=B-5 or e=5-B
6: f=G-6 or f=6-G
7: g=E-7 or g=7-E
8: h=D-8 or h=8-D
9: i= ("a"+"b"*2+"c"*3+"d"*4+"e"*5+"f"*6+"g"*7) mod A
or i= ("a"+"b"*2+"c"*3+"d"*4+"e"*5+"f"*6+"g"*7) mod 9
or i= ("a"+"b"*2+"c"*3+"d"*4+"e"*5+"f"*6+"g"*7) mod 7
fxyang
2003.2.7
相关视频
相关阅读 Windows错误代码大全 Windows错误代码查询激活windows有什么用Mac QQ和Windows QQ聊天记录怎么合并 Mac QQ和Windows QQ聊天记录Windows 10自动更新怎么关闭 如何关闭Windows 10自动更新windows 10 rs4快速预览版17017下载错误问题Win10秋季创意者更新16291更新了什么 win10 16291更新内容windows10秋季创意者更新时间 windows10秋季创意者更新内容kb3150513补丁更新了什么 Windows 10补丁kb3150513是什么
热门文章 去除winrar注册框方法
最新文章
比特币病毒怎么破解 比去除winrar注册框方法
华为无线路由器HG522-C破解教程(附超级密码JEB格式文件京东电子书下载和阅读限制破解教UltraISO注册码全集(最新)通过Access破解MSSQL获得数据
人气排行 华为无线路由器HG522-C破解教程(附超级密码JEB格式文件京东电子书下载和阅读限制破解教UltraISO注册码全集(最新)qq相册密码破解方法去除winrar注册框方法(适应任何版本)怎么用手机破解收费游戏华为无线猫HG522破解如何给软件脱壳基础教程
查看所有0条评论>>