Автор работы: Пользователь скрыл имя, 09 Марта 2013 в 00:11, лабораторная работа
Создать проект, который при первом запуске заносит в системный реестр данные при каждом следующем запуске число запусков уменьшается, и если остаётся 0 выводится сообщение, что следующий запуск будет невозможен. При каждом запуске выводится сообщение об оставшемся числе запусков.
Лабораторная работа №1
Создание демонстрационной версии
Создать проект, который при первом запуске заносит в системный реестр данные при каждом следующем запуске число запусков уменьшается, и если остаётся 0 выводится сообщение, что следующий запуск будет невозможен. При каждом запуске выводится сообщение об оставшемся числе запусков.
program Project1;
uses
Forms,WINDOWS,Dialogs,
unit1 in 'unit1.pas' {Form1};
var
rgn:cardinal;
reg:tregistry;
n:integer;
{$R *.res}
begin
reg:=tregistry.Create;
with reg do begin
openkey('software',true);
openkey ('gashik',true);
if valueexists('max') then begin
n:=readInteger('max')-1;
if n>=0 then WriteInteger ('max',n);
end
else begin
n:=15;
WriteInteger('max',n);
end;
reg.Free;
if n>0 then begin
Application.Initialize;
Application.CreateForm(TForm1, Form1);
with Form1.Canvas,Form1 do begin
rgn:=CreateEllipticrgn(0,0,
SetWindowRgn(Handle,rgn,true);
end;
Form1.Label2.Caption:=
Application.Run;
end
else
ShowMessage('Программа заблокирована!!!');
end;
end.
Организация доступа к проекту
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, ExtCtrls, Mask;
type
TForm1 = class(TForm)
Panel1: TPanel;
Button1: TButton;
Panel2: TPanel;
MaskEdit1: TMaskEdit;
Edit1: TEdit;
Edit2: TEdit;
Label1: TLabel;
Label2: TLabel;
Label3: TLabel;
Edit3: TEdit;
Label4: TLabel;
CheckBox1: TCheckBox;
Button2: TButton;
procedure Button1Click(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure Button2Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
passLim:integer;
implementation
uses IniFiles;
const
IniFilename='Z:\Шадрин Максим\Безопасность ИС\ЛБ2(3)DemoIni.ini';
var Ini:TIniFile;
pr:integer;
{$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject);
begin
Form1.Caption:=IntToStr(
if maskedit1.Text='parol' then panel2.Visible:=true
else
begin
passLim:=passLim+1;
if passLim=3 then
begin
ShowMessage('попытки кончились');
Button1.Enabled:=false;
end
else ShowMessage('Введите пароль еще раз');
end;
end;
procedure TForm1.FormCreate(Sender: TObject);
begin
passLim:=0;
end;
procedure TForm1.Button2Click(Sender: TObject);
begin
if Edit1.Text='' then showmessage('Введите номер секции');
Ini:=TIniFile.Create(
Ini.WriteString(Edit1.Text,'
Ini.WriteString(Edit1.Text,'
if CheckBox1.Checked then pr:=1 else pr:=0;
Ini.WriteInteger(Edit1.Text,'
Ini.Destroy;
end;
end;
procedure TForm2.Button1Click(Sender: TObject);
begin
if edSection.Text=''then showmessage('Введите название секции');
Ini:=TIniFile.Create(
Ini.WriteString(edSection.
Ini.Writestring(edSection.
if cbprava.Checked then pr:=1 else pr:=0;
Ini.WriteInteger(edSection.
Ini.Destroy;
Form2.Show;
end;
end;
end.
object Form1:TForm1
Left=295;
Top=185;
Width=381;
Height=247;
Caption='Работа с файлом инициации';
color=clBtnFace;
Font.Charset=DEFAULT_CHARSET
Font.Color=clWindowText
Font.Height=-11
Font.Name='MS Sans Serif'
Font.Style=[]
OldCreateOrder=False
PixelsPerInch=96
TextHeight=13
object Label1:TLabel
Left=30
Top=16
Width=92
Height=13
Caption='Название секции'
end
object Label2:TLabel
Left=30
Top=48
Width=73
Height=13
Caption='Пользователь'
end
object Label3:TLabel
Left=30
Top=80
Width=38
Height=13
Caption='Пароль'
tnd
object Label5:TLabel
Left=30
Top=144
Width=52
Height=13
Caption='Все права'
end
object edSection:TEdit
Left=200
Top=16
Width=121
Height=21
TabOrder=0
end
object eduser:TEdit
Left=200
Top=48
Width=121
Height=21
TabOrder=1
end
object edpassword:TEdit
Left=200
Top=80
Width=121
Height=21
TabOrder=2
end
object cbprava:TCheckBox
Left=200
Top=144
Width=97
Height=17
TabOrder=3
end
object Button1:TButton
Left=72
Top=184
Width=75
Height=25
Caption='Запись'
TabOrder=4
OnClick=Button1Click
end
end.
Лабораторная работа №3
Шифрование и дешифрование
Создать текстовый файл. Создать проект который читает текст файла и выводит данные в memo1 и шифрует выводя в memo2.
Метод шифрования «Замена»: к коду каждого символа прибавляем заданное число и по новому коду выводим новый символ.
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;
type
TForm1 = class(TForm)
Button1: TButton;
Memo1: TMemo;
Memo2: TMemo;
Button2: TButton;
Button3: TButton;
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure Button3Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
const
StartKey = 981;
MultKey = 12674;
AddKey = 35891;
function Encrypt(const InString:string; StartKey,MultKey,AddKey:
function Decrypt(const InString:string;
StartKey,MultKey,AddKey:
implementation
{$R *.dfm}
{$R-}
{$Q-}
function Encrypt(const InString:string; StartKey,MultKey,AddKey:
var
I : Byte;
begin
Result := '';
for I := 1 to Length(InString) do
begin
Result := Result + CHAR(Byte(InString[I]) xor (StartKey shr 8));
StartKey := (Byte(Result[I]) + StartKey) * MultKey + AddKey;
end;
end;
function Decrypt(const InString:string; StartKey,MultKey,AddKey:
var
I : Byte;
begin
Result := '';
for I := 1 to Length(InString) do
begin
Result := Result + CHAR(Byte(InString[I]) xor (StartKey shr 8));
StartKey := (Byte(InString[I]) + StartKey) * MultKey + AddKey;
end;
end;
{$R+}
{$Q+}
procedure TForm1.Button1Click(Sender: TObject);
begin
Memo2.Text:=Encrypt(Memo1.
end;
procedure TForm1.Button2Click(Sender: TObject);
begin
Memo1.Text:=Decrypt(Memo2.
end;
procedure TForm1.Button3Click(Sender: TObject);
begin
close; end; end.
Негосударственное общеобразовательное учреждение
среднего специального образования
Костромской технологический техникум
Отчёт
По безопасности ИС
Выполнил студент группы 4А1:
Шадрин Максим