5. ПРИЛОЖЕНИЕ B (ЛИСТИНГ ПРОГРАММЫ).
unit Unitkurs1;{главный}
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls, Mask;
type
TForm1 = class(TForm)
Label1: TLabel;
EditID: TEdit;
Label2: TLabel;
EditPSW: TMaskEdit;
Button1: TButton;
Button2: TButton;
Label3: TLabel;
procedure Button2Click(Sender: TObject);
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
procedure Generator;
end;
var
Form1: TForm1;
F_Mag,
F_PSW:file of char;{переменная, связанная с файлом 'password.txt'}
i,j,l,flag,i1,f{Yo}:integer;
y:integer;{псевдослучайное число}
UserMatrix:array[1..10,1..3] of string;{массив фамилий, идентификаторов и паролей пользователей}
Surname:array[1..150] of char;{массив фамилий пользователей}
IDs:array[1..100] of char;{массив идентификаторов пользователей}
PSWs:array[1..100] of char;{массив паролей пользователей}
stroca,Ident,Psword:string;
xxx:char;
const
Yo:integer=14;
implementation
uses Unitkurs, Unitkurs3;
{$R *.DFM}
{процедура реализующая ЛИНЕЙНЫЙ КОНГУЭНТНЫЙ ГЕНЕРАТОР}
procedure Tform1.Generator;
begin
y:=(31*y+17)mod(257);
end;
procedure TForm1.Button2Click(Sender: TObject);
begin
close
end;
{нажатие кнопки 'принять'}
procedure TForm1.Button1Click(Sender: TObject);
begin
if (EditID.Text='admin')and(EditPSW.Text='password')
then Form2.Visible:=true
else {если не администратор}
begin
Ident:=EditId.Text;
Psword:=EditPSW.Text;
i:=1;
repeat
if i>length(Ident) then Ident:=Ident+' ';
if i>length(Psword) then Psword:=Psword+' ';
i:=i+1;
until i>=11;
{запись в журнал аудита}
{$I-}
AssignFile(F_Mag,'audit');
Reset(F_Mag);
{$I+}
if IOResult0 then begin Rewrite(F_Mag); y:=Yo end
else begin
if FileSize(F_Mag)=0 then y:=Yo
else begin
y:=yo;
f:=20*round(FileSize(F_Mag)/30);
i:=1;
repeat
generator;
i:=i+1
until i>=f+1;
end;
end;
Seek(F_Mag,FileSize(F_Mag));
i:=1;
repeat
generator;
xxx:=Chr((ord(Ident[i]))xor(y));
Write(F_Mag,xxx);
i:=i+1;
until i>=11;
i:=1;
repeat
generator;
xxx:=Chr((ord(PSWord[i]))xor(y));
Write(F_Mag,xxx);
i:=i+1;
until i>=11;
{чтение информации из файла}
Y:=14;
AssignFile(F_PSW,'password.txt');
Reset(F_PSW);
{фамилии}
j:=1;
repeat
Read(F_PSW,Surname[j]);
j:=j+1
until j>=151;
{идентификаторы}
j:=1;
repeat
Read(F_PSW,IDs[j]);
generator;
ids[j]:=chr((ord(ids[j]))xor(y));
j:=j+1
until j>=101;
{пароли}
j:=1;
repeat
Read(F_PSW,PSWs[j]);
generator;
PSWs[j]:=chr((ord(PSWs[j]))xor(y));
j:=j+1
until j>=101;
CloseFile(F_PSW);
{сбор в массив UserMatrix}
i:=1;
repeat
stroca:='';
j:=1;
repeat
if Surname[(i-1)*15+j]' ' then stroca:=stroca+Surname[(i-1)*15+j];
j:=j+1
until j>=16;
UserMatrix[i,1]:=stroca;
i:=i+1
until i>=11;
i:=1;
repeat
stroca:='';
j:=1;
repeat
if IDs[(i-1)*10+j]' ' then stroca:=stroca+IDs[(i-1)*10+j];
j:=j+1
until j>=11;
UserMatrix[i,2]:=stroca;
i:=i+1
until i>=11;
i:=1;
repeat
stroca:='';
j:=1;
repeat
if PSWs[(i-1)*10+j]' ' then stroca:=stroca+PSWs[(i-1)*10+j];
j:=j+1
until j>=11;
UserMatrix[i,3]:=stroca;
i:=i+1
until i>=11;
{идентификация и аутентификация}
flag:=0;
i:=1;
repeat
if (EditID.Text=UserMatrix[i,2])and(EditPSW.Text=UserMatrix[i,3])and
(EditID.Text'') then begin
Flag:=1;
i1:=i end;
i:=i+1
until i>=11;
if flag=1 then begin
xxx:='y';
i:=1;
repeat
Write(F_Mag,xxx);
i:=i+1
until i>=11;
CloseFile(F_Mag);
Form3.Visible:=true;
end
else
begin
xxx:='n';
i:=1;
repeat
Write(F_Mag,xxx);
i:=i+1
until i>=11;
CloseFile(F_Mag)
end;
end;
end;
end.
unit Unitkurs;{администрирование}
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls, Grids, ComCtrls;
type
TForm2 = class(TForm)
ButtonAdd: TButton;
ButtonDel: TButton;
Button3: TButton;
Button1: TButton;
StringGrid1: TStringGrid;
procedure FormActivate(Sender: TObject);
procedure ButtonAddClick(Sender: TObject);
procedure ButtonDelClick(Sender: TObject);
procedure Button3Click(Sender: TObject);
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
procedure Generator;
end;
var
Form2: TForm2;
F_PSW:file of char;{переменная, связанная с файлом 'password.txt'}
i,j,l:integer;
y:integer;{псевдослучайное число}
UserMatrix:array[1..10,1..3] of string;{массив фамилий, идентификаторов и паролей пользователей}
Surname:array[1..150] of char;{массив фамилий пользователей}
IDs:array[1..100] of char;{массив идентификаторов пользователей}
PSWs:array[1..100] of char;{массив паролей пользователей}
stroca:string;
implementation
uses Unitkurs4;
{$R *.DFM}
{процедура реализующая ЛИНЕЙНЫЙ КОНГУЭНТНЫЙ ГЕНЕРАТОР}
procedure Tform2.Generator;
begin
y:=(31*y+17)mod(257);
end;
procedure TForm2.FormActivate(Sender: TObject);
begin
y:=14;
{оглавление таблицы пользователей}
i:=1;
repeat
StringGrid1.Cells[0,i]:=IntToStr(i);
i:=i+1;
until i>=11;
StringGrid1.Cells[1,0]:='фамилия';
StringGrid1.Cells[2,0]:='идентификатор';
StringGrid1.Cells[3,0]:='пароль';
{чтение информации из файла 'password.txt'}
AssignFile(F_PSW,'password.txt');
Reset(F_PSW);
{фамилии}
j:=1;
repeat
Read(F_PSW,Surname[j]);
j:=j+1
until j>=151;
{идентификаторы}
j:=1;
repeat
Read(F_PSW,IDs[j]);
generator;
ids[j]:=chr((ord(ids[j]))xor(y));
j:=j+1
until j>=101;
{пароли}
j:=1;
repeat
Read(F_PSW,PSWs[j]);
generator;
PSWs[j]:=chr((ord(PSWs[j]))xor(y));
j:=j+1
until j>=101;
CloseFile(F_PSW);
{сбор в массив UserMatrix}
i:=1;
repeat
stroca:='';
j:=1;
repeat
if Surname[(i-1)*15+j]' ' then stroca:=stroca+Surname[(i-1)*15+j];
j:=j+1
until j>=16;
UserMatrix[i,1]:=stroca;
i:=i+1
until i>=11;
i:=1;
repeat
stroca:='';
j:=1;
repeat
if IDs[(i-1)*10+j]' ' then stroca:=stroca+IDs[(i-1)*10+j];
j:=j+1
until j>=11;
UserMatrix[i,2]:=stroca;
i:=i+1
until i>=11;
i:=1;
repeat
stroca:='';
j:=1;
repeat
if PSWs[(i-1)*10+j]' ' then stroca:=stroca+PSWs[(i-1)*10+j];
j:=j+1
until j>=11;
UserMatrix[i,3]:=stroca;
i:=i+1
until i>=11;
{отображение в таблице}
i:=1;
repeat
j:=1;
repeat
StringGrid1.Cells[j,i]:=UserMatrix[i,j];
j:=j+1
until j>=4;
i:=i+1
until i>=11;
end;
{===============нажатие кнопки 'сохранить изменения'=======================}
procedure TForm2.ButtonAddClick(Sender: TObject);
begin
y:=14;
{заполнение массива UserMatrix}
i:=1;
repeat
j:=1;
repeat
UserMatrix[i,j]:=StringGrid1.Cells[j,i];
j:=j+1
until j>=4;
i:=i+1
until i>=11;
{заполнение массива surname}
i:=1;
repeat
stroca:=UserMatrix[i,1];
l:=length(stroca);
j:=1;
repeat
if j=16;
i:=i+1
until i>=11;
{заполнение массива IDs}
i:=1;
repeat
stroca:=UserMatrix[i,2];
l:=length(stroca);
j:=1;
repeat
if j=11;
i:=i+1
until i>=11;
{заполнение массива PSWs}
i:=1;
repeat
stroca:=UserMatrix[i,3];
l:=length(stroca);
j:=1;
repeat
if j=11;
i:=i+1
until i>=11;
{запись в файл 'password.txt'}
AssignFile(F_PSW,'password.txt');
Rewrite(F_PSW);
{фамилии без преобразования}
j:=1;
repeat
write(F_PSW,Surname[j]);
j:=j+1
until j>=151;
{идентификаторы}
j:=1;
repeat
generator;
ids[j]:=chr((ord(ids[j]))xor(y));
write(F_PSW,IDs[j]);
j:=j+1
until j>=101;
{пароли}
j:=1;
repeat
generator;
PSWs[j]:=chr((ord(PSWs[j]))xor(y));
write(F_PSW,PSWs[j]);
j:=j+1
until j>=101;
CloseFile(F_PSW);
end;
{нажатие кнопки 'очистить'}
procedure TForm2.ButtonDelClick(Sender: TObject);
begin
{очистка таблицы}
i:=1;
repeat
j:=1;
repeat
StringGrid1.Cells[j,i]:='';
j:=j+1
until j>=4;
i:=i+1
until i>=11;
end;
procedure TForm2.Button3Click(Sender: TObject);
begin
close
end;
procedure TForm2.Button1Click(Sender: TObject);
begin
Form4.Visible:=True
end;
end.
unit Unitkurs4;{журнал аудита}
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls, Grids;
type
TForm4 = class(TForm)
StringGrid1: TStringGrid;
ButtonDel: TButton;
Button2: TButton;
ButtonShow: TButton;
procedure Button2Click(Sender: TObject);
procedure ButtonShowClick(Sender: TObject);
procedure ButtonDelClick(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
procedure Generator;
end;
var
Form4: TForm4;
F_Mag:file of char;{переменная, связанная с файлом 'audit.txt'}
i,j,l,i1:integer;
y:integer;{псевдослучайное число}
ident,psword:string;
xxx:char;
implementation
{$R *.DFM}
{процедура реализующая ЛИНЕЙНЫЙ КОНГУЭНТНЫЙ ГЕНЕРАТОР}
procedure Tform4.Generator;
begin
y:=(31*y+17)mod(257);
end;
procedure TForm4.Button2Click(Sender: TObject);
begin
close
end;
{нажатие кнопки 'показать'}
procedure TForm4.ButtonShowClick(Sender: TObject);
begin
i:=1;
repeat
StringGrid1.Cells[0,i]:=IntToStr(i);
i:=i+1;
until i>=11;
StringGrid1.Cells[1,0]:='идентификатор';
StringGrid1.Cells[2,0]:='пароль';
StringGrid1.Cells[3,0]:='результат';
{чтение информации из файла 'audit.txt'}
{$I-}
AssignFile(F_Mag,'audit');
Reset(F_Mag);
{$I+}
if IOResult=0 then begin
i1:=1;
y:=14;
while not(EoF(F_Mag)) do
begin
j:=1;
repeat
Read(F_Mag,xxx);
generator;
xxx:=chr((ord(xxx))xor(y));
ident:=ident+xxx;
j:=j+1
until j>=11;
i:=1;
repeat
Read(F_Mag,xxx);
generator;
xxx:=Chr((ord(xxx))xor(y));
psword:=psword+xxx;
i:=i+1;
until i>=11;
if StringGrid1.RowCount=11;
if xxx='y' then StringGrid1.Cells[3,i1]:='допуск'
else StringGrid1.Cells[3,i1]:='отказ';
ident:='';
psword:='';
i1:=i1+1;
end;
CloseFile(F_Mag) end;
end;
{нажатие кнопки 'очистить'}
procedure TForm4.ButtonDelClick(Sender: TObject);
begin
StringGrid1.RowCount:=11;
i:=1;
repeat
StringGrid1.Cells[1,i]:='';
StringGrid1.Cells[2,i]:='';
StringGrid1.Cells[3,i]:='';
i:=i+1
until i>=11;
AssignFile(F_Mag,'audit');
Rewrite(F_Mag);
CloseFile(F_Mag);
end;
end.
Литература:
Белкин П.Ю. , Михальский О.О. , Першаков А.С. и другие “Программно-аппаратные средства обеспечения информационной безопасности: защита программ и данных”.
Зима В.М. и другие “Защита компьютерных ресурсов от несанкционированных действий пользователя”.
Романец Ю.В. , Тимофеев П.А. , Шаньгин В.Ф. “Защита информации в компьютерных системах”.
Министерство образования рф ТАГАНРОГСКИЙ ГОСУДАРСТВЕННЫЙ РАДИОТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ | |
КАФЕДРА БИТ | Курсовой проект По курсу «ПАСОИБ» на тему «Обнаружение вредоносных закладок» Выполнил: __________ __________ Проверили: _________________________________ _________________________________ |
Таганрог 2002г. |
... на работу компьютера, является вирусом. Существуют следующие основные виды вредоносного ПО: · Троянские кони, программные закладки и сетевые черви; · Вирусы; · Шпионское ПО; · Руткиты; · Прочие вредоносные программы. 2.1 Троянские кони, программные закладки и сетевые черви Троянский конь – это программа, содержащая в себе некоторую разрушающую функцию, которая активизируется при ...
... ; 44 – нарушение правил эксплуатации ЭВМ и их сетей. Существенную роль в реализации несанкционированного доступа к информации играет компьютерная сеть Интернет, являясь чуть ли самым популярным каналом утечки информации. Поэтому на ее примере целесообразно рассмотреть современные угрозы безопасности и методы защиты от них, используемые средства защиты и услуги безопасности. Интернет действительно ...
... информации: в штатном режиме; изменения в штатном режиме работы; нештатный режим (аварийные ситуации). Глава 2. Обоснование способов защиты операционной системы от программных закладок типа троянский конь 2.1 Общие сведения о троянских программах Подсоединение локальных компьютерных сетей организаций к сети Internet приводит к необходимости уделять достаточно серьезное внимание ...
... с применением полиграфических компьютерных технологий? 10. Охарактеризуйте преступные деяния, предусмотренные главой 28 УК РФ «Преступления в сфере компьютерной информации». РАЗДЕЛ 2. БОРЬБА С ПРЕСТУПЛЕНИЯМИ В СФЕРЕ КОМПЬЮТЕРНОЙ ИНФОРМАЦИИ ГЛАВА 5. КОНТРОЛЬ НАД ПРЕСТУПНОСТЬЮВ СФЕРЕ ВЫСОКИХ ТЕХНОЛОГИЙ 5.1 Контроль над компьютерной преступностью в России Меры контроля над ...
0 комментариев