#include<stdio.h>
#include<string.h>
void main()
{
int len,eax,edx=1;
int ebx,esi;
char name[50];
printf("please input your name:");
gets(name);
len=strlen(name);
ebx=0x49390305;
esi=0x48631220;
for(;len>=1;)
{
printf("1 %lx %lx\n",ebx,esi);//在此看ebx,esi都不是上面的数,哪出错了,是dos下不支持这么大的数吗?
ebx=name[edx]^ebx;
esi=esi^ebx;
printf("2 %lx %lx\n",ebx,esi);
getch();
{
if(ebx%2==0)
{ebx>>=1;
ebx=ebx^0x1200311;}
else ebx>>=1;}
edx=edx+1;
len=len-1;}
printf("you password: %.4x-%.4x-%.4x-%.4x\n",ebx,esi);
printf("you password: %lx %lx\n",ebx,esi);
printf("keyGen by roba enjoy Cracking\n");
getch();
}
在运行时
----------------解决方案--------------------------------------------------------
把变量类型改成unsigned long试一下
----------------解决方案--------------------------------------------------------
非常感谢!!!!!!
----------------解决方案--------------------------------------------------------