Руководство пользователя. переместить в нужный каталог файлы «filter.txt»и «diploma.exe»




Для начала работы службы пользователю необходимо:

- переместить в нужный каталог файлы «filter.txt»и «diploma.exe»;

- в выбранном каталоге у пользователя должны иметься все права чтение\запись и изменение;

- запустить файл «diploma.exe»из командной строки с параметром –installдля установки службы в базу диспетчера системных сервисов, как показано на рисунке 7.

Рисунок 7 – Установка службы из командной строки

Все дальнейшие операции стандартны для любой службы Windowsи производятся из окна управления компьютером раздела служб, показанного на рисунке 8. Выбрав из списка службу можно задать различные типы запуска или поменять другие стандартные параметры, как видно из рисунка 9.

Для удаления службы из базы диспетчера системных сервисов необходимо запустить приложение из командной строки с параметром –remove.

Рисунок 8 – Управление компьютером, службы

Рисунок 9 – Окно свойств службы


 

ЗАКЛЮЧЕНИЕ

В данном курсовом проекте написана служебная утилита по предоставлению доступа к определённым узлам глобальной сети при помощи подмены порта назначения на не заблокированный средствами защиты. Служба предоставляет следующий набор функций:

- проверка отправляемого пакета на необходимость к подмене порта;

- отправка такого пакета уже с изменённым портом назначения;

- проверка принятого на сетевой интерфейс пакета на необходимость к возврату в исходный вид;

- возврат принятого пакета в изначальный вид и отправка на исходный порт назначения.

В дальнейшем хотелось бы добавить\улучшить следующие характеристики программы:

- возможность динамического подбора рабочего порта подмены в случаях с локальным кэширующим DNSсервером в корпоративной сети;

- считывание пришедших пакетов напрямую из сетевого интерфейса, а не получения их копии и работы с ними – это предотвратит «замусоривание» сети;

- написание своей версии библиотеки по работе с сетевыми устройствами для облегчения и улучшения быстродействия программы.


 

СПИСОК ИСПОЛЬЗОВАННЫХ ИСТОЧНИКОВ

1. Прата С. Язык программирования С++. Лекции и упражнения./С. Прата –Санкт-Петербург: Вильямс, 2012. – 1244с.

2. ИспользованиеWinPcapвсвоихприложениях [Электронныйресурс] / CACETechnologies. – Режимдоступа:https://www.winpcap.org/ docs/docs_40_2/html/group__wpcapsamps.html– Загл. сэкрана.

3. Сетевое программирование и не только [Электронный ресурс] / BinaryTides. – Режим доступа: https://www.binarytides.com/category/programming/sockets/c–sockets/– Загл. с экрана.

4. Сеть разработчиков Microsoft [Электронный ресурс] / Microsoft. Режим доступа:https://msdn.microsoft.com/ru–ru/library/zt39148a(v=vs.110).aspx– Загл. с экрана.


 

Приложение А

(обязательное)

Заголовочные файлы классов

//КлассServiceBase

classCServiceBase

{

public:

 

// Register the executable for a service with the Service Control Manager

// (SCM). After you call Run(ServiceBase), the SCM issues a Start command,

// which results in a call to the OnStart method in the service. This

// method blocks until the service has stopped.

static BOOL Run(CServiceBase&service);

 

// Service object constructor. The optional parameters (fCanStop,

// fCanShutdown and fCanPauseContinue) allow you to specify whether the

// service can be stopped, paused and continued, or be notified when

// system shutdown occurs.

CServiceBase(PWSTR pszServiceName,

BOOL fCanStop = TRUE,

BOOL fCanShutdown = TRUE,

BOOL fCanPauseContinue = FALSE);

 

// Service object destructor.

virtual ~CServiceBase(void);

 

// Stop the service.

void Stop();

 

protected:

 

// When implemented in a derived class, executes when a Start command is

// sent to the service by the SCM or when the operating system starts

// (for a service that starts automatically). Specifies actions to take

// when the service starts.

virtual void OnStart(DWORD dwArgc, PWSTR *pszArgv);

 

// When implemented in a derived class, executes when a Stop command is

// sent to the service by the SCM. Specifies actions to take when a

// service stops running.

virtual void OnStop();

 

// When implemented in a derived class, executes when a Pause command is

// sent to the service by the SCM. Specifies actions to take when a

// service pauses.

virtual void OnPause();

 

// When implemented in a derived class, OnContinue runs when a Continue

// command is sent to the service by the SCM. Specifies actions to take

// when a service resumes normal functioning after being paused.

Продолжение приложения А

virtualvoidOnContinue();

// When implemented in a derived class, executes when the system is

// shutting down. Specifies what should occur immediately prior to the

// system shutting down.

virtual void OnShutdown();

 

// Set the service status and report the status to the SCM.

voidSetServiceStatus(DWORD dwCurrentState,

DWORD dwWin32ExitCode = NO_ERROR,

DWORD dwWaitHint = 0);

 

// Log a message to the Application event log.

voidWriteEventLogEntry(PWSTR pszMessage, WORD wType);

 

// Log an error message to the Application event log.

voidWriteErrorLogEntry(PWSTR pszFunction,

DWORD dwError = GetLastError());

 

private:

 

// Entry point for the service. It registers the handler function for the

// service and starts the service.

static void WINAPI ServiceMain(DWORD dwArgc, LPWSTR *lpszArgv);

 

// The function is called by the SCM whenever a control code is sent to

// the service.

static void WINAPI ServiceCtrlHandler(DWORD dwCtrl);

 

// Start the service.

void Start(DWORD dwArgc, PWSTR *pszArgv);

 

// Pause the service.

void Pause();

 

// Resume the service after being paused.

void Continue();

 

// Execute when the system is shutting down.

void Shutdown();

 

// The singleton service instance.

staticCServiceBase *s_service;

 

// The name of the service

PWSTR m_name;

 

// The status of the service

SERVICE_STATUS m_status;

// The service status handle

SERVICE_STATUS_HANDLE m_statusHandle;};

ПродолжениеприложенияА

//КлассSampleService

classCSampleService: public CServiceBase

{

public:

 

CSampleService(PWSTR pszServiceName,

BOOL fCanStop = TRUE,

BOOL fCanShutdown = TRUE,

BOOL fCanPauseContinue = FALSE);

virtual ~CSampleService(void);

 

protected:

 

virtual void OnStart(DWORD dwArgc, PWSTR *pszArgv);

virtual void OnStop();

 

voidServiceWorkerThread(void);

 

private:

 

BOOL m_fStopping;

HANDLE m_hStoppedEvent;

};

 

//КлассServiceInstaller

classServiceInstaller

{

public:

 

voidInstallService(PWSTR pszServiceName,

PWSTR pszDisplayName,

DWORD dwStartType,

PWSTR pszDependencies,

PWSTR pszAccount,

PWSTR pszPassword);

 

voidUninstallService(PWSTR pszServiceName);

};



Поделиться:




Поиск по сайту

©2015-2024 poisk-ru.ru
Все права принадлежать их авторам. Данный сайт не претендует на авторства, а предоставляет бесплатное использование.
Дата создания страницы: 2018-01-31 Нарушение авторских прав и Нарушение персональных данных


Поиск по сайту: