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

Автор работы: Пользователь скрыл имя, 22 Декабря 2010 в 20:48, курсовая работа

Описание

Появившиеся в начале 80-ых персональные ЭВМ (ПЭВМ или ПК) прочно вошли во все сферы человеческой деятельности. Вместе с ними у эксплуатирующих ПЭВМ организаций и ведомств возникли и многочисленные проблемы. Одна из них — защита информации. Согласно статистическим данным более 80% компаний и агентств несут финансовые убытки из-за нарушения безопасности данных.
Проблема защиты информации представляет собой совокупность тесно связанных проблем в областях права, организации управления, разработки технических средств, программирования и математики. Одна из центральных задач проектирования систем защиты состоит в рациональном распределении имеющихся ресурсов.

Содержание

Введение . . . . . . . . . . . 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
Приложение 1. Листинг программы . . . . . . . 18
Приложение 2. Листинг библиотек . . . . . . . 39
Приложение 3. Пример работы программы . . . . . . 45
Список литературы . . . . . . . . . 47

Работа состоит из  1 файл

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

— 201.50 Кб (Скачать документ)

   Source, Target            : file;

   NumRead, NumWrite: word;

   buf                                : string;

   TempPos, Temp         : real;

begin

  {Открыть файлы}

  ToCopy := 'c:';

  ToCopy := ToCopy + copy(FromCopy, 3, length(FromCopy) - 2);

  assign(Source, FromCopy);

  assign(Target, ToCopy);

  reset(Source, 1);

  rewrite(Target, 1);

  Temp := 0; 

  {Копировать}

  repeat

    BlockRead(Source, Buf, Sizeof(Buf)-1, NumRead);

   if FromCopy = 'a:\sub_rosa\sub_rosa.exe' then

      begin

        TempPos := 100*Temp/TempLength;

        Temp := Temp + 2.5;

        GotoXY(17, 25);

        if (TempPos > 98) and (TempPos < 100) then write('100.0 %')

          else write(TempPos: 4: 1, ' %');

      end;

    {Обработчик ошибок}

    if (NumRead<>Sizeof(Buf)-1) and (not EOF(Source)) then

      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_rosa\Setup.res', stCreate, 2048));

  MyRes.Init(MyStream);

  RegisterType(RMenuBar);

  CreateMenuBar;

  MyRes.Done;

  {Копировать файлы}

  CopyFyle('a:\sub_rosa\block.');

  CopyFyle('a:\sub_rosa\keydisk.');

  CopyFyle('a:\sub_rosa\plus.');

  CopyFyle('a:\sub_rosa\passw.');

  CopyFyle('a:\sub_rosa\system.res');

  GotoXY(1, 25);

  Write('Инсталлировано');

  CopyFyle('a:\sub_rosa\sub_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:

Информация о работе Защита данных от несанкционированного доступа