Защита информационных процессов на аппаратном уровне. Защита на уровне расширений BIOS. Защита на уровне загрузчиков операционной системы, страница 3

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.  Защита на уровне загрузчиков операционной системы

  Локализация защитных механизмов в структурах, связанных с начальной загрузкой операционной системы, позволяет решать ряд важных задач компьютерной безопасности. Это следующие задачи: