·.text:0040102E;
·.text:00401031 push offset aPassw; "Passw:"
·.text:00401031;
·.text:00401036 call _printf
·.text:00401036;
·.text:0040103B add esp, 4
·.text:0040103B;
·.text:0040103E lea ecx, [ebp+var_18]
·.text:0040103E;
·.text:0040103E; читающей строку с клавиатуры. Следовательно, буфер var_18 содержит пароль
·.text:00401041 push ecx
·.text:00401041
·.text:00401042 call _gets
·.text:00401042
·.text:00401047 add esp, 4
·.text:00401047
·.text:0040104A push offset aGuest; "guest"
·.text:0040104A;
·.text:0040104F lea edx, [ebp+var_18]
·.text:0040104F;
·.text:00401052 push edx
·.text:00401052;
·.text:00401052;
·.text:00401053 call _strcmp
·.text:00401053;
·.text:00401058 add esp, 8
·.text:00401058;
·.text:0040105B test eax, eax
·.text:0040105B;
·.text:0040105B;
·.text:0040105B;
·.text:0040105D jnz short loc_0_401066
·.text:0040105D;
·.text:0040105F mov eax, 1
·.text:0040105F;
·.text:00401064 jmp short loc_0_401068
·.text:00401064;
·.text:00401066; ---------------------------------------------------------------------------
·.text:00401066
·.text:00401066 loc_0_401066:; CODE XREF: auth+4Bj
·.text:00401066 xor eax, eax
·.text:00401068;
·.text:00401068 loc_0_401068:; CODE XREF: auth+52j
·.text:00401068 mov esp, ebp
·.text:00401068;
·.text:0040106A pop ebp
·.text:0040106A;
·.text:0040106B retn
·.text:0040106B; Выйти из функции. Команда retn снимает из стека двойное слово, которое при
·.text:0040106B;
·.text:0040106B;
·.text:0040106B auth endp
·.text:0040106B
·.text:0040106C
·.text:0040106C; --------------- S U B R O U T I N E ---------------------------------------
·.text:0040106C
·.text:0040106C; Attributes: bp-based frame
·.text:0040106C
·.text:0040106C main proc near; CODE XREF: start+AFp
·.text:0040106C push ebp
·.text:0040106C;
·.text:0040106D mov ebp, esp
·.text:0040106D;
·.text:0040106F push offset aBufferOverflow; "Buffer Overflows Demo\n"
·.text:0040106F;
·.text:00401074 call _printf
·.text:00401074;
·.text:00401079 add esp, 4
·.text:00401079;
·.text:0040107C call Auth