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

Заказать уникальную дипломную работу
Тип работы: Дипломная работа
Предмет: C++
  • 8787 страниц
  • 22 + 22 источника
  • Добавлена 23.07.2018
3 000 руб.
  • Содержание
  • Часть работы
  • Список литературы
  • Вопросы/Ответы
Оглавление 2
Список сокращений 4
Введение 5
Глава 1. Постановка задачи 6
1.1 Цель работы 6
1.2 Актуальность работы 6
Глава 2. Теоретическая часть 7
2.1 Съемные машинные носители информации (МНИ) 7
2.3 Угрозы безопасности информации при использовании съемных МНИ 7
2.5 Теоретическое построение решения 9
2.6 Выбор языка программирования 12
Глава 3. Практическая реализация 14
3.1 Создание приложения C CLR Windows Form 14
3.2 Проектирование базы данных 15
3.2.1 Установка и настройка MS SQL Server 15
3.2.1 Подключение из приложения 18
3.2.2 Получение данных 21
3.2.3 Добавление данных 23
3.2.4 Удаление 25
3.3 Определение подключения съемных МНИ 26
3.4 Реализация класса USB 27
3.4.1 Загрузка доверенных устройств 27
3.4.2 Получение МНИ и методы блокировки 29
3.4.3 Добавление устройств 31
3.4.4 Удаление из исключений 32
3.5 Реализация программного интерфейса 33
3.6 Проверка и тестирование приложения 37
Глава 4. Безопасность жизнедеятельности 43
Глава 5. Организационно-экономическая часть 55
Заключение 66
Список литературы 67
Приложения 69
Класс DB: 69
Класс ClassData: 73
Класс Usb: 74
Класс главной формы: 78











Фрагмент для ознакомления

Общая стоимость разработки составит 135385,2 рублей.ЗаключениеДанная программа разработана в соответствии с постановкой задачи дипломной работы по теме "Разработка и программная реализация защиты персональной электронно-вычислительной машины от подключения сторонних машинных носителей информации". Сделаны анализы по проектированию данной системы.При написании программы использованы методические указания по дипломному проектированию. Результаты работы представлены в виде приложения написанного в среде VisualStudio 2017 С-Шарп.Для проверки работоспособности программы и правильности обработки входных, а также выходных данных разработаны процессы записи действий каждого этапа алгоритма. Тестирование программы подтвердило, что программа правильно выполняет обработку данных и выдаёт верные результаты.Данное приложение возможно использовать в государственных и учебных учреждениях, где необходимо контролировать неавторизованные внешние накопители.Список литературыАлекс Макки Введение в .NET 4.0 и VisualStudio 2010 для профессионалов; Диалектика / Вильямс - М., 2010. - 738 c.Альфред, В. Ахо Компиляторы. Принципы, технологии и инструментарий / Альфред В. Ахо и др. - Москва: Высшая школа, 2015. - 882 c.Давыдов, В. Visual C++. Разработка Windows-приложений с помощью MFC и API-функций / В. Давыдов. - М.: БХВ-Петербург, 2014. - 576 c.Довбуш, Галина Visual C++ на примерах / Галина Довбуш , Анатолий Хомоненко. - М.: БХВ-Петербург, 2012. - 528 c.Дэвид Вандевурд, Николаи М. Джосаттис, Дуглас Грегор Шаблоны C++. Справочник разработчика, 2-е изданиеЗиборов, В. MS Visual C++ 2010 в среде .NET / В. Зиборов. - М.: Питер, 2012. - 320 c.Кетков, Юлий Практика программирования: VisualBasic, C++ Builder, Delphi. Самоучитель (+ дискета) / Юлий Кетков , Александр Кетков. - М.: БХВ-Петербург, 2012. - 464 c.Мешков, А. Visual C++ и MFC / А. Мешков, Ю. Тихомиров. - М.: БХВ-Петербург, 2013. - 546 c.Неформальное введение в C++ и TurboVision. - Москва: ИЛ, 2010. - 384 c.Панюкова, Т. А. Языки и методы программирования. Создание простых GUI-приложений с помощью Visual С++. Учебное пособие / Т.А. Панюкова, А.В. Панюков. - Москва: Мир, 2015. - 144 c.Пахомов, Б. C/C++ и MS Visual C++ 2010 для начинающих / Б. Пахомов. - М.: БХВ-Петербург, 2011. - 736 c.Пахомов, Борис C/C++ и MS Visual C++ 2012 для начинающих / Борис Пахомов. - Москва: СИНТЕГ, 2015. - 518 c.Пахомов, Борис С/С++ и MS Visual C++ 2012 для начинающих / Борис Пахомов. - М.: "БХВ-Петербург", 2013. - 502 c.ПитерГоттшлинг — Современный C++ дляпрограммистов, инженеровиученых (Discovering Modern C++: A Concise Introduction for Scientists and Engineers (C++ In-Depth Series))Полубенцева, М. C/C++. Процедурное программирование / М. Полубенцева. - М.: БХВ-Петербург, 2014. - 448 c.Понамарев, В. Программирование на C++/C# в VisualStudio .NET 2003 / В. Понамарев. - М.: БХВ-Петербург, 2015. - 917 c.Программирование .NET с использованием C++/CLI (Visual C++) [Электронный ресурс]. – Режим доступа: https://msdn.microsoft.com/ru-ru/library/68td296t.aspxРихтер, Дж. Windows для профессионалов. Создание эффективных Win32-приложений с учетом спецификации 64-разрядной версии Windows [Текст] / Дж. Рихтер. – СПб.: Русская редакция, 2001. – 752 с.Роберт, С. Сикорд Безопасное программирование на C и C++ / Роберт С. Сикорд. - Москва: РГГУ, 2014. - 496 c.Секунов, Н. Программирование на C++ в Linux / Н. Секунов. - М.: БХВ-Петербург, 2016. - 425 c.Сервер базы данных MSSQLServer 2017 [Электронный ресурс]. – Режим доступа: https://www.microsoft.com/ru-ru/sql-server/sql-server-2017-editionsСидорина, Татьяна Самоучитель MicrosoftVisualStudio C++ и MFC / Татьяна Сидорина. - М.: "БХВ-Петербург", 2014. - 848 c.ПриложенияКласс DB:#pragma once#include "ClassData.h";using namespace System;using namespace System::Data;using namespace System::Data::SqlClient;using namespace System::Windows;using namespace System::Windows::Forms;ref class DB{private:SqlConnection ^ Con;SqlConnectionStringBuilder^ Con_String;void connect(){Con_String = gcnewSqlConnectionStringBuilder();Con_String->DataSource = "ADMIN-PC\\SQLEXPRESS01";Con_String->InitialCatalog = "usb";Con_String->IntegratedSecurity = true;Con = gcnewSqlConnection(Convert::ToString(Con_String));}public:DB();public: ListBox^ select(){try{connect();ClassData^ cd = gcnewClassData();ListBox^ dt = gcnewListBox();String^ query = "SELECT * FROM dbo.device";SqlCommand^ cmd = gcnewSqlCommand(query, Con);try{Con->Open();SqlDataReader^ reader = cmd->ExecuteReader();while (reader->Read()){cd->UID = Convert::ToInt32(reader["uid"]->ToString());cd->ID = reader["id"]->ToString();cd->NAME = reader["name"]->ToString();dt->Items->Add(String::Format("{0}-{1}-{2}", cd->UID, cd->ID, cd->NAME));}returndt;}catch(Exception^ ex){MessageBox::Show("Нет подключения к серверу MSSQL");}}finally{if (Con != nullptr){Con->Close();}}}public: void insert(intUid, String^ Id, String^ Name){try{connect();String^ query = "INSERT INTO device (uid, id, name) VALUES (@uid, @id, @name)";SqlCommand^ cmd = gcnewSqlCommand(query, Con);cmd->Parameters->Add("@uid", SqlDbType::Int);cmd->Parameters["@uid"]->Value = Uid;cmd->Parameters->Add("@id", SqlDbType::VarChar);cmd->Parameters["@id"]->Value = Id;cmd->Parameters->Add("@name", SqlDbType::VarChar);cmd->Parameters["@name"]->Value = Name;try{Con->Open();Int32 rowsAffected = cmd->ExecuteNonQuery();MessageBox::Show(String::Format("Добавлено: {0}", rowsAffected));}catch(Exception^ ex){MessageBox::Show("Ошибкадобовлениявбазуданных: " + ex->Message);}}finally{if (Con != nullptr){Con->Close();}}}public: void remove(intUid){try{connect();String^ query = "DELETE FROM usb.dbo.device WHERE uid = @uid";SqlCommand^ cmd = gcnewSqlCommand(query, Con);cmd->Parameters->Add("@uid", SqlDbType::Int);cmd->Parameters["@uid"]->Value = Uid;try{Con->Open();Int32 rowsAffected = cmd->ExecuteNonQuery();MessageBox::Show(String::Format("Затронутострокприудалении: {0}", rowsAffected));}catch (Exception^ ex){MessageBox::Show("Ошибкаудаленияизбазыданных: " + ex->Message);}}finally{if (Con != nullptr){Con->Close();}}}};КлассClassData:#pragma onceusing namespace System;ref class ClassData{public:ClassData();staticintuid;static property int UID{int get(){returnuid;}void set(intUid){uid = Uid;}}static String^ ID;static property String^ Id{String^ get(){return ID;}void set(String^ Id){ID = Id;}}static String^ name;static property String^ NAME{String^ get(){return name;}void set(String^ Name){name = Name;}}};КлассUsb:#pragma once#include #include "DB.h";#include #pragma comment( lib, "user32.lib" )#pragma comment(lib, "PowrProf.lib")using namespace System;using namespace System::Windows;using namespace System::Windows::Forms;using namespace System::Management;ref class Usb{private:String ^ nw;array^ ar = gcnew array(3);DB db;String^ search = ("SELECT * FROM Win32_PnPEntity where DeviceID Like 'USB%'");ManagementObjectSearcher^ query = gcnewManagementObjectSearcher(search);int _Last_Index = 1;ListBox^ lb = gcnewListBox();ListBox^ db_devices = gcnewListBox();ListBox^ db_new = gcnewListBox();public:Usb();bool _BLOCK = false;bool _SLEEP = false;int _CUR = 0;public:voidload_db(ComboBox^ cmbox, RichTextBox^ Rtb){Rtb->Text = "";cmbox->Items->Clear();db_devices->Items->Clear();ListBox^ lb = db.select(); inti = 0;for (i = 0; i < lb->Items->Count; i++){cmbox->Items->Add(lb->Items[i]);ar = lb->Items[i]->ToString()->Split('-');db_devices->Items->Add(ar[1]);_Last_Index = Convert::ToInt32(ar[0]);Rtb->Text += i + 1 + ": " + ar[1] + "\n";}_CUR = i;}public:voidget_devices(RichTextBox^ Rtb){Rtb->Text = "";String^ ids;db_new = gcnewListBox();ManagementObjectCollection^ collection = query->Get();inti = 0;if (collection->Count != _CUR){for each(ManagementObject^ device in collection){if (!db_devices->Items->Contains(device["DeviceID"])){if(_BLOCK){ if (_SLEEP){SetSuspendState(TRUE, FALSE, FALSE);}else{if (!LockWorkStation()){MessageBox::Show("Ошибказагрузки user32.dll");}}}ids += i + 1 + " Device ID : " + device["DeviceID"] + "\n";db_new->Items->Add(device["DeviceID"]);}i++;}}Rtb->Text += ids;}public:voidadd_device(Timer^ timer, ComboBox^ cmbox, RichTextBox^ Rtb_db, RichTextBox^ Rtb_dev, String^ Name){if (db_new->Items->Count > 0){timer->Enabled = false;get_devices(Rtb_dev);for (inti = 0; i < db_new->Items->Count; i++){_Last_Index++;db.insert(_Last_Index, db_new->Items[i]->ToString(), Name);}db_new = gcnewListBox();load_db(cmbox, Rtb_db);timer->Enabled = true;}else{MessageBox::Show("Списокновыхустройствпуст");}}public:voidremove_device(Timer^ timer, ComboBox^ cmbox, RichTextBox^ Rtb_db){timer->Enabled = false;intuid = 0;ar = cmbox->Items[cmbox->SelectedIndex]->ToString()->Split('-');uid = Convert::ToInt32(ar[0]);db.remove(uid);load_db(cmbox, Rtb_db);timer->Enabled = true;}};Классглавнойформы:#pragma once#include #include "DB.h";#include "Usb.h";namespaceCppCLR_WinformsProjekt {using namespace System;using namespace System::ComponentModel;using namespace System::Collections;using namespace System::Windows::Forms;using namespace System::Data;using namespace System::Drawing;using namespace System::Windows;using namespace System::IO;using namespace System::Management;using namespace std;public ref class Form1 : public System::Windows::Forms::Form{public:Form1(void){InitializeComponent();}protected:~Form1(){if (components){delete components;}}private: System::ServiceProcess::ServiceController^ ServiceController;private: System::Windows::Forms::Timer^ Timer;private: System::Windows::Forms::RichTextBox^ ConsoleOut;private: System::ComponentModel::IContainer^ components;private: System::Windows::Forms::ComboBox^ ComboBox_Added_USB;private: System::Windows::Forms::Label^ label1;private: System::Windows::Forms::Label^ label2;private: System::Windows::Forms::RichTextBox^ AlreadyAdded;private: System::Windows::Forms::Label^ label3;private: System::Windows::Forms::Button^ Delete_Device;private: System::Windows::Forms::Button^ Button_Add_Device;private: System::Windows::Forms::Button^ Button_Start;private: System::Windows::Forms::Button^ Button_Debug;private: System::Windows::Forms::TextBox^ Name_Device;private: System::Windows::Forms::Label^ label4;private: System::Windows::Forms::Label^ lab_warning;private: System::Windows::Forms::CheckBox^ checkBox;protected:private:Usb USB;#pragma region Windows Form Designer generated codevoidInitializeComponent(void){this->components = (gcnew System::ComponentModel::Container());this->ServiceController = (gcnew System::ServiceProcess::ServiceController());this->Timer = (gcnew System::Windows::Forms::Timer(this->components));this->ConsoleOut = (gcnew System::Windows::Forms::RichTextBox());this->ComboBox_Added_USB = (gcnew System::Windows::Forms::ComboBox());this->label1 = (gcnew System::Windows::Forms::Label());this->label2 = (gcnew System::Windows::Forms::Label());this->AlreadyAdded = (gcnew System::Windows::Forms::RichTextBox());this->label3 = (gcnew System::Windows::Forms::Label());this->Delete_Device = (gcnew System::Windows::Forms::Button());this->Button_Add_Device = (gcnew System::Windows::Forms::Button());this->Button_Start = (gcnew System::Windows::Forms::Button());this->Button_Debug = (gcnew System::Windows::Forms::Button());this->Name_Device = (gcnew System::Windows::Forms::TextBox());this->label4 = (gcnew System::Windows::Forms::Label());this->lab_warning = (gcnew System::Windows::Forms::Label());this->checkBox = (gcnew System::Windows::Forms::CheckBox());this->SuspendLayout();// // Timer// this->Timer->Enabled = true;this->Timer->Interval = 2000;this->Timer->Tick += gcnew System::EventHandler(this, &Form1::Timer_Tick);// // ConsoleOut// this->ConsoleOut->Font = (gcnew System::Drawing::Font(L"Microsoft Sans Serif", 12.75F, System::Drawing::FontStyle::Regular, System::Drawing::GraphicsUnit::Point,static_cast(204)));this->ConsoleOut->Location = System::Drawing::Point(743, 124);this->ConsoleOut->Name = L"ConsoleOut";this->ConsoleOut->Size = System::Drawing::Size(490, 296);this->ConsoleOut->TabIndex = 0;this->ConsoleOut->Text = L"";// // ComboBox_Added_USB// this->ComboBox_Added_USB->Font = (gcnew System::Drawing::Font(L"Microsoft Sans Serif", 12, System::Drawing::FontStyle::Regular, System::Drawing::GraphicsUnit::Point,static_cast(204)));this->ComboBox_Added_USB->FormattingEnabled = true;this->ComboBox_Added_USB->Location = System::Drawing::Point(3, 27);this->ComboBox_Added_USB->Name = L"ComboBox_Added_USB";this->ComboBox_Added_USB->Size = System::Drawing::Size(434, 28);this->ComboBox_Added_USB->TabIndex = 2;// // label1// this->label1->AutoSize = true;this->label1->Font = (gcnew System::Drawing::Font(L"Microsoft Sans Serif", 12, System::Drawing::FontStyle::Regular, System::Drawing::GraphicsUnit::Point,static_cast(204)));this->label1->Location = System::Drawing::Point(-1, 4);this->label1->Name = L"label1";this->label1->Size = System::Drawing::Size(348, 20);this->label1->TabIndex = 3;this->label1->Text = L"Все добавленные устройства в исключение:";// // label2// this->label2->AutoSize = true;this->label2->Font = (gcnew System::Drawing::Font(L"Microsoft Sans Serif", 12, System::Drawing::FontStyle::Regular, System::Drawing::GraphicsUnit::Point,static_cast(204)));this->label2->Location = System::Drawing::Point(739, 90);this->label2->Name = L"label2";this->label2->Size = System::Drawing::Size(153, 20);this->label2->TabIndex = 4;this->label2->Text = L"Новый USB Device:";// // AlreadyAdded// this->AlreadyAdded->Font = (gcnew System::Drawing::Font(L"Microsoft Sans Serif", 11.25F, System::Drawing::FontStyle::Regular, System::Drawing::GraphicsUnit::Point,static_cast(204)));this->AlreadyAdded->Location = System::Drawing::Point(3, 125);this->AlreadyAdded->Name = L"AlreadyAdded";this->AlreadyAdded->Size = System::Drawing::Size(429, 296);this->AlreadyAdded->TabIndex = 5;this->AlreadyAdded->Text = L"";// // label3// this->label3->AutoSize = true;this->label3->Font = (gcnew System::Drawing::Font(L"Microsoft Sans Serif", 12, System::Drawing::FontStyle::Regular, System::Drawing::GraphicsUnit::Point,static_cast(204)));this->label3->Location = System::Drawing::Point(-1, 102);this->label3->Name = L"label3";this->label3->Size = System::Drawing::Size(257, 20);this->label3->TabIndex = 6;this->label3->Text = L"Списокустройстввисключении:";// // Delete_Device// this->Delete_Device->BackColor = System::Drawing::SystemColors::ButtonFace;this->Delete_Device->Font = (gcnew System::Drawing::Font(L"Microsoft Sans Serif", 12, System::Drawing::FontStyle::Regular, System::Drawing::GraphicsUnit::Point,static_cast(204)));this->Delete_Device->Location = System::Drawing::Point(452, 23);this->Delete_Device->Name = L"Delete_Device";this->Delete_Device->Size = System::Drawing::Size(178, 35);this->Delete_Device->TabIndex = 7;this->Delete_Device->Text = L"Удалитьустройство";this->Delete_Device->UseVisualStyleBackColor = false;this->Delete_Device->Click += gcnew System::EventHandler(this, &Form1::Delete_Device_Click);// // Button_Add_Device// this->Button_Add_Device->BackColor = System::Drawing::SystemColors::ButtonFace;this->Button_Add_Device->Font = (gcnew System::Drawing::Font(L"Microsoft Sans Serif", 12, System::Drawing::FontStyle::Regular, System::Drawing::GraphicsUnit::Point,static_cast(204)));this->Button_Add_Device->Location = System::Drawing::Point(743, 426);this->Button_Add_Device->Name = L"Button_Add_Device";this->Button_Add_Device->Size = System::Drawing::Size(207, 35);this->Button_Add_Device->TabIndex = 8;this->Button_Add_Device->Text = L"Добавитьвисключение";this->Button_Add_Device->UseVisualStyleBackColor = false;this->Button_Add_Device->Click += gcnew System::EventHandler(this, &Form1::Button_Add_Device_Click);// // Button_Start// this->Button_Start->Font = (gcnew System::Drawing::Font(L"Microsoft Sans Serif", 9.75F, System::Drawing::FontStyle::Regular, System::Drawing::GraphicsUnit::Point,static_cast(204)));this->Button_Start->Location = System::Drawing::Point(482, 124);this->Button_Start->Name = L"Button_Start";this->Button_Start->Size = System::Drawing::Size(183, 23);this->Button_Start->TabIndex = 9;this->Button_Start->Text = L"Проверкаusbустройств";this->Button_Start->UseVisualStyleBackColor = true;this->Button_Start->Click += gcnew System::EventHandler(this, &Form1::Button_Start_Click);// // Button_Debug// this->Button_Debug->Enabled = false;this->Button_Debug->Location = System::Drawing::Point(482, 170);this->Button_Debug->Name = L"Button_Debug";this->Button_Debug->Size = System::Drawing::Size(183, 23);this->Button_Debug->TabIndex = 10;this->Button_Debug->Text = L"Режимредактирования";this->Button_Debug->UseVisualStyleBackColor = true;this->Button_Debug->Click += gcnew System::EventHandler(this, &Form1::Button_Debug_Click);// // Name_Device// this->Name_Device->Font = (gcnew System::Drawing::Font(L"Microsoft Sans Serif", 12, System::Drawing::FontStyle::Regular, System::Drawing::GraphicsUnit::Point,static_cast(204)));this->Name_Device->Location = System::Drawing::Point(982, 453);this->Name_Device->Name = L"Name_Device";this->Name_Device->Size = System::Drawing::Size(251, 26);this->Name_Device->TabIndex = 11;this->Name_Device->Text = L"System";// // label4// this->label4->AutoSize = true;this->label4->Font = (gcnew System::Drawing::Font(L"Microsoft Sans Serif", 12, System::Drawing::FontStyle::Regular, System::Drawing::GraphicsUnit::Point,static_cast(204)));this->label4->Location = System::Drawing::Point(978, 426);this->label4->Name = L"label4";this->label4->Size = System::Drawing::Size(78, 20);this->label4->TabIndex = 12;this->label4->Text = L"Назвать:";// // lab_warning// this->lab_warning->AutoSize = true;this->lab_warning->Font = (gcnew System::Drawing::Font(L"Microsoft Sans Serif", 11.25F, System::Drawing::FontStyle::Regular, System::Drawing::GraphicsUnit::Point,static_cast(204)));this->lab_warning->ForeColor = System::Drawing::Color::Red;this->lab_warning->Location = System::Drawing::Point(743, 41);this->lab_warning->Name = L"lab_warning";this->lab_warning->Size = System::Drawing::Size(165, 18);this->lab_warning->TabIndex = 13;this->lab_warning->Text = L"Блокировкавключена";this->lab_warning->Visible = false;// // checkBox// this->checkBox->AutoSize = true;this->checkBox->Location = System::Drawing::Point(746, 6);this->checkBox->Name = L"checkBox";this->checkBox->Size = System::Drawing::Size(103, 17);this->checkBox->TabIndex = 14;this->checkBox->Text = L"Спящийрежим";this->checkBox->UseVisualStyleBackColor = true;// // Form1// this->AutoScaleDimensions = System::Drawing::SizeF(6, 13);this->AutoScaleMode = System::Windows::Forms::AutoScaleMode::Font;this->ClientSize = System::Drawing::Size(1245, 551);this->Controls->Add(this->checkBox);this->Controls->Add(this->lab_warning);this->Controls->Add(this->label4);this->Controls->Add(this->Name_Device);this->Controls->Add(this->Button_Debug);this->Controls->Add(this->Button_Start);this->Controls->Add(this->Button_Add_Device);this->Controls->Add(this->Delete_Device);this->Controls->Add(this->label3);this->Controls->Add(this->AlreadyAdded);this->Controls->Add(this->label2);this->Controls->Add(this->label1);this->Controls->Add(this->ComboBox_Added_USB);this->Controls->Add(this->ConsoleOut);this->Name = L"Form1";this->Text = L"Form1";this->Load += gcnew System::EventHandler(this, &Form1::OnLoad);this->ResumeLayout(false);this->PerformLayout();}#pragma endregionpublic: System::Void OnLoad(System::Object^ sender, System::EventArgs^ e) {USB.load_db(ComboBox_Added_USB, AlreadyAdded);}private: System::Void Timer_Tick(System::Object^ sender, System::EventArgs^ e) {USB.get_devices(ConsoleOut);} /*Нчатьблокировкуустройств*/private: System::Void Button_Start_Click(System::Object^ sender, System::EventArgs^ e) {Button_Start->Enabled = false;lab_warning->Visible = true;USB._BLOCK = true;if(checkBox->Checked){USB._SLEEP = true;}Button_Debug->Enabled = true;} /*Режимотладки*/private: System::Void Button_Debug_Click(System::Object^ sender, System::EventArgs^ e) {Button_Debug->Enabled = false;lab_warning->Visible = false;USB._BLOCK = false;Button_Start->Enabled = true;}private: System::Void Button_Add_Device_Click(System::Object^ sender, System::EventArgs^ e) {USB.add_device(Timer, ComboBox_Added_USB, AlreadyAdded, ConsoleOut, Name_Device->Text);}private: System::Void Delete_Device_Click(System::Object^ sender, System::EventArgs^ e) {USB.remove_device(Timer, ComboBox_Added_USB, AlreadyAdded);}};}


1. Алекс Макки Введение в .NET 4.0 и Visual Studio 2010 для профессионалов; Диалектика / Вильямс - М., 2010. - 738 c.
2. Альфред, В. Ахо Компиляторы. Принципы, технологии и инструментарий / Альфред В. Ахо и др. - Москва: Высшая школа, 2015. - 882 c.
3. Давыдов, В. Visual C++. Разработка Windows-приложений с помощью MFC и API-функций / В. Давыдов. - М.: БХВ-Петербург, 2014. - 576 c.
4. Довбуш, Галина Visual C++ на примерах / Галина Довбуш , Анатолий Хомоненко. - М.: БХВ-Петербург, 2012. - 528 c.
5. Дэвид Вандевурд, Николаи М. Джосаттис, Дуглас Грегор Шаблоны C++. Справочник разработчика, 2-е издание
6. Зиборов, В. MS Visual C++ 2010 в среде .NET / В. Зиборов. - М.: Питер, 2012. - 320 c.
7. Кетков, Юлий Практика программирования: Visual Basic, C++ Builder, Delphi. Самоучитель (+ дискета) / Юлий Кетков , Александр Кетков. - М.: БХВ-Петербург, 2012. - 464 c.
8. Мешков, А. Visual C++ и MFC / А. Мешков, Ю. Тихомиров. - М.: БХВ-Петербург, 2013. - 546 c.
9. Неформальное введение в C++ и Turbo Vision. - Москва: ИЛ, 2010. - 384 c.
10. Панюкова, Т. А. Языки и методы программирования. Создание простых GUI-приложений с помощью Visual С++. Учебное пособие / Т.А. Панюкова, А.В. Панюков. - Москва: Мир, 2015. - 144 c.
11. Пахомов, Б. C/C++ и MS Visual C++ 2010 для начинающих / Б. Пахомов. - М.: БХВ-Петербург, 2011. - 736 c.
12. Пахомов, Борис C/C++ и MS Visual C++ 2012 для начинающих / Борис Пахомов. - Москва: СИНТЕГ, 2015. - 518 c.
13. Пахомов, Борис С/С++ и MS Visual C++ 2012 для начинающих / Борис Пахомов. - М.: "БХВ-Петербург", 2013. - 502 c.
14. Питер Готтшлинг — Современный C++ для программистов, инженеров и ученых (Discovering Modern C++: A Concise Introduction for Scientists and Engineers (C++ In-Depth Series))
15. Полубенцева, М. C/C++. Процедурное программирование / М. Полубенцева. - М.: БХВ-Петербург, 2014. - 448 c.
16. Понамарев, В. Программирование на C++/C# в Visual Studio .NET 2003 / В. Понамарев. - М.: БХВ-Петербург, 2015. - 917 c.
17. Программирование .NET с использованием C++/CLI (Visual C++) [Электронный ресурс]. – Режим доступа: https://msdn.microsoft.com/ru-ru/library/68td296t.aspx
18. Рихтер, Дж. Windows для профессионалов. Создание эффективных Win32-приложений с учетом спецификации 64-разрядной версии Windows [Текст] / Дж. Рихтер. – СПб.: Русская редакция, 2001. – 752 с.
19. Роберт, С. Сикорд Безопасное программирование на C и C++ / Роберт С. Сикорд. - Москва: РГГУ, 2014. - 496 c.
20. Секунов, Н. Программирование на C++ в Linux / Н. Секунов. - М.: БХВ-Петербург, 2016. - 425 c.
21. Сервер базы данных MS SQL Server 2017 [Электронный ресурс]. – Режим доступа: https://www.microsoft.com/ru-ru/sql-server/sql-server-2017-editions
22. Сидорина, Татьяна Самоучитель Microsoft Visual Studio C++ и MFC / Татьяна Сидорина. - М.: "БХВ-Петербург", 2014. - 848 c.



Вопрос-ответ:

Какую цель преследует данная работа?

Целью данной работы является разработка и программная реализация защиты персональной электронно вычислительной машины от подключения сторонних машинных носителей информации.

Почему актуальна разработка защиты персональной электронно вычислительной машины?

Развитие технологий и распространение съемных машинных носителей информации создают угрозы безопасности данных. Поэтому разработка защиты персональной электронно вычислительной машины является актуальной задачей.

Какие угрозы безопасности информации могут возникнуть при использовании съемных машинных носителей?

При использовании съемных машинных носителей информации могут возникать такие угрозы, как вирусы и другие вредоносные программы, кража данных, несанкционированный доступ к информации.

Какое теоретическое решение предлагается в данной работе?

В данной работе предлагается теоретическое решение, которое включает разработку и реализацию механизма защиты персональной электронно вычислительной машины от подключения сторонних машинных носителей информации.

Какой язык программирования выбран для реализации защиты персональной электронно вычислительной машины?

Для реализации защиты персональной электронно вычислительной машины выбран конкретный язык программирования не указан.

Зачем нужна защита персональной электронной вычислительной машины от подключения сторонних машинных носителей информации?

Защита персональной электронной вычислительной машины от подключения сторонних машинных носителей информации необходима для предотвращения возможных угроз безопасности данных. Внешние носители информации могут содержать вредоносные программы или быть инфицированы вирусами, которые могут нанести ущерб компьютеру или украсть личные данные пользователя.

Как была разработана защита персональной электронной вычислительной машины от подключения сторонних машинных носителей информации?

Защита персональной электронной вычислительной машины от подключения сторонних машинных носителей информации была разработана путем программной реализации. Были использованы различные методы и технологии для обнаружения и блокировки подключения внешних носителей данных. Реализация включала создание системы автоматического определения подключения, а также механизмов блокировки и предупреждения о возможных угрозах.

Какой язык программирования был выбран для реализации защиты персональной электронной вычислительной машины?

Для реализации защиты персональной электронной вычислительной машины от подключения сторонних машинных носителей информации был выбран язык программирования (название языка). Выбор языка программирования основывался на его возможностях, поддержке необходимых функций и совместимости с операционной системой компьютера. Также важным фактором была опытность разработчиков в использовании данного языка программирования.