-
-
[旧帖] [求助]新手请教两个关于获取用户名长度的问题 0.00雪花
-
发表于: 2008-5-19 23:23 2669
-
刚接触破解,请教一个关于获取用户名长度的问题,程序如下:
00403B2C /$ 53 PUSH EBX ;1
00403B2D |. 56 PUSH ESI ;2
00403B2E |. 57 PUSH EDI ;3
00403B2F |. 89C6 MOV ESI,EAX ;4
00403B31 |. 89D7 MOV EDI,EDX ;5
00403B33 |. 39D0 CMP EAX,EDX ;6
00403B35 |. 0F84 8F000000 JE CrackMe3.00403BCA ;7
00403B3B |. 85F6 TEST ESI,ESI ;8
00403B3D |. 74 68 JE SHORT CrackMe3.00403BA7 ;9
00403B3F |. 85FF TEST EDI,EDI ;10
00403B41 |. 74 6B JE SHORT CrackMe3.00403BAE ;11
00403B43 |. 8B46 FC MOV EAX,DWORD PTR DS:[ESI-4] ;12
00403B46 |. 8B57 FC MOV EDX,DWORD PTR DS:[EDI-4] ;13
00403B49 |. 29D0 SUB EAX,EDX ;14
00403B4B |. 77 02 JA SHORT CrackMe3.00403B4F ;15
00403B4D |. 01C2 ADD EDX,EAX ;16
00403B4F |> 52 PUSH EDX ;17
00403B50 |. C1EA 02 SHR EDX,2 ;18
00403B53 |. 74 26 JE SHORT CrackMe3.00403B7B ;19
00403B55 |> 8B0E /MOV ECX,DWORD PTR DS:[ESI] ;20
00403B57 |. 8B1F |MOV EBX,DWORD PTR DS:[EDI] ;21
00403B59 |. 39D9 |CMP ECX,EBX ;22
00403B5B 75 58 JNZ SHORT CrackMe3.00403BB5
其中eax为自己输入的用户名edx为正确的用户名,为什么在单步f8执行完12、13行后eax、edx
中的值会为用户名的长度?而在单步过20、21行后ecx、ebx的值为65726e55、69676552?那么eax、edx中的值是实际用户名还是用户名的地址?如果是地址那么在12、13行后为什么会变成长度?非常感谢!!!!
00403B2C /$ 53 PUSH EBX ;1
00403B2D |. 56 PUSH ESI ;2
00403B2E |. 57 PUSH EDI ;3
00403B2F |. 89C6 MOV ESI,EAX ;4
00403B31 |. 89D7 MOV EDI,EDX ;5
00403B33 |. 39D0 CMP EAX,EDX ;6
00403B35 |. 0F84 8F000000 JE CrackMe3.00403BCA ;7
00403B3B |. 85F6 TEST ESI,ESI ;8
00403B3D |. 74 68 JE SHORT CrackMe3.00403BA7 ;9
00403B3F |. 85FF TEST EDI,EDI ;10
00403B41 |. 74 6B JE SHORT CrackMe3.00403BAE ;11
00403B43 |. 8B46 FC MOV EAX,DWORD PTR DS:[ESI-4] ;12
00403B46 |. 8B57 FC MOV EDX,DWORD PTR DS:[EDI-4] ;13
00403B49 |. 29D0 SUB EAX,EDX ;14
00403B4B |. 77 02 JA SHORT CrackMe3.00403B4F ;15
00403B4D |. 01C2 ADD EDX,EAX ;16
00403B4F |> 52 PUSH EDX ;17
00403B50 |. C1EA 02 SHR EDX,2 ;18
00403B53 |. 74 26 JE SHORT CrackMe3.00403B7B ;19
00403B55 |> 8B0E /MOV ECX,DWORD PTR DS:[ESI] ;20
00403B57 |. 8B1F |MOV EBX,DWORD PTR DS:[EDI] ;21
00403B59 |. 39D9 |CMP ECX,EBX ;22
00403B5B 75 58 JNZ SHORT CrackMe3.00403BB5
其中eax为自己输入的用户名edx为正确的用户名,为什么在单步f8执行完12、13行后eax、edx
中的值会为用户名的长度?而在单步过20、21行后ecx、ebx的值为65726e55、69676552?那么eax、edx中的值是实际用户名还是用户名的地址?如果是地址那么在12、13行后为什么会变成长度?非常感谢!!!!
[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!
赞赏
看原图
赞赏
雪币:
留言: