Показать сообщение отдельно

  #67  
Старый 10.02.2008, 21:28
z01b
Постоянный
Регистрация: 05.01.2007
Сообщений: 508
С нами: 10182506

Репутация: 1393


По умолчанию

Вот как обещал прокомментированый код
Код:
004010FE /$ 33C0 XOR EAX,EAX;обнулили регистры
00401100 |. 33DB XOR EBX,EBX;
00401102 |. 33C9 XOR ECX,ECX;
00401104 |. A3 39304000 MOV DWORD PTR DS:[403039],EAX; обнулили переменную
00401109 |> 33DB /XOR EBX,EBX; обнулили ebx
0040110B |. 8A98 14304000 |MOV BL,BYTE PTR DS:[EAX+403014]; берем символ из имени и пихаем в BL
00401111 |. 80FB 5A |CMP BL,5A; если BL != 5A('Z')
00401114 |. 75 02 |JNZ SHORT Creakme.00401118; прыгаем на 401118
00401116 |. FECB |DEC BL; иначе вычитываем один из BL
00401118 |> 80FB 7A |CMP BL,7A;если BL != ('z')
0040111B |. 75 02 |JNZ SHORT Creakme.0040111F; прыгаем на 40111F
0040111D |. FECB |DEC BL; иначе вычитываем один из BL
0040111F |> 80FB 39 |CMP BL,39;если BL != ('9')
00401122 |. 75 02 |JNZ SHORT Creakme.00401126;прыгаем на 401126
00401124 |. FECB |DEC BL; иначе вычитываем один из BL
00401126 |> 50 |PUSH EAX; заносим eax в стэк
00401127 |. 83C0 61 |ADD EAX,61; прибавляем ему 61
0040112A |. 02F8 |ADD BH,AL; пихаем в BH один из символов сериала
0040112C |. 58 |POP EAX; востонавливаем eax
0040112D |. 80C3 01 |ADD BL,1; добавляем в BL один
00401130 |. 66:8B0C45 1A30>|MOV CX,WORD PTR DS:[EAX*2+40301A]; Заносим две символы нашего сериала в CX
00401138 |. 40 |INC EAX; добавляем один в eax
00401139 |. 50 |PUSH EAX; сохраняем eax
0040113A |. 66:3BD9 |CMP BX,CX; если слово (2 байта) из cx = слово из bx
0040113D |. 75 37 |JNZ SHORT Creakme.00401176; не прыгаем на 401176
0040113F |. 8305 39304000 >|ADD DWORD PTR DS:[403039],1; переменая = переменная + 1
00401146 |. 58 |POP EAX; востанавливаем eax
00401147 |. 3B05 25304000 |CMP EAX,DWORD PTR DS:[403025]; если eax = длина строки (переменная)
0040114D |.^75 BA \JNZ SHORT Creakme.00401109; выходим из цикла, иначе повторяем его.
0040114F |. 50 PUSH EAX
00401150 |. A1 39304000 MOV EAX,DWORD PTR DS:[403039]
00401155 |. 3B05 25304000 CMP EAX,DWORD PTR DS:[403025]
0040115B |. 58 POP EAX
0040115C |. 75 18 JNZ SHORT Creakme.00401176
0040115E |. 6A 00 PUSH 0 ; /Style = MB_OK|MB_APPLMODAL
00401160 |. 68 5F204000 PUSH Creakme.0040205F ; |Title = ".:: DiS[IP] Programer ::."
00401165 |. 68 4A204000 PUSH Creakme.0040204A ; |Text = "Register complite!!!"
0040116A |. FF35 00304000 PUSH DWORD PTR DS:[403000] ; |hOwner = NULL
00401170 |. E8 33000000 CALL <JMP.&user32.MessageBoxA> ; \MessageBoxA
00401175 |. C3 RETN
00401176 |> 58 POP EAX
00401177 |. 6A 00 PUSH 0 ; /Style = MB_OK|MB_APPLMODAL
00401179 |. 68 5F204000 PUSH Creakme.0040205F ; |Title = ".:: DiS[IP] Programer ::."
0040117E |. 68 30204000 PUSH Creakme.00402030 ; |Text = "Name or Password is BAD!!"
00401183 |. FF35 00304000 PUSH DWORD PTR DS:[403000] ; |hOwner = NULL
00401189 |. E8 1A000000 CALL <JMP.&user32.MessageBoxA> ; \MessageBoxA
0040118E \. C3 RETN
 
Ответить с цитированием