winzip序號產生器 (1千字)

看雪資料發表於2001-04-12

大家都知道,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);
}

/******************************************************************/

相關文章