今天发现C Free3.5注册机在win7下运行算出的KEY有问题,于是搜索了下 发现了这么个有趣东东 #include<stdlib.h> #include<stdio.h> main() { int i=0; char chKey[128]={0}; unsigned int unXORCode,unRemainder,unQuotient,unTmp,unMachineCode; printf("Machine Code:"); scanf("%d",&unMachineCode); unXORCode=unMachineCode^0x90909090; unRemainder=unXORCode%0x25; unQuotient=unXORCode; if (unRemainder<0x11) unRemainder+=0x11; while (unQuotient!=0) { unTmp=unQuotient%unRemainder; unQuotient/=unRemainder; if (unTmp>=0xa) { unTmp=unTmp+0x61+0xf6; unTmp&=0x0ff; chKey[i]=unTmp; } else chKey[i]=unTmp+0x30; i++; } printf("Your key is:"); while (i>0) {i--;printf("%c",chKey[i]);} printf("/n"); }