Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
pilipchuk_05.doc
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
1.68 Mб
Скачать

Список використаних джерел

  1. ГОСТ 19.701-90. ЕСПД. Схемы алгоритмов, программ данных и систем. – М.: 1990. – 40 с.

  2. Schulman A. Computer And Internet Surveillance in the Workplace: Rough Notes, US, 2001-2002. [Електронне видання]: http://www.sonic.net

  3. Schulman A. The Extent of Systematic Monitoring of Employee E-mail and Internet Use, US, 2001-2002. [Електронне видання]: http://www.sonic.net

  4. Красноступ Н.Д., Кудин Д.В. Шпионские программы и новейшие методы защиты от них// Электронное издание bezpeka.com, ‑ М. 2005.

  5. Шелупанов А. А., Мещеряков Р. В., Лось В. П., Белов Е. Б. Основы информационной безопасности, М: Горячая линия ‑Телеком, 2006 - 544с.

  6. Нечаев В.И. Элементы криптографии. Основы теории защиты информации, М. – 2005. - 112 с.

  7. Цирлов В. Л. Основы информационной безопасности. Краткий курс, Издательство: Феникс, 2008 - 256 с.

  8. Шаньгин В. Ф. Защита компьютерной информации, М: ДМК. 2008 - 544с.

  9. Галисеев Г.В. Программирование в среде Delphi 7. Самоучитель, М.:BHV – 2005, 288 с.

  10. Голуб А. Правила программирования на С и С++. - М.:"Бином", 2001. - 241 с.

  11. Громов Ю.Ю., Татаренко С.И. Программирование на языке СИ: Учебное пособие. - Тамбов, 1995. - 169 с.

  12. Гук М.Ю. Интерфейсы ПК: справочник. – СПб: ЗАО «Издательство «Питер», 1999. – 416 с.

  13. Крупник А.Б. Безопасность домашнего ПК. Народные советы, М.: BHV. – 2007. – 256 с.

  14. С. Н. Семкин , Э. В. Беляков, С. В. Гребенев , В. И. Козачок Основы организационного обеспечения информационной безопасности объектов информатизации, П.: BHV – 2007 – 192с.

  15. Свен Шрайбер, Недокументированные возможности Windows 2000, - СПб.: Питер, 2002 - 544 с.

  16. НД ТЗИ 1.1-003-99. Термінологія у області захисту інформації в комп'ютерних системах від несанкціонованого доступу. // Департамент спеціальних телекомунікаційних систем і захисту інформації Служби безпеки України. – Київ, 2009.

Додаток а Лістинг коду програмних процедур і классів для організації роботи мережевих пристроїв

procedure TForm1.btnSendClick(Sender: TObject);

var

SendThread: TSendThread;

begin

SendThread:= TSendThread.Create(cds);

SendThread.OnLog:= OnLog;

SendThread.ServerAddress:= EditServer.Text;

SendThread.Resume;

end;

procedure TSendThread.Execute;

var

I: Integer;

Data: TStringList;

Buf: String;

begin

try

Data:= TStringList.Create;

fIdTcpClient:= TIdTcpClient.Create (nil);

try

fIdTcpClient.Host:= ServerAddress;

fIdTcpClient.Port:= 1051;

fIdTcpClient.Connect;

fDataSet.First;

while not fDataSet.Eof do

begin

// если запись еще не зарегистрирована

if fDataSet.FieldByName('CompID').IsNull or

(fDataSet.FieldByName('CompID').AsInteger = 0) then

begin

FLogMsg:= 'Sending ' + fDataSet.FieldByName('Company').AsString;

Synchronize(DoLog);

Data.Clear;

// создать строку со структурой "FieldName=Value"

for I:= 0 to fDataSet.FieldCount - 1 do

Data.Values [fDataSet.Fields[I].FieldName]:=

fDataSet.Fields [I].AsString;

// отправить запись

fIdTcpClient.Writeln ('senddata');

fIdTcpClient.WriteStrings (Data, True);

// ожидание ответа

Buf:= fIdTcpClient.ReadLn;

fDataSet.Edit;

fDataSet.FieldByName('CompID').AsString:= Buf;

fDataSet.Post;

FLogMsg:= fDataSet.FieldByName('Company').AsString +

' logged as ' + fDataSet.FieldByName('CompID').AsString;

Synchronize(DoLog);

end;

fDataSet.Next;

end;

finally

fIdTcpClient.Disconnect;

fIdTcpClient.Free;

Data.Free;

end;

except

// определение ошибки набора данных

// (совместное редактирование и т. д.)

end;

end;

procedure TForm1.IdTCPServer1TIdCommandHandler0Command(

ASender: TIdCommand);

var

Data: TStrings;

I: Integer;

begin

Data:= TStringList.Create;

try

ASender.Thread.Connection.ReadStrings(Data);

cds.Insert;

// установка поля при помощи строк

for I:= 0 to cds.FieldCount - 1 do

cds.Fields [I].AsString:=

Data.Values [cds.Fields[I].FieldName];

// заполнить ID, отправителя и дату

Inc(ID);

cdsCompID.AsInteger:= ID;

cdsLoggedBy.AsString:= ASender.Thread.Connection.Socket.Binding.PeerIP;

cdsLoggedOn.AsDateTime:= Date;

cds.Post;

// возврат ID

ASender.Thread.Connection.WriteLn(cdsCompID.AsString);

finally

Data.Free;

end;

end;

procedure TMainForm.BtnSendAllClick(Sender: TObject);

var

nItem: Integer;

Res: Word;

begin

Res:= MessageDlg ('Start sending from item ' +

IntToStr (ListAddr.ItemIndex) + ' (' +

ListAddr.Items [ListAddr.ItemIndex] + ')?'#13 +

'(No starts form 0)',

mtConfirmation,

[mbYes, mbNo, mbCancel], 0);

if Res = mrCancel then

Exit;

if Res = mrYes then

nItem:= ListAddr.ItemIndex

else

nItem:= 0;

// соединение

Mail.Host:= eServer.Text;

Mail.Username:= eUserName.Text;

if ePassword.Text <> '' then

begin

Mail.Password:= ePassword.Text;

Mail.AuthenticationType:= atLogin;

end;

Mail.Connect;

// отправка сообщения так же, как обычного сообщения

try

// установка фиксированной части заголовка

MailMessage.From.Name:= eFrom.Text;

MailMessage.Subject:= eSubject.Text;

MailMessage.Body.SetText (

reMessageText.Lines.GetText);

MailMessage.Body.Insert (0, 'Hello');

while nItem < ListAddr.Items.Count do

begin

// показать текущий выбор

Application.ProcessMessages;

ListAddr.ItemIndex:= nItem;

MailMessage.Body [0]:= 'Hello ' + ListAddr.Items [nItem];

MailMessage.Recipients.EMailAddresses:= ListAddr.Items [nItem];

Mail.Send(MailMessage);

Inc (nItem);

end;

finally

// готово

Mail.Disconnect;

end;

end;

Класс TFindWebThread (в программе WebFind)

unit FindTh;

interface

uses

Classes, IdComponent, SysUtils, IdHTTP;

type

TFindWebThread = class(TThread)

Protected

Addr, Text, Status: string;

procedure Execute; override;

procedure AddToList;

procedure ShowStatus;

procedure GrabHtml;

procedure HtmlToList;

procedure HttpWork (Sender: TObject; AWorkMode: TWorkMode;

const AWorkCount: Integer);

public

strUrl: string;

strRead: string;

end;

implementation

{ TFindWebThread }

uses

WebFindF, wininet;

procedure TFindWebThread.AddToList;

begin

if Form1.ListBox1.Items.IndexOf (Addr) < 0 then

begin

Form1.ListBox1.Items.Add (Addr);

Form1.DetailsList.Add (Text);

end;

end;

procedure TFindWebThread.Execute;

begin

GrabHtml;

HtmlToList;

Status:= 'Done with ' + StrUrl;

Synchronize (ShowStatus);

end;

procedure TFindWebThread.GrabHtml;

var

Http1: TIdHTTP;

begin

Status:= 'Sending query: ' + StrUrl;

Synchronize (ShowStatus);

Http1:= TIdHTTP.Create (nil);

try

Http1.Request.UserAgent:= 'User-Agent: NULL';

Http1.OnWork:= HttpWork;

strRead:= Http1.Get (StrUrl);

finally

Http1.Free;

end;

end;

procedure TFindWebThread.HtmlToList;

var

strAddr, strText: string;

nText: integer;

nBegin, nEnd: Integer;

begin

Status:= 'Extracting data for: ' + StrUrl;

Synchronize (ShowStatus);

strRead:= LowerCase (strRead);

repeat

// поиск первой части ссылки HTTP

nBegin:= Pos ('href=http', strRead);

if nBegin <> 0 then

begin

// получение оставшейся части строки, начинающейся с 'http'

strRead:= Copy (strRead, nBegin + 5, 1000000);

// найти окончание ссылки HTTP

nEnd:= Pos ('>', strRead);

strAddr:= Copy (strRead, 1, nEnd - 1);

// продолжить

strRead:= Copy (strRead, nEnd + 1, 1000000);

// добавить URL, если он не содержит 'google'

if Pos ('google', strAddr) = 0 then

begin

nText:= Pos ('', strRead);

strText:= copy (strRead, 1, nText - 1);

// удаление кэшированных ссылок и копий

if (Pos ('cached', strText) = 0) then

begin

Addr:= strAddr;

Text:= strText;

AddToList;

end;

end;

end;

until nBegin = 0;

end;

procedure TFindWebThread.HttpWork(Sender: TObject; AWorkMode: TsWorkMode;

const AWorkCount: Integer);

begin

Status:= 'Received ' + IntToStr (AWorkCount) + ' for ' + strUrl;

Synchronize (ShowStatus);

end;

procedure TFindWebThread.ShowStatus;

begin

Form1.StatusBar1.SimpleText:= Status;

end;

end.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]