Техника сетевых атак
Шрифт:
·.text:0040102E ; Файл открыт неуспешно, переход к выходу
·.text:00401033; ---------------------------------------------------------------------------
·.text:00401033
·.text:00401033 loc_0_401033:; CODE XREF: main+2Cj
·.text:00401033 mov eax, [ebp+var_14]
·.text:00401033 ; Занесение в регистр EAX указателя на файловый манипулятор psw
·.text:00401036 push eax
·.text:00401036 ; Заталкивание psw в стек
·.text:00401037 push 8
·.text:00401037 ; Заталкивание в стек константы 8
·.text:00401039 lea ecx, [ebp+var_54]
·.text:00401039 ; Занесение в регистр ECX смещения начала буфера var_54
·.text:0040103C push ecx
·.text:0040103C ; Заталкивание его в стек
·.text:0040103D call _fgets
·.text:0040103D ;Вызов fgets( amp;_pass[0],8,psw)
·.text:0040103D ;Буфер var_54 представляет собой _pass
·.text:00401042 add esp, 0Ch
·.text:00401042 ;Балансировка стека
·.text:00401045 push offset aLogin; "Login:"
·.text:00401045 ; Заталкивание в стек смещения строки “Login:”
·.text:0040104A call _printf
·.text:0040104A ;Вызов printf(“Login:”)
·.text:0040104F add esp, 4
·.text:0040104F ; Балансировка стека
·.text:00401052 push offset off_0_407090
·.text:00401052 ; Заталкивание в стек указателя на манипулятор stdin
·.text:00401057 push 0Ch
·.text:00401057 ; Заталкивание в стек константы 0xC
·.text:00401059 lea edx, [ebp+var_10]
·.text:00401059 ; Занесение в регистр EDX указателя на буфер var_10 (user)
·.text:0040105C push edx
·.text:0040105C ; Заталкивание его в стек
·.text:0040105D call _fgets
·.text:0040105D ; Вызов ( amp;user[0],0xC,stdin)
·.text:00401062 add esp, 0Ch
·.text:00401062 ; Балансировка стека
·.text:00401065 push offset aPassw; "Passw:"
·.text:00401065 ; Заталкивание в стек указателя на строку Passw
·.text:0040106A call _printf
·.text:0040106A ; Вызов printf(“Passw:”)
·.text:0040106F add esp, 4
·.text:0040106F ; Балансировка стека
·.text:00401072 push offset off_0_407090
·.text:00401072 ;Заталкивание в стек указателя на манипулятор stdin
·.text:00401077 push 0Ch
·.text:00401077 ; Заталкивание в стек константы 0xC
·.text:00401079 lea eax, [ebp+var_44]
·.text:00401079 ; Занесение в регистр EAX указателя на буфер var_44 (pass)
·.text:0040107C push eax
·.text:0040107C ; Заталкивание его в стек
·.text:0040107D call _fgets
·.text:0040107D ; fgest( amp;pass[0],0xC,stdin)
·.text:00401082 add esp, 0Ch
·.text:00401082 ; Балансировка стека
·.text:00401085 lea ecx, [ebp+var_54]
·.text:00401085 ; Занесение в регистр ECX указателя на буфер var_54 (_pass)
·.text:00401088 push ecx
·.text:00401088 ; Заталкивание его в стек
·.text:00401089 lea edx, [ebp+var_44]
·.text:00401089 ; Занесение в регистр EDX указателя на буфер var_54 (pass)
·.text:0040108C push edx
·.text:0040108C ; Заталкивание его в стек
·.text:0040108D call _strcmp
·.text:0040108D ; Вызов strcmp( amp;_pass[0], amp;pass[0])
·.text:00401092 add esp, 8
·.text:00401092 ; Балансировка стека
·.text:00401095 test eax, eax
·.text:00401095 ; Введен правильный пароль?
·.text:00401097 jz short loc_0_4010B0
·.text:00401097; Переход, если введен правильный пароль
·.text:00401099 lea eax, [ebp+var_44]
·.text:00401099 ; Занесение в регистр EAX указателя на буфер var_44 (pass)
·.text:0040109C push eax
·.text:0040109C ; Заталкивание его в стек
·.text:0040109D push offset aInvalidPasswor; "Invalid password: %s"
·.text:0040109D ; Заталкивание в стек указателя на строку “Invalid password: %s”
·.text:004010A2 lea ecx, [ebp+var_34]
·.text:004010A2 ; Занесение в регистр ECX указателя на буфер var_34 (buff)
·.text:004010A5 push ecx
·.text:004010A5 ; Заталкивание его в стек
·.text:004010A6 call _sprintf
·.text:004010A6 ; Вызов sprintf( amp;buff[0],”Invalid password: %s”, amp;pass[0])
·.text:004010AB add esp, 0Ch
·.text:004010AB; Балансировка стека
·.text:004010AE jmp short loc_0_4010C1
·.text:004010B0; ---------------------------------------------------------------------------
·.text:004010B0