Автор: Пользователь скрыл имя, 26 Декабря 2011 в 13:54, курсовая работа
При создании и использовании ПЭВМ возникает целый ряд взаимосвязанных теоретических и практических проблем. В коммерческих и военных областях одной из основных является проблема защиты информации. Так можно выделить следующие объективные причины, определяющие важность проблемы защиты информации:
высокие темпы роста парка ПЭВМ, находящихся в эксплуатации;
широкое применение ПЭВМ в самых различных сферах человеческой деятельности;
высокая степень концентрации информации в ПЭВМ;
совершенствование способов доступа пользователей к ресурсам ПЭВМ;
усложнение вычислительного процесса в ПЭВМ.
Введение . . . . . . . . . . . 3
1. Постановка задачи . . . . . . . . . 4
1. 1. Организационно-экономическая сущность задачи . . . . 4
1. 2. Входные данные . . . . . . . . . 6
1. 3. Постоянная информация . . . . . . . . 6
1. 4. Выходная данные . . . . . . . . . 6
2. Вычислительная система . . . . . . . . 7
2. 1. Операционная система . . . . . . . . 7
2. 2. Технические средства реализации задачи . . . . . . 8
2. 3. Программные средства . . . . . . . . 8
3. Алгоритм задачи . . . . . . . . . 10
4. Описание программы . . . . . . . . . 14
5. Описание применения программы . . . . . . 16
6. Заключение . . . . . . . . . . 17
int 21h
inc bx
cmp bx, len_enter
jb pr_ent
push cx
mov cx, len_pas ;Ввести пароль
lea di, buff
rd_pass:
mov al, 7
mov ah, 0Ch
int 21h
stosb
loop rd_pass
pop cx
mov bx, 0
cmp_p:
mov al, password[bx] ;Сравнить пароль с введенным
sub al, 60h
cmp al, buff[bx]
jne repeat
inc bx
cmp bx, len_pas
jb cmp_p
equal:
pop ds
pop es
db 0CBh
repeat:
loop pr_1
dos:
jmp cs_1
ms_1 db '*', 10, 13, '$'
cs_1:
mov ah, 9 ;Пароль не верный
lea dx, ms_1
int 21h
mov ah, 4Ch
int 21h
copyright db 'Copyright(C) Юзефович Артем ( МГВРК,'
db ' Минск ), 1996'
db 0Dh, 0Ah, 'Запрос'
db ' пароля.', 0Dh, 0Ah
db 0Dh, 0Ah, 0Dh, 0Ah, '$'
code ends
end start
{*****************************
{*****************************
{**
{** КП "ЗАЩИТА ДАННЫХ ОТ НСД" **}
{** Выполнил учащийся гр.46491 ЮЗЕФОВИЧ АРТЕМ **}
{**
{**
{**
Ключевая дискета
{*****************************
{*****************************
code segment
assume cs: code, ds:code, es: code, ss: code
org 100h ;Счетчик команд-100h
start: jmp print
recsize equ 512 ;Размер сектора
buffer db recsize dup(?) ;Буферы ввода-вывода
bufrez db recsize dup(?)
buffer1 db recsize dup(?)
protect label byte
db 'T'+60h,'h'+60h,'i'+60h,'s'+
db 80h, 80h
db 'i'+60h,'s'+60h
db 80h, 80h
db 'k'+60h,'e'+60h,'y'+60h
db 80h, 80h
db 'd'+60h,'i'+60h,'s'+60h,'k'+
len_enter2
equ $-protect ;Длина
сообщения
dsk_key label byte
db 'Э'+10h,'т'+10h,'о'+10h
db 30h, 30h
db 'н'+10h,'е'+10h
db 30h, 30h
db 'к'+10h,'л'+10h,'ю'+10h,'ч'+
db 'е'+10h,'в'+10h,'а'+10h,'я'+
db 30h, 30h
db 'д'+10h,'и'+10h,'с'+10h,'к'+
db 'е'+10h,'т'+10h,'а'+10h
db 6Ah-50h, 6Dh-50h
len_enter1
equ $-dsk_key ;Длина сообщения
enter_pas label byte
db 'В'+10h, 30h,'с'+10h, 30h,'т'+10h, 30h,'а'+10h, 30h
db 'в'+10h, 30h, 'ь'+10h, 30h, 'т'+10h, 30h, 'е'+10h, 30h
db 30h, 30h, 30h
db 'к'+10h, 30h,'л'+10h, 30h,'ю'+10h, 30h,'ч'+10h, 30h
db 'е'+10h, 30h,'в'+10h, 30h,'у'+10h, 30h,'ю'+10h, 30h
db 30h, 30h, 30h
db 'д'+10h, 30h,'и'+10h, 30h,'с'+10h, 30h,'к'+10h, 30h
db 'е'+10h, 30h,'т'+10h, 30h,'у'+10h, 30h
db 30h, 30h, 30h
db 'и'+10h
db 30h, 30h, 30h
db 'н'+10h, 30h,'а'+10h, 30h,'ж'+10h, 30h,'м'+10h, 30h
db 'и'+10h, 30h,'т'+10h, 30h,'е'+10h, 30h
db 30h, 30h
db 'В'+10h, 'В'+10h, 'О'+10h, 'Д'+10h
db 6Ah-50h, 6Dh-50h
len_enter equ $-enter_pas ;Длина сообщения
print:
push es ;Сохранение регистров
push ds
push cs
push cs
pop ds ;cs=>ds
pop es
;cs=>es
mov ah, 2
mov bx, 0
pr_ent:
mov dl, enter_pas[bx] ;Вывод сообщения
sub dl, 10h
int 21h
inc bx
cmp bx, len_enter
jb pr_ent
mov ah, 08h ;Ожидание нажатия Ввода
int 21h
mov al, 0
mov cx, 1
mov dx, 1
mov bx, offset buffer
int 25h ; считали FAT
pop dx ;25h и 26h оставляют лишнее
mov al, 0 ;слово в стеке, извлекаем его
mov cx, 1
mov dx, 1
mov bx, offset bufrez ;Сохраняем резервную копию
int 25h ;FAT
pop dx
mov bx, offset buffer ;Процедура,которая определяет
mov ax, 118 ;запись FAT по номеру сектора
mov cx, ax
shl ax, 1
add ax, cx
test ax, 1
pushf
shr ax, 1
add bx, ax
mov ax, [bx]
popf
jnz getFAT11
and ax, 0FFFh
jmp getFAT21
getFAT11:
shr ax, 4
getFAT21:
cmp ax, 0ff7h ;1-ая проверка. BAD-?
jne no_disk1
;НЕТ
mov bx, offset buffer ;ДА
mov ax, 120
mov cx, ax
shl ax, 1
add ax, cx
test ax, 1
pushf
shr ax, 1
add bx, ax
mov ax, [bx]
popf
jnz getFAT111
and ax, 0FFFh
jmp getFAT212
getFAT111:
shr ax, 4
getFAT212:
cmp ax, 0ff7h ;2-ая проверка. BAD-?
jne no_disk1 ;НЕТ
jmp f1
no_disk1:
jmp no_disk
f1:
good macro x, y ;Макроопределение, которое
mov bx, offset buffer ;помечает сектор, как
mov ax, x ;свободный(занятый, плохой)
mov cx, ax
shl ax, 1
add ax, cx
test ax, 1
pushf
shr ax, 1
add bx, ax
popf
mov ax, y
mov [bx], ax
endm
good 118, 0h ;Пометить, как свободный
good 120, 0h
;Пометить, как свободный
fat macro b
mov al, 0
mov cx, 1
mov dx, 1
mov bx, offset b
int 26h ;Записали 1-ую копию FAT
pop dx
endm
fat buffer ;Запись FAT
Информация о работе Защита данных от несанкционированного доступа