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

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

  begin
         WriteLn;
         WriteLn('Ошибка чтения с диска');
         SetIntVec($23, Save23hInt);
         SetIntVec($1b, Save1bhInt);
         halt;
       end;
     BlockWrite(Target,Buf,NumRead,NumWrite);
     If NumRead<>NumWrite then
       begin
         WriteLn;
         WriteLn('На диске не хватает места для записи');
         SetIntVec($23, Save23hInt);
         SetIntVec($1b, Save1bhInt);
         halt;
       end;
   until NumRead=0;
   close(Source);
   close(Target);
 end;

 Var
   Directory: string; {Куда копировать}

 Begin {Основная часть программы}
   GetIntVec($23, Save23hInt); {Подменить вектора прерываний 23h, 1bh}
   GetIntVec($1b, Save1bhInt); {Отключение Ctrl-C или Ctrl-Break}
   SetIntVec($23, @My23hInt);
   SetIntVec($1b, @My23hInt);
   SetCursorSize(32, 0);
   {$I-}
   Directory:='c:sub_rosa'; {Создать каталог для установки}
   MkDir(Directory);
   if IOResult <> 0 then {Обработчик ошибок}
     begin
       WriteLn('Система уже была инсталлирована');
       SetIntVec($23, Save23hInt);
       SetIntVec($1b, Save1bhInt);
       halt;
     end;
   {$I+}
   {Создать файл ресурсов с привязкой к уникальным параметрам BIOS}
    MyStream  :=  New(PBufStream,  Init('c:sub_rosaSetup.res',  stCreate,
 2048));
   MyRes.Init(MyStream);
   RegisterType(RMenuBar);
   CreateMenuBar;
   MyRes.Done;
   {Копировать файлы}
   CopyFyle('a:sub_rosablock.');
   CopyFyle('a:sub_rosakeydisk.');
   CopyFyle('a:sub_rosaplus.');
   CopyFyle('a:sub_rosapassw.');
   CopyFyle('a:sub_rosasystem.res');
   GotoXY(1, 25);
   Write('Инсталлировано');
   CopyFyle('a:sub_rosasub_rosa.exe');
   WriteLn;
   WriteLn('Система готова к работе');
   ChDir('c:sub_rosa');
   Mem[$40:$1a]:=Mem[$40:$1c];
   {Восстановить вектора прерываний}
   SetIntVec($23, Save23hInt);
   SetIntVec($1b, Save1bhInt);
 End.
 {**************************************************************************
                                     *}
 {**************************************************************************
                                     *}
                                     {**
                                     **}
            {**                        КП "ЗАЩИТА ДАННЫХ ОТ НСД"
                                     **}
          {**             Выполнил учащийся гр.46491 ЕГАНОВ МАКСИМ
                                     **}
                   {**                               1996
                                     **}
  {**                                                                   **}
              {**                       Модуль привязки к BIOS
                                     **}
 {**************************************************************************
                                     *}
 {**************************************************************************
                                     *}

 Unit SetConf;
 Interface
   function config: string; {Дата BIOS}

 Implementation
   {Получить дату BIOS}
   function config: string;
   var
     conf, s: String;
     Control: char absolute $F000:$FFF5;
     i      :byte;
   begin
     Move(Control, s[1], 8);
     s[0] := #8;
     for i := 1 to length(s) do conf[i] := chr(ord(s[i]) + 5*i);
     conf[0] := #8;
     config := conf;
   end;
 End.

 {**************************************************************************
 **}
 {**************************************************************************
 **}
 {**
 **}
 {**                          КП      "ЗАЩИТА      ДАННЫХ      ОТ      НСД"
 **}
 {**                 Выполнил    учащийся    гр.46491    ЮЗЕФОВИЧ     АРТЕМ
 **}
 {**                                                                   1996
 **}
 {**
 **}
 {**                                  Дописывание          к          файлу
 **}
 {**************************************************************************
 **}
 {**************************************************************************
 **}
 code      segment public
      assume cs: code, ds: code, es: code, ss: code
      org  80h         ;Хвост команды
 dta  label      byte
 com_siz   db    ?
 probel    db    ?
 com_par   db    ?
      org  100h
 start:
           jmp   test_par
 type_t    db    ?          ;Тип расширения target
 len_s     dw    ?          ;Длина source_file
 len_t_1   dw    ?          ;Длина target_file
 len_t_2   dw    ?          ;Длина target_file
 hand_1    dw    ?                              ;Обработка source_file
 hand_2    dw    ?                              ;Обработка target_file
 NameTarOff dw   ?                              ;Смещение имени target_file
 NameSouOff dw   ?                              ;Смещение имени source_file
 ext_a     db    'com', 'exe'     ;Допустимые расширения
 mbad_use  db    10, 13
 syn       db    10, 13

 TEST_PAR:
      lea  si, dta+1        ;Далее идет проверка
 l_0:                                              ;параметров в командной
           cmp   byte ptr [si], 0Dh  ;строке
      je   c_syn
      cmp  byte ptr [si], '?'
      je   c_h
      cmp  byte ptr [si], ' '
      jne  not_prob
      inc  si
      jmp  short l_0
 c_syn:
           int   20h
 c_h:
           int   20h
 use:
           int   20h
 not_prob:
           mov   NameTarOff, si   ;1-ый параметр правильный ?
 l_1:
           cmp   byte ptr [si], 0Dh
           je    c_b_1_m_2
           cmp   byte ptr [si], ' '
           je    c_b_1
           cmp   byte ptr [si], '.'
           je    d_t_1
           inc   si
           jmp   short l_1
 c_b_1_m_2:
           jmp   use        ;Недопустимое расширение
 c_b_1:                                            ;у target_file
      jmp  use
 D_T_1:                                           ;Анализ расширения
           inc   si
           call  det_type
           pop   ax
           mov   type_t, al
           cmp   ax, 2
           je    C_B_1
           add   si, 3
           lea   cx, dta
           add   cl, byte ptr dta
           adc   ch, 0
           cmp   cx, si
           jbe   C_M_2
           mov   byte ptr [si], 0
 l_2:                                                   ;2-ой      параметр
 правильный ?
           inc   si
           cmp   cx, si
           jb    c_m_2
           cmp   byte ptr [si], ' '
           je    l_2
           mov   NameSouOff, si
 l_3:
           cmp   byte ptr [si], '.'
           je    d_t_2
           inc   si
           cmp   cx, si
           jb    c_b_2
           jmp   l_3                    ;Отсутствует source_file
 c_m_2:
           jmp   use
 d_t_2:
           inc   si
           call  det_type
           pop   ax
           cmp   ax, 0
           je    test_end
 c_b_2:
           jmp   use
 test_end:
           add   si, 2
           cmp   cx, si
           jb    c_b_2
           mov   byte ptr [si+1], 0

 OPEN_F:                                             ;Открыть,   определить
 длину
           mov   ah, 3dh                     ;и прочитать в буфер файл
           mov   al, 2                       ;source_file
           mov   dx, NameSouOff
           int   21h
           jnc   yes_open
           int   20h
 yes_open:                                         ;Определить длину
           mov   bx, ax
           mov   hand_2, ax
           mov   ah, 42h
           xor   cx, cx
           xor   dx, dx
           mov   al, 2
           int   21h
           jnc   yes_p_1
 cn_mov_2:
           int   20h
 yes_p_1:
           mov   word ptr len_s, ax
           mov   ah, 42h
           xor   cx, cx
           xor   dx, dx
           mov   al, 0
           int   21h
           jc    cn_mov_2
           mov   ah, 3Fh
           lea   dx, buff
           mov   cx, word ptr len_s
           int   21h
           jnc   open_targ
           int   20h

 OPEN_TARG                  ;Открыть target_file
           mov   ah, 3Dh
           mov   al, 2
           mov   dx, NameTarOff
           int   21h
           jnc   det_len_1
           int   20h
 det_len_1:
           mov   hand_1, ax
           mov   bx, hand_1
           mov   ah, 42h
           xor   cx, cx
           xor   dx, dx
           mov   al, 2
           int   21h
           jnc   rest_len
           jmp   cn_mov_1
 rest_len:
           mov   len_t_1, dx
           mov   len_t_2, ax

 TO_PROC:                         ;Если target_file - COM,
           cmp   type_t, 0              ;то CALL WR2COM.
           je    c_com                  ;Если target_file - EXE,
           call  wr2exe                 ;то CALL WR2EXE.
           jmp   short CLOSE_F
 c_com:
           call  wr2com

 CLOSE_F:                                          ;Закрыть файлы
           mov   ah, 3Eh                ;source_file и target_file
           mov   bx, hand_1
           int   21h
           jnc   cl_2
           int   20h
 cl_2:
           mov   ah, 3Eh
           mov   bx, hand_2
           int   21h
           jnc   OK
           int   20h
 OK:
           mov   ah, 9
           int   20h


 det_type proc                               ;Подпрограммы
           mov   bp, sp
           push  ax
           push  cx
           push  di
           xor   ax, ax
           lea   di, ext_a
 loo_1:
           push  si
           push  di
           mov   cx, 3
           repe  cmpsb
           jne   end_loo_1
           pop   di
           pop   si
           mov   [bp+2], ax
           jmp   d_ret
 end_loo_1:
           inc   al
           pop   di
           add   di, 3
           pop   si
           cmp   al, 2
     
Пред.678910След.
скачать работу

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

 

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

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


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