能力值:
( LV9,RANK:770 )
|
-
-
5 楼
0041812B |. 8B69 F8 mov ebp,dword ptr ds:[ecx-8]
0041812E |. 896C24 34 mov dword ptr ss:[esp+34],ebp
00418132 |. E8 9FF30100 call tcsearch.004374D6
00418137 |. 8B00 mov eax,dword ptr ds:[eax]
00418139 |. 8D4C24 28 lea ecx,dword ptr ss:[esp+28]
0041813D |. 68 9CD74700 push tcsearch.0047D79C ; /Arg2 = 0047D79C ASCII "%Y%m%d"
00418142 |. 51 push ecx ; |Arg1
00418143 |. 8D4C24 34 lea ecx,dword ptr ss:[esp+34] ; |
00418147 |. 894424 34 mov dword ptr ss:[esp+34],eax ; |
0041814B |. E8 99F30100 call tcsearch.004374E9 ; \EAX=系统日期 20050430
00418150 |. 3BEF cmp ebp,edi
00418152 |. C64424 58 03 mov byte ptr ss:[esp+58],3
00418157 |. 0F84 34020000 je tcsearch.00418391
0041815D |. BE 01000000 mov esi,1 ; ESI=1
00418162 |. 3BEE cmp ebp,esi
00418164 |. 897424 1C mov dword ptr ss:[esp+1C],esi
00418168 |. 0F8C 37010000 jl tcsearch.004182A5
0041816E |. 8B4424 28 mov eax,dword ptr ss:[esp+28] ; EAX=系统日期 20050430
00418172 |. DD05 80664400 fld qword ptr ds:[446680]
00418178 |. 8A58 06 mov bl,byte ptr ds:[eax+6] ; BL=date[6]
0041817B |. 8A48 04 mov cl,byte ptr ds:[eax+4] ; CL=date[4]
0041817E |. 885C24 13 mov byte ptr ss:[esp+13],bl ; [ESP+13]=BL=date[6]
00418182 |. 8A58 07 mov bl,byte ptr ds:[eax+7] ; BL=date[7]
00418185 |. 0FBEDB movsx ebx,bl ; ebx=bl
00418188 |. 895C24 24 mov dword ptr ss:[esp+24],ebx ; [esp+24]=ebx=date[7]
0041818C |. 8A50 05 mov dl,byte ptr ds:[eax+5] ; DL=date[5]
0041818F |. DB4424 24 fild dword ptr ss:[esp+24] ; ST0=[esp+24]=date[7]
00418193 |. 0FBE5C24 13 movsx ebx,byte ptr ss:[esp+13] ; EBX=[ESP+13]=date[6]
00418198 |. D9FA fsqrt ; ST1=SQRT(ST0)
0041819A |. 895C24 24 mov dword ptr ss:[esp+24],ebx ; [ESP+24]=EBX=date[6]
0041819E |. 8A40 03 mov al,byte ptr ds:[eax+3] ; AL=date[3]
004181A1 |. 0FBEC0 movsx eax,al ; eax=date[3]
004181A4 |. 0FBEEA movsx ebp,dl ; EBP=DL=date[5]
004181A7 |. 0FBEC9 movsx ecx,cl ; ECX=CL
004181AA |. DB4424 24 fild dword ptr ss:[esp+24] ; ST0=date[6]
004181AE |. 0FAFE9 imul ebp,ecx ; EBP=EBP*ECX 这个数据要记住 !
004181B1 |. D9FA fsqrt ; ST0=SQRT(ST0)
004181B3 |. 894424 24 mov dword ptr ss:[esp+24],eax ; [ESP+24]=EAX=date[3]
004181B7 |. DEC9 fmulp st(1),st ; RES=ST0*ST1
004181B9 |. DD5C24 38 fstp qword ptr ss:[esp+38] ; 这个数据要记住 !
004181BD |. DB4424 24 fild dword ptr ss:[esp+24] ; ST0=date[3]******这个重要
004181C1 |. D9FA fsqrt ; SQRT(ST0)
004181C3 |. DCC0 fadd st,st
004181C5 |. DD5C24 40 fstp qword ptr ss:[esp+40]
004181C9 |> 8B5424 64 /mov edx,dword ptr ss:[esp+64] ; EDX=NAME
004181CD |. DB4424 1C |fild dword ptr ss:[esp+1C]
004181D1 |. 8A5C32 FF |mov bl,byte ptr ds:[edx+esi-1] ; BL=NAME[I]
004181D5 |. 0FBEC3 |movsx eax,bl ; EAX=NAME[I]
004181D8 |. DD5C24 1C |fstp qword ptr ss:[esp+1C]
004181DC |. 894424 24 |mov dword ptr ss:[esp+24],eax
004181E0 |. DB4424 24 |fild dword ptr ss:[esp+24] ; ST0=NAME[I]
004181E4 |. 0FBECB |movsx ecx,bl ; ECX=BL
004181E7 |. D9FA |fsqrt ; ST0=SQRT(NAME[I])
004181E9 |. 0FAFCE |imul ecx,esi ; ECX=ECX*ESI
004181EC |. DC4C24 1C |fmul qword ptr ss:[esp+1C] ; ST0=ST0*(i+1)
004181F0 |. DC05 78664400 |fadd qword ptr ds:[446678] ; st0+=1
004181F6 |. 0FAFCE |imul ecx,esi
004181F9 |. 0FAFCE |imul ecx,esi
004181FC |. 894C24 24 |mov dword ptr ss:[esp+24],ecx
00418200 |. DB4424 24 |fild dword ptr ss:[esp+24]
00418204 |. DEC9 |fmulp st(1),st
00418206 |. D8C1 |fadd st,st(1)
00418208 |. E8 93090100 |call tcsearch.00428BA0 ; 取整
0041820D |. 99 |cdq
0041820E |. DDD8 |fstp st
00418210 |. B9 18010000 |mov ecx,118 ; ECX/118
00418215 |. F7F9 |idiv ecx
00418217 |. 895424 14 |mov dword ptr ss:[esp+14],edx ; 余数保存在[ESP+14]这个重要
0041821B |. 0FBED3 |movsx edx,bl ; EDX=NAME[I]
0041821E |. 895424 24 |mov dword ptr ss:[esp+24],edx
00418222 |. DB4424 24 |fild dword ptr ss:[esp+24]
00418226 |. DD05 70664400 |fld qword ptr ds:[446670]
0041822C |. E8 4F070100 |call tcsearch.00428980 ; POW 函数 ST0=NAME[I]2次方
00418231 |. DC4C24 1C |fmul qword ptr ss:[esp+1C] ; ST0*(i+1)
00418235 |. E8 66090100 |call tcsearch.00428BA0 ; 取整
0041823A |. DB4424 14 |fild dword ptr ss:[esp+14] ; st0=edx
0041823E |. 8BCE |mov ecx,esi
00418240 |. 0FAFCF |imul ecx,edi
00418243 |. D9C0 |fld st
00418245 |. D9FA |fsqrt ; st0=sqrt(st0) 对上面的余数求平方根
00418247 |. 03C1 |add eax,ecx
00418249 |. B9 2C010000 |mov ecx,12C
0041824E |. 99 |cdq
0041824F |. F7F9 |idiv ecx
00418251 |. 8BFA |mov edi,edx ; ******这个重要
00418253 |. E8 48090100 |call tcsearch.00428BA0 ; eax=对上面的余数求平方根取整
00418258 |. 03C7 |add eax,edi ; EAX+=EDI
0041825A |. B9 A0860100 |mov ecx,186A0
0041825F |. 99 |cdq
00418260 |. DD4424 38 |fld qword ptr ss:[esp+38]
00418264 |. F7F9 |idiv ecx
00418266 |. DC4C24 1C |fmul qword ptr ss:[esp+1C]
0041826A |. DC4424 40 |fadd qword ptr ss:[esp+40]
0041826E |. 8BDA |mov ebx,edx ; ******这个重要
00418270 |. 8BD5 |mov edx,ebp
00418272 |. 0FAFD6 |imul edx,esi
00418275 |. 895424 24 |mov dword ptr ss:[esp+24],edx
00418279 |. DB4424 24 |fild dword ptr ss:[esp+24]
0041827D |. DEC9 |fmulp st(1),st ; 160418=2544*63.05
0041827F |. D8C1 |fadd st,st(1) ; 160418+93=160511
00418281 |. E8 1A090100 |call tcsearch.00428BA0 ; 取整
00418286 |. 99 |cdq
00418287 |. B9 18010000 |mov ecx,118
0041828C |. F7F9 |idiv ecx
0041828E |. 8B4424 30 |mov eax,dword ptr ss:[esp+30]
00418292 |. 46 |inc esi
00418293 |. 3BF0 |cmp esi,eax
00418295 |. 897424 1C |mov dword ptr ss:[esp+1C],esi
00418299 |. 895424 24 |mov dword ptr ss:[esp+24],edx
0041829D |.^ 0F8E 26FFFFFF \jle tcsearch.004181C9
004182A3 |. DDD8 fstp st
004182A5 |> 33C9 xor ecx,ecx ; ecx=0
004182A7 |> 8BD1 /mov edx,ecx
004182A9 |. 8B4424 14 |mov eax,dword ptr ss:[esp+14] ; 从上面得到的[esp+14]
004182AD |. 0FAFD1 |imul edx,ecx ; edx*=ecx
004182B0 |. 0FAFD1 |imul edx,ecx ; edx*=ecx
004182B3 |. BE 4E000000 |mov esi,4E ; esi=4e
004182B8 |. 8D4402 1F |lea eax,dword ptr ds:[edx+eax+1F]
004182BC |. 99 |cdq
004182BD |. F7FE |idiv esi ; eax/esi
004182BF |. 41 |inc ecx ; ecx++
004182C0 |. 83F9 05 |cmp ecx,5
004182C3 |. 88540C 3F |mov byte ptr ss:[esp+ecx+3F],dl ; zhucema[i]=dl
004182C7 |.^ 7C DE \jl short tcsearch.004182A7
004182C9 |. B9 05000000 mov ecx,5 ; ecx=5
004182CE |> 8BD1 /mov edx,ecx
004182D0 |. BE 58000000 |mov esi,58
004182D5 |. 0FAFD1 |imul edx,ecx
004182D8 |. 0FAFD1 |imul edx,ecx
004182DB |. 8D443A 1F |lea eax,dword ptr ds:[edx+edi+1F] ; 从上面得到的 EDI
004182DF |. 99 |cdq
004182E0 |. F7FE |idiv esi
004182E2 |. 41 |inc ecx
004182E3 |. 83F9 0A |cmp ecx,0A
004182E6 |. 88540C 3F |mov byte ptr ss:[esp+ecx+3F],dl
004182EA |.^ 7C E2 \jl short tcsearch.004182CE
004182EC |. B9 0A000000 mov ecx,0A ; ecx=10
004182F1 |> 8BC1 /mov eax,ecx
004182F3 |. BE 26000000 |mov esi,26
004182F8 |. 0FAFC1 |imul eax,ecx
004182FB |. 0FAFC1 |imul eax,ecx
004182FE |. 8D4418 1F |lea eax,dword ptr ds:[eax+ebx+1F] ; 从上面得到的 EBX
00418302 |. 99 |cdq
00418303 |. F7FE |idiv esi
00418305 |. 41 |inc ecx
00418306 |. 83F9 0F |cmp ecx,0F
00418309 |. 88540C 3F |mov byte ptr ss:[esp+ecx+3F],dl
0041830D |.^ 7C E2 \jl short tcsearch.004182F1
0041830F |. B9 0F000000 mov ecx,0F ; ecx=15
00418314 |> 8BD1 /mov edx,ecx
00418316 |. 8B4424 24 |mov eax,dword ptr ss:[esp+24] ; 从上面得到的 ESP+24
0041831A |. 0FAFD1 |imul edx,ecx
0041831D |. 0FAFD1 |imul edx,ecx
00418320 |. BE 12000000 |mov esi,12
00418325 |. 8D4402 1F |lea eax,dword ptr ds:[edx+eax+1F]
00418329 |. 99 |cdq
0041832A |. F7FE |idiv esi
0041832C |. 41 |inc ecx
0041832D |. 83F9 14 |cmp ecx,14
00418330 |. 88540C 3F |mov byte ptr ss:[esp+ecx+3F],dl
00418334 |.^ 7C DE \jl short tcsearch.00418314
00418336 |. 33D2 xor edx,edx ; edx=0
00418338 |. 33C9 xor ecx,ecx ; ecx=0
0041833A |> 8A4414 40 /mov al,byte ptr ss:[esp+edx+40]
0041833E |. 3C 30 |cmp al,30
00418340 |. 7C 04 |jl short tcsearch.00418346
00418342 |. 3C 39 |cmp al,39
00418344 |. 7E 29 |jle short tcsearch.0041836F
00418346 |> 3C 41 |cmp al,41
00418348 |. 7C 04 |jl short tcsearch.0041834E
0041834A |. 3C 5A |cmp al,5A
0041834C |. 7E 21 |jle short tcsearch.0041836F
0041834E |> 3C 61 |cmp al,61
00418350 |. 7C 04 |jl short tcsearch.00418356
00418352 |. 3C 7A |cmp al,7A
00418354 |. 7E 19 |jle short tcsearch.0041836F
00418356 |> 0FBEC0 |movsx eax,al
00418359 |. 8D4408 1F |lea eax,dword ptr ds:[eax+ecx+1F]
0041835D |. 25 7F000080 |and eax,8000007F ; eax&=8000007F
00418362 |. 79 05 |jns short tcsearch.00418369
00418364 |. 48 |dec eax
00418365 |. 83C8 80 |or eax,FFFFFF80
00418368 |. 40 |inc eax
00418369 |> 884414 40 |mov byte ptr ss:[esp+edx+40],al
0041836D |.^ EB CB |jmp short tcsearch.0041833A
0041836F |> 83C1 07 |add ecx,7 ; ecx+=7
00418372 |. 42 |inc edx
00418373 |. 81F9 8C000000 |cmp ecx,8C
00418379 |.^ 7C BF \jl short tcsearch.0041833A
0041837B |. 33F6 xor esi,esi
0041837D |> 8A4C34 40 /mov cl,byte ptr ss:[esp+esi+40]
00418381 |. 51 |push ecx
00418382 |. 8D4C24 1C |lea ecx,dword ptr ss:[esp+1C]
00418386 |. E8 69090200 |call tcsearch.00438CF4
0041838B |. 46 |inc esi
0041838C |. 83FE 14 |cmp esi,14
0041838F |.^ 7C EC \jl short tcsearch.0041837D
00418391 |> 8B7424 60 mov esi,dword ptr ss:[esp+60]
00418395 |. 8D5424 18 lea edx,dword ptr ss:[esp+18]
00418399 |. 52 push edx
0041839A |. 8BCE mov ecx,esi
//调用系统时间库:time.h
#include<time.h>//时间库
#include<iostream.h>
#include<string.h>
#include<math.h>
#include<windows.h>
void main( )
{
char date[9]={0},name[12]={0},zhucema[21]={0};
unsigned int tmp,sum=0,ecx,ebp,edx,ebx,edi=0,esp14,esp24;
double dd1,dd2,st0,st1;
// gets current date获取系统日期的算法,格式为20050501 谁还有更好的办法呀?
SYSTEMTIME st;
unsigned int y,m,d;
GetSystemTime(&st); // gets current time
y=st.wYear;
m=st.wMonth;
d=st.wDay;
if((m/10==0)&&(d/10==0))
wsprintf(date,"%d0%d0%d",y,m,d);
else if(d/10==0)
wsprintf(date,"%d%d0%d",y,m,d);
else if(m/10==0)
wsprintf(date,"%d0%d%d",y,m,d);
else
wsprintf(date,"%d%d%d",y,m,d);
cout<<date<<endl;
//////////////////////////日期运算
tmp=date[7];
st0=sqrt(tmp);
ebp=date[5]*date[4];
tmp=date[6];
st1=sqrt(tmp);
dd1=st0*st1;
tmp=date[3];
dd2=sqrt(tmp);
dd2+=dd2;
/////用户名运算
cout<<"请输入用户名: "<<endl;
cin>>name;
for(unsigned int i=0;i<strlen(name);i++)
{
tmp=name[i];
ecx=tmp;
st0=sqrt(tmp);
ecx*=(i+1);
st0+=1;
ecx*=(i+1);
ecx*=(i+1);
st1=ecx;
st0*=st1;
tmp=st0;//取整
sum+=tmp;
sum%=0x118;
edx=sum;
esp14=edx;
tmp=name[i];
st0=pow(tmp,2)*(i+1);
tmp=st0;
ecx=i+1;
ecx*=edi;
st1=sqrt(edx);
tmp+=ecx;
edi=tmp%0x12c;
tmp=st1;
tmp+=edi;
ebx=tmp%0x186A0;
tmp/=0x186A0;
edx+=ebp;
edx*=(i+1);
dd1=dd1*(i+1);
dd1=dd1+dd2;
dd1=edx*dd1;
tmp=dd1;
tmp%=0x118;
esp24=tmp;
}
//esp+24=102这个值没找出来看的我心烦
//**esp+14=62,esp+24=102,**EBX=fc,**edi=f3
ecx=0;
for(i=0;i<5;i++)
{
ecx=i;
tmp=esp14;
ecx*=i;
ecx*=i;
ecx=ecx+tmp+0x1f;
ecx=ecx%0x4e;
zhucema[i]=ecx;
}
for(i=5;i<10;i++)
{
ecx=i;
tmp=edi;
ecx*=i;
ecx*=i;
ecx=ecx+tmp+0x1f;
ecx=ecx%0x58;
zhucema[i]=ecx;
}
for(i=10;i<15;i++)
{
ecx=i;
tmp=ebx;
ecx*=i;
ecx*=i;
ecx=ecx+tmp+0x1f;
ecx=ecx%0x26;
zhucema[i]=ecx;
}
for(i=16;i<20;i++)
{
ecx=i;
tmp=esp24;//0x102
ecx*=i;
ecx*=i;
ecx=ecx+tmp+0x1f;
ecx=ecx%0x12;
zhucema[i]=ecx;
}
for(i=0;i<20;i++)
{
to:
if(zhucema[i]<'0'||zhucema[i]>'9')//
{
if(zhucema[i]<'A'||zhucema[i]>'Z')//
{
if(zhucema[i]<'a'||zhucema[i]>'z')//
{
tmp=zhucema[i];
tmp=ecx+tmp+0x1f;
tmp=tmp&0x8000007F;
zhucema[i]=tmp;
if(zhucema[i]<'0'||zhucema[i]>'9')//
{
if(zhucema[i]<'A'||zhucema[i]>'Z')//
{
if(zhucema[i]<'a'||zhucema[i]>'z')//
{
goto to;
}
}
}
}
}
}
ecx+=7;
}
cout<<endl;
cout<<zhucema;
}
|