Защита данных от несанкционированного доступа
| Категория реферата: Рефераты по информатике, программированию
| Теги реферата: изложение на тему, контрольная работа 6
| Добавил(а) на сайт: Vonifat.
Предыдущая страница реферата | 21 22 23 24 25 26 27 28 29 30 31
fat bufrez ;Запись FAT pop ds pop es db 0cbh ;RetF. Перейти на программу
no_disk: ;Это не ключевая дискета mov ah, 2 mov bx, 0 pr_ent1: mov dl, dsk_key[bx] ;Вывод сообщения sub dl, 10h int 21h inc bx cmp bx, len_enter1 jb pr_ent1
fat bufrez ;Запись FAT mov ah, 4ch ;Выход в DOS mov al, 0 int 21h
copyright db 'Copyright(C) Юзефович Артем ( МГВРК,' db ' Минск ), 1996' db 0Dh, 0Ah, 'Ключевая' db ' дискета.', 0Dh, 0Ah db 0Dh, 0Ah, 0Dh, 0Ah, '$'
code ends end start
;**************************************************************************
**
;**************************************************************************
**
;**
**
;** КП "ЗАЩИТА ДАННЫХ ОТ НСД"
**
;** Выполнили учащиеся гр.46491 ЕГАНОВ МАКСИМ и ЮЗЕФОВИЧ АРТЕМ
**
;** 1996
**
;**
**
;** Защита винчестера
**
;**************************************************************************
**
;**************************************************************************
** keybd_flags_1_ equ 417h ;Флаги клавиатуры data_10e equ 0
seg_a segment byte public assume cs:seg_a, ds:seg_a
org 100h ;Счетчик команд
Block proc far
start:
jmp real_start data_1 db 1 data_2 dw 7241h, 6574h data_4 dw 2E6dh, 2020h data_6 dw 2020h, 2020h flag1 db 0 flag2 db 0 flag3 db 0 allf db 0 nameF db 'C:sub_rosablock.com', 0
Block endp
int_09h_entry proc far ;Процедура обработки 09h push ax ;прерывания push ds mov al,cs:allf xor al,1 mov cs:allf,al jmp k2 k: mov cs:allf,1 k2: in al,60h ;Обращение к порту клавиатуры cmp al,32h ;Проверка на нужную je l1 ;комбинацию cmp al,08h je l2 cmp al,1eh je l3 jmp loc_1
l1: mov cs:flag1,1 jmp loc_2 l2: cmp cs:flag1,0 je loc_1 mov cs:flag2,1 jmp loc_2 l3: cmp cs:flag2,0 je loc_1 mov cs:flag3,1 jmp loc_2 loc_1: pop ds pop ax cmp cs:allf,1 jne r2 mov cs:flag1,0 mov cs:flag2,0 mov cs:flag3,0 r2: jmp dword ptr cs:data_2 loc_2: sub ax,ax mov ds,ax test byte ptr ds:keybd_flags_1_,8 jz loc_1 ;Alt нажата ? in al,61h mov ah,al ;Слудующий код необходим для or al,80h ;отработки аппаратного out 61h,al ;прерывания xchg ah,al out 61h,al
mov al,20h ;Послать сигнал "конец out 20h,al ;прерывания" контроллеру
;прерываний 8259 push bx mov ah,0Fh int 10h ;Video display
;ah=functn 0Fh
;get state, al=mode, bh=page
;ah=columns on screen cmp cs:flag1,1 jne loc_6 cmp cs:flag2,1 jne loc_6 cmp cs:flag3,1 jne loc_6
cmp al,1 je loc_3 ;Jump if equal cmp al,3 jne loc_6 ;Jump if not equal loc_3: mov ax,0B800h mov ds,ax ;Установка ключа проверки mov al,cs:data_1 ;для 13h прерывания xor al,1 mov cs:data_1,al test al,1 jz loc_4 ;Jump if zero mov ax,7458h ;Вывод символа jmp short loc_5 db 90h loc_4: mov ax,744Fh ;Вывод символа loc_5: mov cs:flag1,0 mov cs:flag2,0 mov cs:flag3,0 mov ds:data_10e,ax loc_6: mov cs:allf,1 pop bx pop ds pop ax iret ;Interrupt return int_09h_entry endp
int_2Fh_entry proc far ;Mультиплексное прерывание cmp ah,13h je loc_7 ;Jump if equal jmp dword ptr cs:data_6 loc_7: mov bx,0F000h mov es,bx mov bx,0FFF0h mov dx,bx iret ;Interrupt return int_2Fh_entry endp
sub_1 proc near sub ax,ax mov ds,ax mov ax,[bx+2] mov es,ax mov bx,[bx] mov byte ptr es:[bx],0CFh retn sub_1 endp
int_13h_entry proc far ;Процедура обработки 13h cmp ax,1059h ;прерывания jne loc_8 ;Jump if not equal cmp dx,2517h jne loc_8 ;Jump if not equal xchg dx,ax iret ;Interrupt return int_13h_entry endp
loc_8: test cs:data_1,1 ;Проверка на ключ jnz loc_10 ;Jump if not zero loc_9: jmp dword ptr cs:data_4 ;Вернуться к 13h прерыванию loc_10: push ax push bx push ds push es mov bx,4 call sub_1 mov bx,0Ch call sub_1 pop es pop ds ;Далее слудуют проверки pop bx ;функций 13h прерывания pop ax cmp ah,3 je loc_11 ;Jump if equal cmp ah,5 je loc_11 ;Jump if equal cmp ah,6 je loc_11 ;Jump if equal cmp ah,7 je loc_11 ;Jump if equal cmp ah,0Bh je loc_11 ;Jump if equal cmp ah,1Ah jne loc_9 ;Jump if not equal loc_11: mov dl,3 jmp short loc_9
real_start: mov ax,1059h ;Block уже загружен ? mov dx,2517h int 13h
cmp ax,2517h jne loc_12 ;Jump if not equal cmp dx,1059h jne loc_12 ;Jump if not equal
mov ax,4C01h ;Выход в DOS int 21h
loc_12: mov ax,3509h int 21h
mov data_2,bx ;Запомнить адрес 09h INT mov bx,es mov word ptr data_2+2,bx mov dx,offset int_09h_entry mov ax,2509h int 21h ;Установка нового 09h INT
mov ax,3513h int 21h
mov data_4,bx ;Запомнить адрес 13h INT mov bx,es mov word ptr data_4+2,bx mov dx,offset int_13h_entry mov ax,2513h int 21h ;Установка нового 13h INT
mov ax,352Fh int 21h
mov data_6,bx ;Запомнить адрес 2Fh INT mov bx,es mov word ptr data_6+2,bx mov dx,offset int_2Fh_entry mov ax,252Fh int 21h ;Установка нового 2Fh INT
;Необходимое число параграфов
;памяти mov cs:data_1, 0 mov ah, 41h push cs pop ds mov dx, offset nameF int 21h mov cs:data_1, 1 mov dx,((offset pgm_len+15)/16)+10h mov ax,3100h ;Завершить и оставить int 21h ;резидентным
data_8 db 'Защита Винчестера. '
copyright db 'Copyright(C) Юзефович Артем ( МГВРК,' db ' Минск ), 1996' db 0Dh, 0Ah, 'Винчестер' db ' блокирован.', 0Dh, 0Ah db 0Dh, 0Ah, 0Dh, 0Ah, '$'
pgm_len equ $-Block ;Длина программы seg_a ends
end start
Приложение 3
Пример работы программы
В качестве примера работы программы приведем текстовый файл до зашифрования:
“Sub Rosa - втайне (буквально: под розой).
У древних римлян роза была эмблемой тайны. Когда хозяин дома вешал розу над пиршественным столом, гости знали, что все сказанное должно оставаться тайной.
Впоследствии изображение розы на потолке помещений, где происходили совещания, свидетельствовало о том, что все сказанное здесь не должно быть разглашено.” и после зашифрования:
9
Скачали данный реферат: Klecka, Kudashev, Казарезов, Jashkov, Кудрявцев, Чуприн, Ratibor.
Последние просмотренные рефераты на тему: план дипломной работы, новейшие рефераты, диплом, отчет по практике.
Категории:
Предыдущая страница реферата | 21 22 23 24 25 26 27 28 29 30 31