应天论坛

 找回密码
 参与我们

QQ登录

只需一步,快速开始

搜索
查看: 886|回复: 0

C语言写的一个软件注册机的源码 Power Copy 1.92 注册机源码

[复制链接]

276

主题

303

帖子

3197

积分

管理员

湘南小侠客

Rank: 9Rank: 9Rank: 9

积分
3197

优质服务勋章论坛元老

QQ
发表于 2017-5-22 13:55:29 | 显示全部楼层 |阅读模式
软件本身是vc的程序,注册过程都是字符串操作。

算法描述:
注册码去掉“-”为15位,设为str:0123456789ABCDE;
str[6]和str[8]除以5求余分别得到前后6位中的一位,设为char_a和char_b
前后6位分别去掉char_a和char_b得到StrA和StrB
软件要成功注册要满足的条件:
1。StrA在密码表中的位置和经过运算得出的值等于char_a;
2。StrB在密码表中的位置和经过运算得出的值等于char_b;
3。StrA和StrB中字符在密码表中的位置经浮点运算的和加上str[7]的位置=0x798000,用数学公式表示为:
a*18H^4+b*18H^3+c*18H^2+d*18H^1+e*18H^0+x*18H^4+y*18H^3+z*18H^2+u*18H^1+v*18H^0+s=18H^5
条件1,2比较容易,条件三初看起来没有头绪,但实际分析一下,以上公式可以化简为:
(a+x)*51000+(b+y)*3600+(c+z)*240+(d+u)*18+(e+v+s)=798000
再次化简就很容易理解了,条件三等价于:
a+x=17
b+y=17
c+7=17
d+u=17
e+v+s=18

[mw_shl_code=c,true]#include <stdio.h>
#include <time.h>
#include <stdlib.h>
void main()
{
        char ref_str[]="BCDFGHJKMPQRTVWXY2346789";
        int position[16]={0};
        int rnd_a,rnd_b;        
        int i,k,m;
        printf("----------------------\n");
        printf("Power Copy 1.92 KeyGen\n");
        printf("code by zaas ,20101216\n");
        printf("----------------------\n");
        while(1)
        {
                char code[]="111111111111111";
                int result_a=0,result_b=0;
                srand((unsigned) time(0));
                rnd_a=rand()%24;
                code[6]=ref_str[rnd_a];        //第7位
                rnd_b=rand()%24;
                code[8]=ref_str[rnd_b];        //第9位
                for (i=0;i<4;i++)                //1-5,11-15位在密码表中的坐标
                {
                        *(position+i)=rand()%22;
                        *(position+14-i)=23-*(position+i);
                        result_a += *(position+i);
                        result_b += *(position+14-i);
                }
                position[4]=rand()%8+1;
                result_a +=position[4];
                position[10]=rand()%8+1;
                result_b +=position[10];
                position[7]=24-position[4]-position[10];//9,5,11位的坐标之和等于24
                code[7]=ref_str[position[7]];        //第8位
                i=rnd_a%5;
                k=14-rnd_b%5;
                result_a=(24-result_a%24)%24;        //前插入位的坐标
                result_b=23-result_b%24;        //后插入位的坐标
                code=ref_str[result_a];        //前插入位
                code[k]=ref_str[result_b];        //后插入位
                k=0;
                for (m=0;m<5;m++)        //前6位的排序
                {
                        if (code[m] !=0x31)        k=1;
                        *(code+m+k)=ref_str[*(position+m)];        
                }
                k=0;
                for (m=14;m>9;m--)        //后6位的排序,逆序
                {
                        if (code[m] !=0x31)        k=1;
                        *(code+m-k)=ref_str[*(position+m)];        
                }
                for (i=0;i<15;i++)        //输出
                {
                        if (!(i%5) && i) printf("-");
                        printf("%c",*(code+i));
                }
                printf("\n");
                printf("----------------------\n");
                printf("Want another one?[Y/N]\n");
                char redo;
                scanf("%c",&redo);
                getchar();
                printf("----------------------\n");
                if (redo !='y' && redo != 'Y')
                {
                        printf("Bye~good luck.........\n");
                        break;
                }
        }
}[/mw_shl_code]
每次见你穿短裤打领带,还穿个拖鞋,下次再这样穿不要从我家门口过了!
http://gsh.yzqz.cn/CassettePlayer/index.html

天之道,损有余而补不足.人之道则不然,损不足以奉有余.孰能有余以奉天下,唯有道者.
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 参与我们

本版积分规则

QQ|Archiver|手机版|小黑屋|应天社区 ( 湘ICP备17015224号 )

GMT+8, 2024-12-22 18:43 , Processed in 0.078125 second(s), 32 queries .

Powered by Discuz!

© 2001-2017 Comsenz Inc.


免责声明:
本站所发布的第三方软件及资源(包括但不仅限于文字/图片/音频/视频等仅限用于学习和研究目的;不得将上述内容用于商业或者非法用途,否则,一切后果请用户自负。本站信息来自网络,版权争议与本站无关。您必须在下载后的24个小时之内,从您的电脑中彻底删除上述内容。如果您喜欢某程序或某个资源,请支持正版软件及版权方利益,注册或购买,得到更好的正版服务。如有侵权请邮件与我们联系处理。

Mail To: admin@yzqz.cn

快速回复 返回顶部 返回列表