etal_pas db "goodpas"
c_oper dw 0
pzu_seg dw 0
ozu_group_e:
end zamok
Далее приведен код процедур, которые используются в данной программе и описаны в файле video.asm.
; процедура вывода строки Put_string
; параметры
; регистр ah - цвет
; регистры es:di - строка (окончание /0)
; регистр cl - x - столбец
; регистр ch - y - столбец
Put_string proc near
\
; сохранение регистров
push ax bx dx si di es ds
mov dx,ax
; определение типа монитора
mov ah,0Fh
int 10h
cmp al,7
jnz color1
jmp mono1
mov ax,0B000h
color1:
mov ax,0B800h
mono1:
mov ds,axx
; вычисление смещения в буфере
push cx
xor ax,ax
push dx
mov al,ch
mov bx,160
mul bx
pop dx
xor ch,ch
add ax,cx
mov si,ax
mov ax,dx
pop cx
put_c:
mov al,byte prt es:[di]
cmp al,0
je put_e
mov word prt ds:[si],ax
add si,2
inc di
add cl,2
jmp put_c
put_e:
; окончание
pop ds es di si dx bx ex
ret
Put_string endp
; процедура вывода символа Put_byte
; ax - символ
; регистр cl - x - столбец
; регистр ch - y - столбец
; значение цвета - pb_col
Put_byte proc near
сохранение регистров
push ax bx dx si di es ds
mov dx,ax
; определение типа монитора
mov ah,0Fh
int 10h
cmp al,7
jnz color2
jmp mono2
mov ax,0B000h
color2:
mov ax,0B800h
mono2:
mov ds,axx
; вычисление смещения в буфере
push cx
xor ax,ax
push dx
mov al,ch
mov bx,160
mul bx
pop dx
xor ch,ch
add ax,cx
mov si,ax
mov ax,dx
pop cx
mov bx,word prt ds:[si]
mov bl,al
mov bh, byte prt cs:[pb_col]
mov word prt ds:[si],bx
add cl,2
; окончание
pop ds es di si dx bx ax
ret
pb_col db 0
Put_byte endp
; процедура пароля
E_Passw proc near
; регистр cl - x - столбец
; регистр ch - y - столбец
push ax cx bx di es
push cs
pop ds
; очистка строки пароля
push cx
mov cx,32
xor bx,bx
xor al,al
e_passw_0:
mov byte prt es:[di+bx],al
inc bx
loop e_passw_0
pop cx
; чтение символов пароля
xor bx,bx
e_passw_1:
mov ah,0
int 16h
cmp al,13
je e_passw_3
cmp al,8
jne e_passw_11
cmp bx,0
je e_passw_12
dec bx
mov byte prt es:[di+bx],0
jmp e_passw_12
e_pass_11:
mov byte prt es:[di+bx],al
inc bx
; вывод звездочек
push cx si
push cx
xor si,si
e_passw_121:
mov al,pb
call Put_byte
cmp si,32
je e_passw_122
inc si
jmp e_passw_121
e_passw_122:
pop cx
xor si,si
e_passw_123:
cmp si,bx
je e_pass_124
mov al,zw
call Put_byte
int si
jmp e_pass_123
e_passw_124:
pop si cx
jmp e_pass_14
e_passw_14:
cmp bx,32
je e_passw_3
jmp e_passw_1
e_passw_3:
pop es di bx cx ax
ret
E_Passw endp
zw db "*"
pb db " "
; процедура очистки экрана
clear_screen proc near
push ax bx cx dx ds
mov ah,0Fh
int 10h
cmp al,7
jnz clear1
jmp clear2
mov ax,0B000h
clear1:
mov ax,0B800h
clear2:
mov ds,ax
; очистка экрана
xor bx,bx
mov cx,4000
clear3:
mov word prt ds:[bx],0000h
add bx,2
loop clear3
pop ds dx cx bx ax
ret
ckear_screen endp
; макросы
view_byte MACRO
mov ah,byte prt [di]
call Hex2Char
mov al,dl
call Put_byte
mov al,dh
call Put_byte
inc di
ENDM
Byte2Hex MACRO reg
cmp reg,10
jc $+5
add reg,'A'-10-'0'
add reg,'0'
ENDM
; процедура преобразование регистра ah в dx
Hear2Char proc near
push bx cx ; регистры bx и сx в стек
mov bl,ah
and bl,0F0h
mov cl,4
sar bl,cl
and bl,0Fh
Byte2Hex bl
mov dl,bl
mov bl,ah
and bl,0Fh
Byte2Hex bl
mov dh,bl
pop cx bx
ret
Head2Char endp
2. Защита на уровне загрузчиков операционной системы
Локализация защитных механизмов в структурах, связанных с начальной загрузкой операционной системы, позволяет решать ряд важных задач компьютерной безопасности. Это следующие задачи:
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.