Защита данных от несанкционированного доступа
Рефераты >> Программирование и компьютеры >> Защита данных от несанкционированного доступа

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_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;


Страница: