Главная    Почта    Новости    Каталог    Одноклассники    Погода    Работа    Игры     Рефераты     Карты
  
по Казнету new!
по каталогу
в рефератах

Защита данных от несанкционированного доступа

mp   ax, 5
           jl    no_disk

           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    
Пред.111213
скачать работу

Защита данных от несанкционированного доступа

 

Отправка СМС бесплатно

На правах рекламы


ZERO.kz
 
Модератор сайта RESURS.KZ