Автор работы: Пользователь скрыл имя, 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
Source, Target : file;
NumRead, NumWrite: word;
buf
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,
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.
GotoXY(1, 25);
Write('Инсталлировано');
CopyFyle('a:\sub_rosa\sub_
WriteLn;
WriteLn('Система готова к работе');
ChDir('c:\sub_rosa');
Mem[$40:$1a]:=Mem[$40:$1c];
{Восстановить вектора прерываний}
SetIntVec($23, Save23hInt);
SetIntVec($1b, Save1bhInt);
End.
{*****************************
{*****************************
{**
{** КП "ЗАЩИТА ДАННЫХ ОТ НСД" **}
{** Выполнил учащийся гр.46491 ЕГАНОВ МАКСИМ **}
{**
{** **}
{** Модуль привязки к 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 ЮЗЕФОВИЧ АРТЕМ **}
{**
{**
{**
Дописывание к файлу
{*****************************
{*****************************
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 ?
hand_2 dw ?
NameTarOff
dw ?
NameSouOff
dw ?
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:
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:
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:
Информация о работе Защита данных от несанкционированного доступа