当前位置: 代码迷 >> C语言 >> 郁闷!我的程序计算结果怎么不对呀
  详细解决方案

郁闷!我的程序计算结果怎么不对呀

热度:176   发布时间:2006-02-17 12:30:00.0
郁闷!我的程序计算结果怎么不对呀

#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试一下
----------------解决方案--------------------------------------------------------

非常感谢!!!!!!


----------------解决方案--------------------------------------------------------