欢迎来到 嗅灵易学

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

转贴:ddcrack的APISPY32 2.4的注册机 (2千字)

转贴:ddcrack的APISPY32 2.4的注册机 (2千字)

#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <time.h>
#include <conio.h>
void main(void)
{
    char * name="";
    char regname[8];
    char regcode[17];
    unsigned int table[16]={0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0A,0x0B,0x0C,0x0D,0x0E,0x0F};
    unsigned long eax;
    unsigned int bl,cl,dl=0xBB;
    int i,j,k,s,base;
    unsigned int inc1,inc2;
    int flag=0,success=1;
    clrscr();
    printf("\n************************************************************************\n");
    printf("APISPY32 V2.4 Registration Key Generator\n");
    printf("Author: ddcrack ( 2001/06/15 )\n");
    printf("************************************************************************\n\n");
    printf("Registration Name ( more than 5 letters ): ");
    scanf("%s",name);
    printf("\n");
    if(strlen(name)<5)
    do
    {
      printf("\nInput Registration Name again ( 5 letters at least ): ");
      scanf("%s",name);
      printf("\n");
    }
    while (strlen(name)<5);
    if(strlen(name)>=8)
      for(i=0;i<8;i++) regname[i]=*(name+i);
    else
      {
    for(i=0;i<strlen(name);i++) regname[i]=*(name+i);
    for(i=0;i<(8-strlen(name));i++) regname[strlen(name)+i]=*(name+i);
      }
    for(i=0;i<8;i++)
      { for(j=0;j<16;j++)
    { for(k=0;k<16;k++)
      { cl=table[j];
        cl=cl<<4;
        cl=cl|table[k];
        bl=0x50+(unsigned int)i;
        cl=cl^bl;
        eax=1;
        for(s=0;s<7;s++)
          { eax=eax*cl;
        if(eax>0x00008899) eax=eax%0x00008899;
          }
        eax=eax%dl;
        if(eax<0x00000020) continue;
        if(eax==(unsigned long)regname[i])
          {
        if(j<=9) inc1=0x30; else inc1=0x37;
        if(k<=9) inc2=0x30; else inc2=0x37;
        if(i<=3)
          {  regcode[2*i]=(char)(table[j]+inc1);
            regcode[2*i+1]=(char)(table[k]+inc2);
          }
        else
          {  regcode[2*i+1]=(char)(table[j]+inc1);
            regcode[2*i+2]=(char)(table[k]+inc2);
          }
        flag=1;
        break;
          }
        else flag=0;
      }
    if(flag==1) break;
      }
      if(flag==0)
    { printf("\nSorry! No such registration key which matchs your name.\n");
      success=0;
      break;
    }
    }
    if(success==1)
    { printf("Registration Key: ");
      randomize();
      base=random(16);
      if(base<=9) regcode[8]=(char)(base+0x30);
     else regcode[8]=(char)(base+0x37);
      for(i=0;i<17;i++) printf("%c",regcode[i]);
      printf("\n");
    }
    getch();
}


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

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

0 0 0 举报
复制成功