野猫III 发表于 2006-7-7 11:18:44

原帖由 快雪时晴 于 2006-7-7 08:41 发表
上次发的注册机有个不足就是生成的注册码过长了,看着别扭,那么我再给个好看点的,
注册码与用户名等长度,而且代码超级简单:-)

(当然,有可能生成注册码中出现不可打印字符情况,此时无效,那就换个用户 ...

hoho~好有特色的注册码嘛~

特向兄弟请教,为什么你的易语言算法注册机才8K呀~比源码还要小的说~

+++++++++++++++++++算法分析先别放~

快雪时晴 发表于 2006-7-7 13:01:41

原帖由 野猫III 于 2006-7-7 11:18 发表


hoho~好有特色的注册码嘛~

特向兄弟请教,为什么你的易语言算法注册机才8K呀~比源码还要小的说~

+++++++++++++++++++算法分析先别放~

编译时不要选独立编译,500多k的支持库krnln.fnr就不会捆绑到一起了.

其实算法已经十分明显了

野猫III 发表于 2006-7-8 01:34:05

原帖由 快雪时晴 于 2006-7-7 13:01 发表


编译时不要选独立编译,500多k的支持库krnln.fnr就不会捆绑到一起了.

其实算法已经十分明显了

不知道编出来的算法注册机通用不。。。

快雪时晴 发表于 2006-7-8 21:57:49

原帖由 野猫III 于 2006-7-8 01:34 发表
不知道编出来的算法注册机通用不。。。

IF(是指XP?win2k?98?me?的通用性吗?)

   这由易语言平台决定,应该通用吧

ELSEIF(You mean 注册机是否会算错)

   第一个完全通用,不管你输入啥用户名,中文或ASCII;
   第二个由于没有对不可见字符情况进行额外处理(为了保持算法的简单明了),因此如果你看到生成的注册码有空格或者?就把用户名调整一下吧

ELSE

问题再表述一下

ENDIF

浮云思音 发表于 2006-7-10 11:09:34

对啦,高手讨论问题菜鸟大有收获,如果在群里高手都这样讨论就好了

cby1990 发表于 2006-7-11 00:46:30

0040D5AC   55                   push ebp
0040D5AD   8BEC               mov ebp,esp
0040D5AF   81EC 48000000      sub esp,48
0040D5B5   C745 FC 00000000   mov dword ptr ss:,0                         ; 代码和
0040D5BC   C745 F8 00000000   mov dword ptr ss:,0                         ; 循环变量
0040D5C3   C745 F4 00000000   mov dword ptr ss:,0                         ; 用户名
0040D5CA   C745 F0 00000000   mov dword ptr ss:,0                        ; 序列号
0040D5D1   C745 EC 00000000   mov dword ptr ss:,0                        ; 用户名长度
0040D5D8   C745 E8 00000000   mov dword ptr ss:,0                        ; 序列号长度
0040D5DF   C745 E4 00000000   mov dword ptr ss:,0
0040D5E6   C745 E0 00000000   mov dword ptr ss:,0
0040D5ED   C745 FC 00000000   mov dword ptr ss:,0
0040D5F4   C745 F8 01000000   mov dword ptr ss:,1
0040D5FB   6A FF                push -1
0040D5FD <>6A 08                push 8                                             ; 内容(“编辑框1”的属性)
0040D5FF <>68 0F000116          push 1601000F                                    ; 编辑框1(编辑框)
0040D604 <>68 01000152          push 52010001                                    ; 窗体单元1(父窗体)
0040D609 <>E8 A0030000          call 复件_原?0040D9AE                                 ; 取窗体对象属性(调用4号服务)
0040D60E   83C4 10            add esp,10
0040D611   8945 DC            mov dword ptr ss:,eax
0040D614   8B45 DC            mov eax,dword ptr ss:
0040D617   50                   push eax
0040D618   8B5D F4            mov ebx,dword ptr ss:
0040D61B   85DB               test ebx,ebx
0040D61D   74 09                je short 复件_原?0040D628
0040D61F   53                   push ebx
0040D620 <>E8 7D030000          call 复件_原?0040D9A2                                 ; 销毁从堆上分配到的内存(调用8号服务)
0040D625   83C4 04            add esp,4
0040D628   58                   pop eax
0040D629   8945 F4            mov dword ptr ss:,eax
0040D62C   6A FF                push -1
0040D62E <>6A 08                push 8                                             ; 内容(“编辑框2”的属性)
0040D630 <>68 0E000116          push 1601000E                                    ; 编辑框2(编辑框)
0040D635 <>68 01000152          push 52010001                                    ; 窗体单元1(父窗体)
0040D63A <>E8 6F030000          call 复件_原?0040D9AE                                 ; 取窗体对象属性(调用4号服务)
0040D63F   83C4 10            add esp,10
0040D642   8945 DC            mov dword ptr ss:,eax
0040D645   8B45 DC            mov eax,dword ptr ss:
0040D648   50                   push eax
0040D649   8B5D F0            mov ebx,dword ptr ss:
0040D64C   85DB               test ebx,ebx
0040D64E   74 09                je short 复件_原?0040D659
0040D650   53                   push ebx
0040D651 <>E8 4C030000          call 复件_原?0040D9A2                                 ; 销毁从堆上分配到的内存(调用8号服务)
0040D656   83C4 04            add esp,4
0040D659   58                   pop eax
0040D65A   8945 F0            mov dword ptr ss:,eax
0040D65D <>68 04000080          push 80000004                                    ; 文本型(基本数据类型)
0040D662   6A 00                push 0
0040D664   8B45 F4            mov eax,dword ptr ss:
0040D667   85C0               test eax,eax
0040D669   75 05                jnz short 复件_原?0040D670
0040D66B <>B8 CB304000          mov eax,复件_原?004030CB                              ; (常量)
0040D670   50                   push eax
0040D671   68 01000000          push 1
0040D676 <>BB 30010000          mov ebx,130                                        ; 取文本长度(系统核心支持库)
0040D67B <>E8 28030000          call 复件_原?0040D9A8                                 ; 调用核心支持库命令(调用3号服务)
0040D680   83C4 10            add esp,10
0040D683   8945 EC            mov dword ptr ss:,eax
0040D686 <>68 04000080          push 80000004                                    ; 文本型(基本数据类型)
0040D68B   6A 00                push 0
0040D68D   8B45 F0            mov eax,dword ptr ss:
0040D690   85C0               test eax,eax
0040D692   75 05                jnz short 复件_原?0040D699
0040D694 <>B8 CB304000          mov eax,复件_原?004030CB                              ; (常量)
0040D699   50                   push eax
0040D69A   68 01000000          push 1
0040D69F <>BB 30010000          mov ebx,130                                        ; 取文本长度(系统核心支持库)
0040D6A4 <>E8 FF020000          call 复件_原?0040D9A8                                 ; 调用核心支持库命令(调用3号服务)
0040D6A9   83C4 10            add esp,10
0040D6AC   8945 E8            mov dword ptr ss:,eax
0040D6AF   6A FF                push -1
0040D6B1 <>6A 08                push 8                                             ; 内容(“编辑框1”的属性)
0040D6B3 <>68 0F000116          push 1601000F                                    ; 编辑框1(编辑框)
0040D6B8 <>68 01000152          push 52010001                                    ; 窗体单元1(父窗体)
0040D6BD <>E8 EC020000          call 复件_原?0040D9AE                                 ; 取窗体对象属性(调用4号服务)
0040D6C2   83C4 10            add esp,10
0040D6C5   8945 DC            mov dword ptr ss:,eax
0040D6C8 <>68 CB304000          push 复件_原?004030CB                                 ; (常量)
0040D6CD   FF75 DC            push dword ptr ss:
0040D6D0   E8 3AFEFFFF          call 复件_原?0040D50F                                 ; 是否为空
0040D6D5   83C4 08            add esp,8
0040D6D8   83F8 00            cmp eax,0
0040D6DB   B8 00000000          mov eax,0
0040D6E0   0F95C0               setne al
0040D6E3   8945 D8            mov dword ptr ss:,eax
0040D6E6   8B5D DC            mov ebx,dword ptr ss:
0040D6E9   85DB               test ebx,ebx
0040D6EB   74 09                je short 复件_原?0040D6F6
0040D6ED   53                   push ebx
0040D6EE <>E8 AF020000          call 复件_原?0040D9A2                                 ; 销毁从堆上分配到的内存(调用8号服务)
0040D6F3   83C4 04            add esp,4
0040D6F6   837D D8 00         cmp dword ptr ss:,0
0040D6FA   0F84 58000000      je 复件_原?0040D758                                 ; 跳死
0040D700   6A FF                push -1
0040D702 <>6A 08                push 8                                             ; 内容(“编辑框2”的属性)
0040D704 <>68 0E000116          push 1601000E                                    ; 编辑框2(编辑框)
0040D709 <>68 01000152          push 52010001                                    ; 窗体单元1(父窗体)
0040D70E <>E8 9B020000          call 复件_原?0040D9AE                                 ; 取窗体对象属性(调用4号服务)
0040D713   83C4 10            add esp,10
0040D716   8945 D4            mov dword ptr ss:,eax
0040D719 <>68 CB304000          push 复件_原?004030CB                                 ; (常量)
0040D71E   FF75 D4            push dword ptr ss:
0040D721   E8 E9FDFFFF          call 复件_原?0040D50F
0040D726   83C4 08            add esp,8
0040D729   83F8 00            cmp eax,0
0040D72C   B8 00000000          mov eax,0
0040D731   0F95C0               setne al
0040D734   8945 D0            mov dword ptr ss:,eax
0040D737   8B5D D4            mov ebx,dword ptr ss:
0040D73A   85DB               test ebx,ebx
0040D73C   74 09                je short 复件_原?0040D747
0040D73E   53                   push ebx
0040D73F <>E8 5E020000          call 复件_原?0040D9A2                                 ; 销毁从堆上分配到的内存(调用8号服务)
0040D744   83C4 04            add esp,4
0040D747   837D D0 00         cmp dword ptr ss:,0
0040D74B   0F84 07000000      je 复件_原?0040D758                                 ; 序列号为空就死
0040D751   B8 01000000          mov eax,1
0040D756   EB 02                jmp short 复件_原?0040D75A
0040D758   33C0               xor eax,eax
0040D75A   85C0               test eax,eax
0040D75C   0F84 78010000      je 复件_原?0040D8DA
0040D762   8B45 EC            mov eax,dword ptr ss:
0040D765   33C9               xor ecx,ecx
0040D767   50                   push eax
0040D768   8D45 F8            lea eax,dword ptr ss:
0040D76B   8BD8               mov ebx,eax
0040D76D   58                   pop eax
0040D76E   41                   inc ecx
0040D76F   51                   push ecx                                           ; 记次循环
0040D770   53                   push ebx
0040D771   890B               mov dword ptr ds:,ecx
0040D773   50                   push eax
0040D774   3BC8               cmp ecx,eax
0040D776   0F8F 63000000      jg 复件_原?0040D7DF
0040D77C <>68 01030080          push 80000301                                    ; 整数型(基本数据类型)
0040D781   6A 00                push 0
0040D783   FF75 F8            push dword ptr ss:
0040D786 <>68 04000080          push 80000004                                    ; 文本型(基本数据类型)
0040D78B   6A 00                push 0
0040D78D   8B45 F4            mov eax,dword ptr ss:
0040D790   85C0               test eax,eax
0040D792   75 05                jnz short 复件_原?0040D799
0040D794 <>B8 CB304000          mov eax,复件_原?004030CB                              ; (常量)
0040D799   50                   push eax
0040D79A   68 02000000          push 2
0040D79F <>BB 44010000          mov ebx,144                                        ; 取代码(系统核心支持库)
0040D7A4 <>E8 FF010000          call 复件_原?0040D9A8                                 ; 调用核心支持库命令(调用3号服务)
0040D7A9   83C4 1C            add esp,1C
0040D7AC   8845 E4            mov byte ptr ss:,al
0040D7AF   DB45 FC            fild dword ptr ss:
0040D7B2   DD5D D8            fstp qword ptr ss:
0040D7B5   DD45 D8            fld qword ptr ss:
0040D7B8   8B45 E4            mov eax,dword ptr ss:
0040D7BB   25 FF000000          and eax,0FF
0040D7C0   8945 D0            mov dword ptr ss:,eax
0040D7C3   DB45 D0            fild dword ptr ss:
0040D7C6   DD5D D0            fstp qword ptr ss:
0040D7C9   DC45 D0            fadd qword ptr ss:
0040D7CC   DD5D C8            fstp qword ptr ss:
0040D7CF   DD45 C8            fld qword ptr ss:
0040D7D2   E8 FAFBFFFF          call 复件_原?0040D3D1
0040D7D7   8945 FC            mov dword ptr ss:,eax
0040D7DA   58                   pop eax
0040D7DB   5B                   pop ebx
0040D7DC   59                   pop ecx
0040D7DD   ^ EB 8F                jmp short 复件_原?0040D76E
0040D7DF   83C4 0C            add esp,0C
0040D7E2   C745 F8 01000000   mov dword ptr ss:,1
0040D7E9   DB45 EC            fild dword ptr ss:
0040D7EC   DD5D D8            fstp qword ptr ss:
0040D7EF   DD45 D8            fld qword ptr ss:
0040D7F2   DB45 EC            fild dword ptr ss:
0040D7F5   DD5D D0            fstp qword ptr ss:
0040D7F8   DC4D D0            fmul qword ptr ss:
0040D7FB   DD5D C8            fstp qword ptr ss:
0040D7FE   DB45 FC            fild dword ptr ss:
0040D801   DD5D C0            fstp qword ptr ss:
0040D804   DD45 C0            fld qword ptr ss:
0040D807   DC45 C8            fadd qword ptr ss:
0040D80A   DD5D B8            fstp qword ptr ss:
0040D80D   DD45 B8            fld qword ptr ss:
0040D810   E8 BCFBFFFF          call 复件_原?0040D3D1                                 ; 长度*长度 加上综合
0040D815   8945 FC            mov dword ptr ss:,eax
0040D818   8B45 E8            mov eax,dword ptr ss:                      ; 序列号长度
0040D81B   33C9               xor ecx,ecx
0040D81D   50                   push eax
0040D81E   8D45 F8            lea eax,dword ptr ss:
0040D821   8BD8               mov ebx,eax
0040D823   58                   pop eax
0040D824   41                   inc ecx
0040D825   51                   push ecx
0040D826   53                   push ebx
0040D827   890B               mov dword ptr ds:,ecx
0040D829   50                   push eax
0040D82A   3BC8               cmp ecx,eax
0040D82C   0F8F 63000000      jg 复件_原?0040D895
0040D832 <>68 01030080          push 80000301                                    ; 整数型(基本数据类型)
0040D837   6A 00                push 0
0040D839   FF75 F8            push dword ptr ss:
0040D83C <>68 04000080          push 80000004                                    ; 文本型(基本数据类型)
0040D841   6A 00                push 0
0040D843   8B45 F0            mov eax,dword ptr ss:
0040D846   85C0               test eax,eax
0040D848   75 05                jnz short 复件_原?0040D84F
0040D84A <>B8 CB304000          mov eax,复件_原?004030CB                              ; (常量)
0040D84F   50                   push eax
0040D850   68 02000000          push 2
0040D855 <>BB 44010000          mov ebx,144                                        ; 取代码(系统核心支持库)
0040D85A <>E8 49010000          call 复件_原?0040D9A8                                 ; 调用核心支持库命令(调用3号服务)
0040D85F   83C4 1C            add esp,1C
0040D862   8845 E4            mov byte ptr ss:,al
0040D865   DB45 E0            fild dword ptr ss:
0040D868   DD5D D8            fstp qword ptr ss:
0040D86B   DD45 D8            fld qword ptr ss:
0040D86E   8B45 E4            mov eax,dword ptr ss:
0040D871   25 FF000000          and eax,0FF
0040D876   8945 D0            mov dword ptr ss:,eax
0040D879   DB45 D0            fild dword ptr ss:
0040D87C   DD5D D0            fstp qword ptr ss:
0040D87F   DC45 D0            fadd qword ptr ss:
0040D882   DD5D C8            fstp qword ptr ss:
0040D885   DD45 C8            fld qword ptr ss:
0040D888   E8 44FBFFFF          call 复件_原?0040D3D1
0040D88D   8945 E0            mov dword ptr ss:,eax
0040D890   58                   pop eax
0040D891   5B                   pop ebx
0040D892   59                   pop ecx
0040D893   ^ EB 8F                jmp short 复件_原?0040D824
0040D895   83C4 0C            add esp,0C
0040D898   8B45 FC            mov eax,dword ptr ss:
0040D89B   3945 E0            cmp dword ptr ss:,eax
0040D89E   0F85 36000000      jnz 复件_原?0040D8DA
0040D8A4 <>68 04000080          push 80000004                                    ; 文本型(基本数据类型)
0040D8A9   6A 00                push 0
0040D8AB <>68 D4304000          push 复件_原?004030D4                                 ; Good Job(常量)
0040D8B0 <>68 01030080          push 80000301                                    ; 整数型(基本数据类型)
0040D8B5   6A 00                push 0
0040D8B7   68 40000000          push 40
0040D8BC <>68 04000080          push 80000004                                    ; 文本型(基本数据类型)
0040D8C1   6A 00                push 0
0040D8C3 <>68 DD304000          push 复件_原?004030DD                                 ; Congratulations!(常量)
0040D8C8   68 03000000          push 3
0040D8CD <>BB 00030000          mov ebx,300                                        ; 信息框(系统核心支持库)
0040D8D2 <>E8 D1000000          call 复件_原?0040D9A8                                 ; 调用核心支持库命令(调用3号服务)
0040D8D7   83C4 28            add esp,28
0040D8DA   8B5D F4            mov ebx,dword ptr ss:
0040D8DD   85DB               test ebx,ebx
0040D8DF   74 09                je short 复件_原?0040D8EA
0040D8E1   53                   push ebx
0040D8E2 <>E8 BB000000          call 复件_原?0040D9A2                                 ; 销毁从堆上分配到的内存(调用8号服务)
0040D8E7   83C4 04            add esp,4
0040D8EA   8B5D F0            mov ebx,dword ptr ss:
0040D8ED   85DB               test ebx,ebx
0040D8EF   74 09                je short 复件_原?0040D8FA
0040D8F1   53                   push ebx
0040D8F2 <>E8 AB000000          call 复件_原?0040D9A2                                 ; 销毁从堆上分配到的内存(调用8号服务)
0040D8F7   83C4 04            add esp,4
0040D8FA   8BE5               mov esp,ebp
0040D8FC   5D                   pop ebp
0040D8FD   C3                   retn


注册机
void keygen1()
        {
        char str={0};
        puts("请输入用户名");
        gets(str);
    int len;
        len=strlen(str);
        str=len*len;
        printf("注册码为%s ",str);
        }

[ 本帖最后由 cby1990 于 2006-7-11 00:47 编辑 ]

caterpilla 发表于 2006-7-11 07:44:31

原帖由 cby1990 于 2006-7-11 00:46 发表
0040D5AC   55                   push ebp
0040D5AD   8BEC               mov ebp,esp
0040D5AF   81EC 48000000      sub esp,48
0040D5B5   C745 FC 00000000   mov dword ptr ss:,0      ...
学习,不知注册机对中文支持如何?

野猫III 发表于 2006-7-15 12:50:50

注册机
void keygen1()
      {
      char str={0};
      puts("请输入用户名");
      gets(str);
    int len;
      len=strlen(str);
      str=len*len;
      printf("注册码为%s ",str);
      }

+++++++++++++++
呵呵,C++这么简单?回头也学习玩玩~

yybns 发表于 2008-2-15 18:57:34

支持老大作品/:good
页: 1 [2]
查看完整版本: #####趁火打劫,也来个E_CrackMe#####