以下是对strlen函数的反汇编,实在是看不明白.望记人解释一下,谢了.
0040150E |. 51 push ecx
0040150F |. E8 2C0A0000 call CrackMeN.00401F40 :strlen()
...
00401F40 /$ 8B4C24 04 mov ecx, dword ptr [esp+4] ;用户名的地址
00401F44 |. F7C1 03000000 test ecx, 3 ;
00401F4A |. 74 14 je short CrackMeN.00401F60
00401F4C |> 8A01 /mov al, byte ptr [ecx]
00401F4E |. 41 |inc ecx
00401F4F |. 84C0 |test al, al
00401F51 |. 74 40 |je short CrackMeN.00401F93
00401F53 |. F7C1 03000000 |test ecx, 3
00401F59 |.^ 75 F1 \jnz short CrackMeN.00401F4C
00401F5B |. 05 00000000 add eax, 0
00401F60 |> 8B01 /mov eax, dword ptr [ecx] ;
00401F62 |. BA FFFEFE7E |mov edx, 7EFEFEFF
00401F67 |. 03D0 |add edx, eax
00401F69 |. 83F0 FF |xor eax, FFFFFFFF
00401F6C |. 33C2 |xor eax, edx
00401F6E |. 83C1 04 |add ecx, 4
00401F71 |. A9 00010181 |test eax, 81010100
00401F76 |.^ 74 E8 |je short CrackMeN.00401F60
00401F78 |. 8B41 FC |mov eax, dword ptr [ecx-4]
00401F7B |. 84C0 |test al, al
00401F7D |. 74 32 |je short CrackMeN.00401FB1
00401F7F |. 84E4 |test ah, ah
00401F81 |. 74 24 |je short CrackMeN.00401FA7
00401F83 |. A9 0000FF00 |test eax, 0FF0000
00401F88 |. 74 13 |je short CrackMeN.00401F9D
00401F8A |. A9 000000FF |test eax, FF000000
00401F8F |. 74 02 |je short CrackMeN.00401F93
00401F91 |.^ EB CD \jmp short CrackMeN.00401F60
00401F93 |> 8D41 FF lea eax, dword ptr [ecx-1]
00401F96 |. 8B4C24 04 mov ecx, dword ptr [esp+4]
00401F9A |. 2BC1 sub eax, ecx
00401F9C |. C3 retn
[招生]科锐逆向工程师培训(2024年11月15日实地,远程教学同时开班, 第51期)