Решал тут недавно крякмис, я то его решил, но вот решил разобрать еще сам алгоритм попробывать. Наткнуля в участе где скорее всего происходит обработка введеной строки на вот такую ф-ию:
Собственно, не могу понять, что она вообще делает. На вход принимает введеную строку...PHP Code:004296A0 > 8B4C24 04 MOV ECX,DWORD PTR SS:[ESP+4]
004296A4 . F7C1 03000000 TEST ECX,3
004296AA . 74 24 JE SHORT Password.004296D0
004296AC > 8A01 MOV AL,BYTE PTR DS:[ECX]
004296AE . 83C1 01 ADD ECX,1
004296B1 . 84C0 TEST AL,AL
004296B3 . 74 4E JE SHORT Password.00429703
004296B5 . F7C1 03000000 TEST ECX,3
004296BB .^75 EF JNZ SHORT Password.004296AC
004296BD . 05 00000000 ADD EAX,0
004296C2 . 8DA424 0000000>LEA ESP,DWORD PTR SS:[ESP]
004296C9 . 8DA424 0000000>LEA ESP,DWORD PTR SS:[ESP]
004296D0 > 8B01 MOV EAX,DWORD PTR DS:[ECX]
004296D2 . BA FFFEFE7E MOV EDX,7EFEFEFF
004296D7 . 03D0 ADD EDX,EAX
004296D9 . 83F0 FF XOR EAX,FFFFFFFF
004296DC . 33C2 XOR EAX,EDX
004296DE . 83C1 04 ADD ECX,4
004296E1 . A9 00010181 TEST EAX,81010100
004296E6 .^74 E8 JE SHORT Password.004296D0
004296E8 . 8B41 FC MOV EAX,DWORD PTR DS:[ECX-4]
004296EB . 84C0 TEST AL,AL
004296ED . 74 32 JE SHORT Password.00429721
004296EF . 84E4 TEST AH,AH
004296F1 . 74 24 JE SHORT Password.00429717
004296F3 . A9 0000FF00 TEST EAX,0FF0000
004296F8 . 74 13 JE SHORT Password.0042970D
004296FA . A9 000000FF TEST EAX,FF000000
004296FF . 74 02 JE SHORT Password.00429703
00429701 .^EB CD JMP SHORT Password.004296D0
00429703 > 8D41 FF LEA EAX,DWORD PTR DS:[ECX-1]
00429706 . 8B4C24 04 MOV ECX,DWORD PTR SS:[ESP+4]
0042970A . 2BC1 SUB EAX,ECX
0042970C . C3 RETN
0042970D > 8D41 FE LEA EAX,DWORD PTR DS:[ECX-2]
00429710 . 8B4C24 04 MOV ECX,DWORD PTR SS:[ESP+4]
00429714 . 2BC1 SUB EAX,ECX
00429716 . C3 RETN
00429717 > 8D41 FD LEA EAX,DWORD PTR DS:[ECX-3]
0042971A . 8B4C24 04 MOV ECX,DWORD PTR SS:[ESP+4]
0042971E . 2BC1 SUB EAX,ECX
00429720 . C3 RETN
00429721 > 8D41 FC LEA EAX,DWORD PTR DS:[ECX-4]
00429724 . 8B4C24 04 MOV ECX,DWORD PTR SS:[ESP+4]
00429728 . 2BC1 SUB EAX,ECX
0042972A . C3 RETN
Если смотреть по отладчику и что получается в ЕАХ, то очень по хоже что она возвращает длину строки, но если это так тогда я не пойму как оно это делает...=)
Вызов ф-ии находится по адрессу 0х0042871E. Вот сам участок в к-ом данная ф-ия вызывается, где собственно я и предпологаю, что происходит обработка строки, к-ую я ввел:
PHP Code:00428711 |> 8B45 D4 /MOV EAX,DWORD PTR SS:[EBP-2C]
00428714 |. 83C0 01 |ADD EAX,1
00428717 |. 8945 D4 |MOV DWORD PTR SS:[EBP-2C],EAX
0042871A |> 8D45 EC LEA EAX,DWORD PTR SS:[EBP-14]
0042871D |. 50 |PUSH EAX
0042871E |. E8 13DFFFFF |CALL Password.00426636
00428723 |. 83C4 04 |ADD ESP,4
00428726 |. 3945 D4 |CMP DWORD PTR SS:[EBP-2C],EAX
00428729 |. 73 4D |JNB SHORT Password.00428778
0042872B |. 8B45 D4 |MOV EAX,DWORD PTR SS:[EBP-2C]
0042872E |. 0FBE4C05 EC |MOVSX ECX,BYTE PTR SS:[EBP+EAX-14]
00428733 |. 83F9 20 |CMP ECX,20
00428736 |. 74 3E |JE SHORT Password.00428776
00428738 |. 8B45 D4 |MOV EAX,DWORD PTR SS:[EBP-2C]
0042873B |. 0FBE4C05 EC |MOVSX ECX,BYTE PTR SS:[EBP+EAX-14]
00428740 |. 034D E0 |ADD ECX,DWORD PTR SS:[EBP-20]
00428743 |. 8B55 D4 |MOV EDX,DWORD PTR SS:[EBP-2C]
00428746 |. 884C15 EC |MOV BYTE PTR SS:[EBP+EDX-14],CL
0042874A |. 8B45 D4 |MOV EAX,DWORD PTR SS:[EBP-2C]
0042874D |. 0FBE4C05 EC |MOVSX ECX,BYTE PTR SS:[EBP+EAX-14]
00428752 |. 83F9 61 |CMP ECX,61
00428755 |. 7C 0D |JL SHORT Password.00428764
00428757 |. 8B45 D4 |MOV EAX,DWORD PTR SS:[EBP-2C]
0042875A |. 0FBE4C05 EC |MOVSX ECX,BYTE PTR SS:[EBP+EAX-14]
0042875F |. 83F9 7A |CMP ECX,7A
00428762 |. 7E 12 |JLE SHORT Password.00428776
00428764 |> 8B45 D4 |MOV EAX,DWORD PTR SS:[EBP-2C]
00428767 |. 0FBE4C05 EC |MOVSX ECX,BYTE PTR SS:[EBP+EAX-14]
0042876C |. 83E9 1A |SUB ECX,1A
0042876F |. 8B55 D4 |MOV EDX,DWORD PTR SS:[EBP-2C]
00428772 |. 884C15 EC |MOV BYTE PTR SS:[EBP+EDX-14],CL
00428776 |>^EB 99 \JMP SHORT Password.00428711
P.S.: статью по тому как решил это задания я сделаю на выходных и выкину, а пока хочется разобраться какой алгоритм создания строки, а то делать табличку замены символов конечно круто, но...=)



Reply With Quote
Thanks