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

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

k  : LockDisk;
           cmOptions   : ReturnVal :=
                           ExecuteDialog(New(POptions, Init), @OptFile);
           cmPasswords : Passwords
         end;
         ClearEvent(Event);
       end;
   end;
 end;

 {Инициализировать меню}
 procedure TMyApp.InitMenuBar;
 var
   R: TRect;
 begin
   {Получить меню из файла ресурсов по ключу "Config" - функция получения}
   {даты BIOS; модуль SetConf}
   MenuBar := PMenuBar(MyRes.Get(Config));
   if MenuBar = nil then
     begin
       Write(' Нелегальная копия!!!');
       halt(1);
     end;
 end;

 {Инициализировать рабочее поле}
 procedure TMyApp.InitDesktop;
 var
   R: TRect;
 begin
   GetExtent(R);
   R.Grow(0, -1);
   Desktop := New(PMyDesktop, Init(R));
 end;

 {Инициализировать строку состояния}
 procedure tMyApp.InitStatusLine;
 var
   R: tRect;
 begin
   GetExtent(R);
   R.A.Y:= R.B.Y - 1;
   StatusLine:= New(pStatusLine, Init(R,
   NewStatusDef(0, $FFFF,
     NewStatusKey('~F1~ О программе', kbF1, cmAboutBox,
     NewStatusKey('~F3~ Файл', kbF3, cmOpen,
     NewStatusKey('~F5~ Пароль', kbF10, cmMenu,
     NewStatusKey('~F9~ Настройки', kbF9, cmOptions,
     NewStatusKey('~F10~ Меню', kbF10, cmMenu,
     NewStatusKey('~Alt-X~ Выход', kbAltX, cmQuit,
     nil)))))),
   nil)));
 end;

 {Изменить основную палитру}
 function TMyApp.GetPalette: PPalette;
 const
   P: Array [apColor..apMonochrome] of string[Length(CAppColor)] =
        (CAppColor, CAppBlackWhite, CAppMonochrome);
 begin
   P[apColor, 50] := #$11; {1F}
   P[apColor, 51] := #$11; {2F}
   P[apColor,  1] := #$21; {71}
   GetPalette := @P[AppPalette];
 end;

 {Изменить палитру окна выбора файлов}
 function TMyFDialog.GetPalette: PPalette;
 const
   {Синяя палитра}
                               CMyCluster                                 =
 #64#65#66#67#68#69#70#71#72#73#74#75#76#77#78#79#80#81#82+
                    #83#84#85#86#87#88#89#90#91#92#93#94#95;
   P: string [32] = CMyCluster;
 begin
   GetPalette := @P;
 end;

 {Инициализировать окно выбора файлов}
 constructor TMyFileDialog.Init(AWildCard: tWildStr;
               const ATitle, InputName: string;
               AOptions: Word; HistoryId: Byte);
 var
   ScrollBar: PScrollBar;
   R        : TRect;
 begin
   { Создание окна диалога }
   R.Assign(15, 1, 64, 20);
   TDialog.Init(R, ATitle);
   Options:= Options or ofCentered;
   WildCard:= AWildCard;

   { Строка ввода имени файла }
   R.Assign(3, 3, 31, 4);
   FileName:= New(PFileInputLine, Init(R, 79));
   FileName^.Data^:= WildCard;
   Insert(FileName);
   R.Assign(2, 2, 6, 3);
   Insert(New(PLabel, Init(R, InputName, FileName)));
   R.Assign(31, 3, 34, 4);
   Insert(New(PHistory, Init(R, FileName, HistoryId)));

   { Линейка скроллинга и список файлов }
   R.Assign(3, 14, 34, 15);
   ScrollBar:= New(PScrollBar, Init(R));
   Insert(ScrollBar);
   R.Assign(3, 6, 34, 14);
   FileList:= New(PFileList, Init(R, ScrollBar));
   Insert(FileList);
   R.Assign(2, 5, 8, 6);
   Insert(New(PLabel, Init(R, 'Файлы', FileList)));

   { Задание кнопок }
   R.Assign(35, 3, 46, 5);
   if AOptions and fdOpenButton <> 0 then
     begin
       Insert(New(PButton, Init(
                 R, 'Открыть', cmFileOpen, bfDefault)));
       Inc(R.A.Y,3); Inc(R.B.Y,3);
     end;
   if AOptions and fdOkButton <> 0 then
     begin
       Insert(New(PButton, Init(
                 R, 'Ага', cmFileOpen, bfNormal)));
       Inc(R.A.Y,3); Inc(R.B.Y,3);
     end;
   if AOptions and fdReplaceButton <> 0 then
     begin
       Insert(New(PButton, Init(
                 R, 'Замена',cmFileReplace, bfNormal)));
       Inc(R.A.Y,3); Inc(R.B.Y,3);
     end;
   if AOptions and fdClearButton <> 0 then
     begin
       Insert(New(PButton, Init(
                 R, 'Удал.',cmFileClear, bfNormal)));
       Inc(R.A.Y,3); Inc(R.B.Y,3);
     end;
   Insert(New(PButton, Init(
                 R, 'Нека', cmCancel, bfNormal)));

   { Информационная панель с параметрами файла }
   R.Assign(1, 16, 48, 18);
   Insert(New(PFileInfoPane, Init(R)));

   SelectNext(False);

   { Загрузка каталога }
   if AOptions and fdNoLoadDir = 0 then
     begin
       FileList^.ReadDirectory(WildCard);
       Directory:= NewStr(GetCurDir);
     end;
 end;

 Var
   MyApp: TMyApp;  {Переменная основного объекта}

 Begin
   WriteLn('Система защиты данных от НСД. Версия 1.0 beta.'+
          +' 1996 МГВРК Еганов М. Ю., Юзефович А. Г.');
   GetIntVec($09,Int09_Save);
   MyApp.Init;
   MyApp.Run;
   MyApp.Done;
   SetIntVec($09, Int09_Save);
 End.



                                Приложение 2
                              Листинг библиотек



 {**************************************************************************
                                     *}
 {**************************************************************************
                                     *}
                                     {**
                                     **}
             {**                       КП "ЗАЩИТА ДАННЫХ ОТ НСД"
                                     **}
         {**                Выполнил учащийся гр.46491 ЕГАНОВ МАКСИМ
                                     **}
                   {**                               1996
                                     **}
                                     {**
                                     **}
               {**                      Программа инсталляции
                                     **}
 {**************************************************************************
                                     *}
 {**************************************************************************
                                     *}

 Program Install;

 Uses
   App, Dialogs, Drivers, Menus, MsgBox, Objects,
   Views, Memory, StdDlg, CRT, DOS, SetConf;

 Const {константы кодов команд}
   cmAboutBox  =  700;
   cmCode      = 1001;
   cmDeCode    = 1002;
   cmSetPass   = 1005;
   cmLockDisk  = 1006;
   cmOptions   = 1007;
   cmKeyDisk   = 1008;
   cmPasswords = 1009;

   RMenuBar: TStreamRec = (  {Запись для работы с потоком, TV}
     ObjType: 2000;
     VmtLink: Ofs(TypeOf(TMenuBar)^);
     Load: @TMenuBar.Load;
     Store: @TMenuBar.Store);

 Var
   Save23hInt : Pointer; {Переменные сохранения векторов прерываний}
   Save1bhInt : Pointer;
   MyApp      : TApplication;
   MyRes      : TResourceFile;
   MyStream   : PBufStream;

 {Формирование подменю "Файлы"}
 function MyStdFileMenuItems(Next: pMenuItem): pMenuItem;
 begin
   MyStdFileMenuItems:=
     NewItem('Выбрать...', 'F3', kbF3, cmOpen, hcOpen,
     NewItem('Сменить каталог...', '',
                 kbNoKey, cmChangeDir, hcChangeDir,
     NewLine(
     NewItem('Выход в ДОС', '', kbNoKey, cmDosShell, hcDosShell,
     NewItem('Завершение', 'Alt+X', kbAltX, cmQuit, hcExit,
     Next)))));
 end;

 {Формирование основного меню}
 procedure CreateMenuBar;
 var
   MenuBar: PMenuBar;
   R      : TRect;
 begin
   R.Assign(0, 0, 80, 1);
   MenuBar:= New(pMenuBar, Init(R, NewMenu(
     NewSubMenu('~Ф~айлы', hcNoContext, NewMenu(
       MyStdFileMenuItems(nil)),
     NewSubMenu('~З~ащита', hcNoContext, NewMenu(
        NewItem('~У~становить пароль', 'F5', kbF5, cmSetPass, 1005,
        NewItem('~Б~локировать винчестер', '', kbNoKey,  cmLockDisk,  1006,
 nil))),
     NewSubMenu('~К~лючевая дискета', hcNoContext, NewMenu(
        NewItem('~Д~обавить проверку по  ключу',  '',  kbNoKey,  cmKeyDisk,
 1008, nil)),
     NewSubMenu('~К~риптография', hcNoContext, NewMenu(
        NewItem('Зашифровать файл данных','', kbNoKey, cmCode, 1001,
        NewItem('Расшифровать файл  данных','',  kbNoKey,  cmDeCode,  1002,
 nil))),
     NewSubMenu('~Н~астройки', hcNoContext, NewMenu(
        NewItem('Криптография...','F9', kbF9, cmOptions, 1007,
        NewItem('Пароли...','F8', kbF8, cmPasswords, 1008, nil))),
     NewItem('~О~ программе', '', kbAltJ, cmAboutBox, 700, nil)))))))));
   MyRes.Put(MenuBar, Config);
   Dispose(MenuBar, Done);
 end;

 {Процедура управления формой курсора}
 procedure SetCursorSize(c_start,c_end:byte);
 var
    regs: registers;
 begin
   with regs do
     begin
       ah:=$01;
       ch:=c_start;
       cl:=c_end;
     end;
   intr($10,regs);
 end;

 {Процедура замены вектора преываний}
 {$F+}
 procedure My23hInt;Interrupt;
 begin
 end;
 {$F-}

 {Процедура копирования файлов}
 procedure CopyFyle(FromCopy: string);
 const
   TempLength = 1125.28;
 var
    ToCopy                       : string;
    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_rosasub_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
     
Пред.678910След.
скачать работу

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

 

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

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


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