贴这个的注册机,并且发现一个BUG (1千字)
#include "stdio.h"#define ROTATE(a,n) (((a)<<(n))|(((a)&0xffffffff)>>(32-(n))))
main()
{unsigned long eax=0,edx=0x656d7568;
unsigned long temp1=0,temp2,n;
char tb[]="dooGehehehehehehehehPYRCPYRCPYRCPYRCevolevolevolevolhtymhtymhtym";
int i,d;
unsigned char string[81];
printf("******Crkme 0.02********\nThis keygen is made by Pretender\nPlease input your user name: ");
gets(string);
d=strlen(string);
string[32]=0;
if(d<=32)
for(i=d;i<32;i++)
{n=string[i-1];
string[i]=n/i+n*i;
}
n=0;
if(d<=32)
{for(i=0;i<d;i++)
n+=string[i];
n&=0xff;
eax=n<<24;}
eax+=0x200000;
for(i=1;string[i]!=0;i++)
{n=string[i];
n*=i;
temp1+=n;}
temp1^=-1;
temp1&=0xffff;
eax+=temp1;
eax+=0x20434347;edx+=0x26424347;
for(i=0;i<8;i++)
{temp1=tb[i*8]+tb[i*8+1]*256+tb[i*8+2]*65536+tb[i*8+3]*256*65536;
temp2=tb[i*8+4]+tb[i*8+5]*256+tb[i*8+6]*65536+tb[i*8+7]*256*65536;
eax^=edx;
n=edx&0x1f;
eax=ROTATE(eax,n);
eax+=temp1;
edx^=eax;
n=eax&0x1f;
edx=ROTATE(edx,n);
edx+=temp2;
}
printf("Your Register code is : _CCG-");
printf("%lX-%lX\n",eax,edx);
printf(" ***************************** --- --- ---\n *Welcome to WWW.CRACKNOW.COM* / / / --\n ***************************** --- --- --/\n");
}
也许是作者不小心在401762处有一个BUG
应将401762 CMP AL,31改为CMP AL,30否则将有6.25%的用户名没有注册码(如CRACKNOW)~~~~另外还有就是CRACKME中有些计算没有意义~~~(算用户名的时候的)
整体而言这个CRACKME还是比较不错的!
