欢迎来到 嗅灵易学

零基础也能上手的脚本技术课,一对一答疑带你入门

注册机,感谢gfh[CCG],yeah2000[CCG]两位师兄指点^_^! (2千字)

注册机,感谢gfh[CCG],yeah2000[CCG]两位师兄指点^_^! (2千字)

//编译方法  cl ace_jm.c user32.lib
#include<windows.h>
#include<stdio.h>
#include<math.h>
#include<string.h>
char *dpoint,*dpoint1,*point,*point1,charstr[100],covert[100],username[100],char1,convertname[100];
DWORD k,wwf,wwf2,rtn2,len,number,i,j,rtn,lena,charmm;
char *rtww;
//机器注册码字符集合
LPSTR machine="FJ7ESTYULPVBNMCRY567AA8234452734";

void main(void)
{
//第一部分程序是在ace1.30中用户名的变换算法,在程序中把用户名的变换字符跟注册码的数据交换
//算法进行比较,如果正确则注册成功。它只是把用户名字符串的长度进行截取。根据长度算出的间隔长
//度,取出比较字符。
///////////////////////////////////////////////////////////////////////////////////////////    
    printf("please input big characters:\n");
    scanf("%s",charstr);
    getchar();
    strcpy(username,charstr);
/*********************************************************************************/
    //把输入的小写变成大写字符,这个程序第一次出
    number=lstrlen(username);
            if(number<5)
        {printf("please input user name characters can 't lower 5 NULL\n");
          return;
                }
        point=&char1;
         point1=convertname;
      for(i=0;i<number;i++)
        {   
            point=&username[i];
              rtn=IsCharAlpha(*point);
              if(rtn==0)
              {printf("IsCharAlpha error");
              return;
              }
                  CharUpper(point);
                    *point1=*point;
                    point1=point1+1;
        }
     
/*********************************************************************************/
//下面的这段程序是把用户输入的用户名在密码字符集合中进行查表,如用户名字符在密码字符集合中存
//在就把该字符保存在数组convert中,并把其后的空间顺序用密码字符集合添加满24个字符。 
    strcpy(charstr,convertname);
    printf("%s",convertname);
    len=strlen(charstr);
    point=charstr;
    k=0;
  for (i=0;i<=len;i++,point++)
    {rtww=strchr(machine,*point);
      if(rtww!=0)
      {
          covert[k++]=*point;}
      }
  lena=lstrlen(covert);
  strncpy(&covert[lena],machine,24-lena);
  //printf("\nthe string is:%s\n",covert);
/*********************************************************************************/
//下面的程序段是在字符集中定位字符,并按6个一组进行分组排列成注册码。
point=covert;
point1=machine;
dpoint1=username;
wwf2=0;
for (i=0;i<24;i++,point++,dpoint1++)
{
    rtww=strchr(machine,*point);
    if(rtww!=0)
    { wwf=rtww-point1+1;
      number=(wwf*wwf-wwf+wwf2)%0x20+1;
        wwf2=number;    
      dpoint=point1+wwf2-1;
      *dpoint1=*dpoint;
      if((i+1)%6==0&&i<23)
     *(++dpoint1)=0x2d;
      }
}
printf("\nresult string:%s\n",username);
}

注意:上传附件及图片大小不得大于30M。

⚠️ 版权声明:
本博客所有内容(含教程、源码、工具)仅供个人技术学习与研究交流使用,严禁商用、倒卖、二次分发及非法用途
未经作者书面授权,任何组织或个人不得转载、复制或用于其他平台,违者将追究相关责任。

0 0 0 举报
复制成功