大家都知道,Winzip的註冊碼計算方法從來沒改過,
這樣做一個序號產生器就滿有用的了,我稍微跟了一下,
發現並不是很複雜,只要看懂,你也可以寫一個,
如果你願意就練習一下吧!
從這裡開始Ctrl+C
/**********************************************/
#include "stdio.h"
void main(void)
{
char str1[40],*pch=str1;
int c1=0,d1=0,eax=0,c2=0,ecx=0,n2=0,esi=0;
printf("RegWinZip (for v6.x--v8.x), Write by BetterWang!\n");
printf("Enter Your Name(1--39 letters):");
scanf("%s",str1);
while((*pch)!='\0'){
d1+=(*pch)*c1;pch++;c1++;};
pch=str1;
while (*pch!='\0')
{
ecx=(*pch)*0x100;
for(c2=0;c2<8;c2++){
esi=ecx;
esi^=eax;
if(esi&0x8000){
eax<<=1;
eax^=0x1021;
}
else{eax<<=1;}
ecx<<=1;}
c1++;pch++;
}
n2=eax+0x63;
n2&=0xffff;
printf("Try This Code: ");
printf("%04X",n2);
printf("%04X",d1);
}
/******************************************************************/