Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Курсовая ЗПЗ ZPZ.docx
Скачиваний:
20
Добавлен:
03.01.2021
Размер:
837.48 Кб
Скачать

Блок інтерфейсу

Інтерфейс


Запис вхідних та вихідних повідомлень

Блок обробки повідомлень

Зчитування вхідних та вихідних повідомлень


Рисунок 2.1 ­— Структура програмного засобу

З рисунку видно, що всі блоки представлені в програмі перетинаються в блоці інтерфейсу.

2.3 Обґрунтування вибору засобів для реалізації програмного засобу

Для реалізації програмного засобу необхідно використати одну зі сучасних об’єктно-орієнтованих мов програмування: C++, C#, Java, Assembler, Delphi. Для створення даної програми було обрано мову програмування C#, оскільки ця мова має багато переваг, нижче наведено деякі з них[7]:

  1. повністю об'єктно-орієнтована мова, де навіть вбудовані типи представлені класами;

  2. спадкоємець C/C++, що зберігає їх кращі риси;

  3. потужна об'єктна мова з можливостями спадкування й універсалізації;

  4. створювалась паралельно з каркасом Framework .Net і повною мірою враховує всі його можливості - як FCL, так й CLR;

  5. завдяки каркасу Framework .Net програмісти C# одержують ті ж переваги роботи з віртуальною машиною, що й програмісти Java. Ефективність коду навіть підвищується, оскільки виконавче середовище CLR являє собою компілятор проміжної мови, у той час як віртуальна Java-машина є інтерпретатором байта-коду;

  6. автоматичне «прибирання сміття»;

  7. потужна бібліотека каркасів підтримує зручність побудови різних типів додатків на C#, дозволяючи легко будувати Web-служби, інші види компонентів, досить просто зберігати й одержувати інформацію з бази даних й інших сховищ даних;

  8. за допомогою фреймворку Xamarin на C# можна писати програми і додатки не тільки на ОС Windows а й на iOS, Android, MacOS і Linux;

Також необхідно обрати середовище для розробки програмного засобу. Серед таких середовищ, як Eclipse, MS Visual Studio, IntelliJ IDEA, NetBeans, в межах даної курсової роботи обрано MS Visual Studio, що володіє наступними перевагами:

  • підтримка популярних мов програмування;

  • доступність для користувача, так як дане середовище можна вільно завантажити з мережі Інтернет;

  • безкоштовність;

  • зручний та інтуїтивно-зрозумілий інтерфейс;

  • наявність вбудованого Web-серверу;

  • можливості налагодження. Запропоновані в Visual Studio інструменти налагодження є найкращим засобом для відстеження загадкових помилок і діагностування дивної поведінки [7].

Для реалізації графічного інтерфейсу необхідно обрати одну з бібліотек: NET FRAMEWORK Widows FormsGTK+, AWT, Swing, JavaFX. Обрано засоби стандартної бібліотеки Windows Forms[8,9]. Даний інтерфейс спрощує доступ до елементів інтерфейсу Microsoft Windows за рахунок створення обгортки для існуючого Win32 API в керованому коді.

Дана бібліотека має такі переваги:

  • велика кількість рішень проблем, які можуть виникати під час розробки, у мережі Інтернет;

  • велика кількість літератури;

  • класи, що реалізують API для Windows Forms, не залежать від мови розробки.

  • Windows Forms надає можливість розробки кроссплатформенного графічного призначеного для користувача інтерфейсу;

  • підтримка багатопоточності, розширені можливості проектування і прив'язки до даних;

  • підтримку технології ClickOnce для розгортання веб-додатків [8].

Отже, розробка здійснювалася у середовищі Visual Studio з використанням мови C# та бібліотеки Windows Forms.

2.4 Програмна реалізація завдання

2.4.1 Програмна реалізація приховування

Для приховування, необхідно вказати шлях до двух виконуваних файлів: перший – це файл, що користувач намагається приховати, другий – це файл, за допомогою якого користувач буде приховувати файл, далі необхідно помістити приховуваний файли до архіву, потім в блокноті прописати команду "copy /b photo.jpg + result.rar 1.jpg", та зберегти цей файл з розширенням «bat», далі необхідно запустити файл. В результаті буде створено новий файл с прихованим в ньому архівом.

Кінець

Рисунок 2.2 – Схема приховування виконуваного файлу

Для приховування створено обробник події - клік на кнопці «почати» який містить весь код призначени для приховування файлу.

private void button1_Click(object sender, EventArgs e){}

2.4.2 Програмна реалізація створення текстового файлу

Для створення файлу було використанно класс System.Io.StreamWritter який дозволяє записувати символи у певному кодуванні, а для перевірки наявності файлів з однаковим ім’ям був використаний класс File який - забезпечує статичні методи створення, копіювання, видалення, переміщення та відкриття файлу, а також сприяє створенню FileStream-об’єктів. Схема створення файлу наведена на рисунку 2.3

Початок

Рисунок 2.3 – Схема створення файлу

Для створення файлу використовується наступний код:

string folderName = @"c:\Top-Level Folder";

string pathString = System.IO.Path.Combine(folderName, "SubFolder");

string lines = textBox1.Text;

if (!System.IO.File.Exists(pathString))

{

using (System.IO.StreamWriter file = new System.IO.StreamWriter(pathString))

{

file.WriteLine(lines);

}

}

else

{

Console.WriteLine("File \"{0}\" already exists.", fileName);

return;

}

Метод System.IO.Path.Combine створює шлях с декількох строк. Змінна lines містить текст введений користувачем, далі йде перевірка на існування файлу, якщо файлу не існує в поточній директорії тоді створюється новий і в нього записується текст із змінної lines.

2.4.3 Програмна реалізація архівування файлу

Для архівування приховуваного файлу було використано бібліотеку System.Io.Compression яка містить класи, що надають основні служби стиснення і розпакування для потоків. Схема за якою відбувається архівування файлів наведена на рисунку 2.4.

Ініціалізація

змінних

Кінець

Створення архіву

Створення екземпляру

класу

Початок

Рисунок 2.3 – Схема архівування файлів

Для архівування приховуваних файлів використовується наступний код:

string zipPath = @"c:\RarPath\result.zip";

string folderName = @"c:\Top-Level Folder";

ZipFile.CreateFromDirectory(folderName, zipPath);

В метод CreateFromDirectory першим параметром передається шлях до директорії яка буде архівуватись, а другим параметром передається шлях для збереження архіву.

2.5 Розробка графічного інтерфейсу

Графічний інтерфейс користувача (ГІК, англ. GUI, Graphical user interface) — тип інтерфейсу, який дає змогу користувачам взаємодіяти з електронними пристроями через графічні зображення та візуальні вказівки, на відміну від текстових інтерфейсів, заснованих на використанні тексту, текстовому наборі команд та текстовій навігації. Виконання дій в ГІК — це безпосередня маніпуляція з графічними елементами. Окрім комп'ютерів, GUI використовується в мобільних пристроях, таких, як мобільні телефони, планшети, електронні книги, портативні медіапрогравачі тощо. Термін ГІК зазвичай не вживають стосовно інтерфейсів з низькою роздільною здатністю. Наприклад, в відеоіграх використовують інтерфейс HUD [10].

В даному додатку було створено головне вікно, в якому можна вводити текст для шифрування, в якому відображається корисна інформація для користувача, є кнопка «Почати», вікно з інформацією про автора та про програму.

{

public partial class Form1 : Form

{

public Form1()

{

InitializeComponent();

}

private void Form1_Load(object sender, EventArgs e)

{

}

private void button1_Click(object sender, EventArgs e)

}

private void textBox2_TextChanged(object sender, EventArgs e)

{

this.textBox2.Text = "Введіть текст для шифрування";

}

Де Form1 – головний клас програмного засобу. Метод button1_Click є обробником події Click, який запускає програму на виконання, метод textBox1_TextChanged відображає текстове поле в яке користувач вводить текст для шифрування. Метод textBox2_TextChanged відображає текстове поле. приймає введений користувачем текст Головне вікно програми показано на рисунку 2.5

Рисунок 2.5 – Головне вікно програми

У головному меню наявні такі елементи керування:

  1. елементи меню:

    1. About author – інформація про автора, що розробив дану програму;

    2. About program – інформація про метод приховування, реалізований в даній програмі та інсрукції по роботі з програмою;

    3. Exit – вихід із програми;

  2. кнопка:

    1. Почати – запускає программу на виконання;

  3. текстові поля:

    1. textBox1– відображає введений користувачем текст;

    2. textBox2 – відображає інформаційний текст на головному меню;

Код обробки елементів керування та усіх вікон програми наведено у додатку А.

2.6 Структура проекту

Структура проекту наведена на рисунку 2.7.

Рисунок 2.6 – Структура проекту

  •  Program – вхідна точка в программу;

  • AssemblyInfo – клас, що надає налаштування маніфесту для запуску;

  • Form – клас, який представляє діалогове вікно для створення графічного інтерфейсу;

  • LoginFrame – клас, що ініціалізує вікно авторизації;

  • System.Io– містить типи, що дозволяють здійснювати читання і запис у файли і потоки даних, а також типи для базової підтримки файлів і папок.

  • Надає доступ до локальних і віддалених процесів і дозволяє запускати і зупиняти локальні системні процеси.StartFrame – клас, що створює вікно запуску прихованої програми;

У даному розділі було описано розробку та реалізацію програми. За допомогою інтерфейсу Windows Forms, у середовищі Visual Studio, було створено файл Program.exe, який дозволить запустити дану програму на інших комп’ютерах без інстальованого средовища.

  1. Тестування розробленого додатку

Тестування програмного забезпечення - процес дослідження програмного забезпечення з метою отримання інформації про якість програмного продукту. Такий процес формальної перевірки, чи верифікації, може довести, що дефекти відсутні з точки зору використовуваного методу. (Тобто немає ніякої можливості точно встановити або гарантувати відсутність дефектів у програмному продукті з урахуванням людського фактора, присутнього на всіх етапах життєвого циклу ПЗ).

Після завершення написання програми, виникає необхідність протестувати додаток переконавшись, що він відповідає функціональним вимогам і успішно реалізує функціональність для сценаріїв використання, для яких він був розроблений і реалізований [11].

3.1 Перевірка на наявність створюваного файлу

Перевіримо чи існує файл з таким самим ім’ям як файл який створюється: У поле pathString введемо адрессу за якою буде розміщенний файл:

@"c:\Top-Level Folder"

У поле fileName введемо ім’я файла:

"file.txt"

У результаті створився та зашифрувався файл.

Зображення наступного вікна після успішного створення файлу зображено на рисунку 3.1.

Рисунок 3.1 – Успішне створення файлу

Тепер спробуємо виконати програму з минулими вхідними данними. Після спроби виконання з’являється вікно яке повідомляє про наявність файлу а директорії.

Зображення вікна повідомлення про помилку показане на рис. 3.2.

Рисунок 3.2 – Повідомлення про наявніть файлу

3.2Перевірка введених данних

Перевіримо працездатність программи при невведених даних в полі textBox.

Поле textBox залишаємо пустим і запускаємо програму на виконання. У результаті повідомлення про те що текстовий файл не може бути пустим. Зображення повідомлення на рисунку 3.3.

Рисунок 3.3 – Повідомлення про помилку через невведення текстових данних.

При введенні тексту в поле textBox, программа відпрацює корректно і файл успішно створиться. Результат збражено на рисунку 3.4.

Рисунок 3.4 – Коректне введення текствоих данних.

3.3 Результати роботим програми

Поміщення файлу 1.jpg в папку C:\RarPath. Зображено на рисунку 3.5

Рисунок 3.5 – Розташування початкового файлу.

Після виконання файлу WindowsFormsApp1.exe. в папці створюється файл 2.jpg , в якому сховане введене повідомлення. (Рисунок 3.6)

Рисунок 3.6 – Розташування файлу, в якому сховане введене повідомлення.

Порівняємо файл 1.jpg і 2.jpg .

Рисунок 3.7 – Зовнішній вигляд файлу 1.jpg

Рисунок 3.8 – Зовнішній вигляд файлу 2.jpg

Бачимо що вони однакові, користувач не помітить, що в файлі 2.jpg прихований тектовий файл .

В данному розділі було проаналізовано роботу програмного засобу, і його реакцію на нестандартні дії користувача, а саме:

  • створення файлів з однаковим ім’ям;

  • перевірка введених даних від користувача.

Результати показали, що усі функції працюють правильно, а програмний додаток відповідає поставленим вимогам

Висновки

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

Проаналізовано та досліджено стеганографічні методи. Проведено порівняльну характеристику аналогів та визначено ключові особливості існуючих реалізацій. Програмний додаток має одновіконний інтерфейс, управління програмним додатком здійснено за допомогою візуальних елементів керування. Реалізована можливість задання параметрів моніторингу, використовуючи діалогові вікна.

Застосунок реалізовано мовою С# в середовищі Microsoft Visual Studio. Проведено порівняний аналіз з іншими прикладними мовами програмування та середовищами розробки. Було відлагоджено та протестовано інтерфейс користувача при якому не виявилось помилок в роботі програмного забезпечення, що забезпечує стабільну роботу програмного додатку.

Розроблений програмний додаток може бути впроваджений у широке використання.

Перелік використаних джерел

1. Конахович Г.Ф., Пузыренко А.Ю. Компьютерная стеганография. Теория и практика. К.: “МК-Пресс”, 2006. — 288 с.

2. Грибунин В.Г.,Оков И.Н.,Туринцев И.В. Цифровая стеганография.М.:Солон-Пресс, 2002.

3. Хорошко В.О., Азаров О.Д., Шелест М.Є., Яремчук Ю.Є. Основи комп’ютерної стеганографії : Навч. посіб. для студентів і аспірантів. — Вінниця: ВДТУ, 2003.

4. Генне О.В. Основные положения стеганографии.// Защита информации. №3, 2000.

5. N.F. Johnson, S. Jajodia, Steganalysis: The Investigation of Hidden Information, IEEE Information Technology Conference, Syracuse, New York, USA, Sept. 1st-3rd. 1998.

6. Bierbrauer J., Fridrich J. Constructing Good Covering Codes for Applications in Steganography. — LNCS. Vol.4920. — 2008. — p. 2—22.

7. Кристиан Нейгел и др. C# 5.0 и платформа .NET 4.5 для профессионалов = Professional C# 5.0 and .NET 4.5. — М.: «Диалектика», 2013. — 1440 с

8. Безкоштовні середовища програмування С ++, C # [електронний ресурс] // Режим доступу: http://www.interestprograms.ru/articles/ide/besplatnye-sredyprogramirovanya-c-csharp – Назва з екрану.

9. Сокети [електронний ресурс] // Режим доступу: http://professorweb.ru/my/ csharp/web/level3/3_1.php – Назва з екрану.

10. Графічний інтерфейс користувача [електронний ресурс] // Режим доступу: https://ru.wikipedia.org/wiki/ Графический_интерфейс_пользователя – Назва з екрану

11. Джек Фолк. Тестування програмного забезпечення / Дж. Фолк – М.: ДиаСофт, 2001. – 538 c.

Додатки

ДОДАТОК А

Код програми

using System;

using System.IO;

using System.Threading.Tasks;

using System.Diagnostics;

using System.Collections.Generic;

using System.ComponentModel;

using System.Data;

using System.Drawing;

using System.Linq;

using System.Text;

using System.Windows.Forms;

using System.IO.Compression;

namespace WindowsFormsApp1

{

public partial class Form1 : Form

{

public Form1()

{

InitializeComponent();

}

private void Form1_Load(object sender, EventArgs e)

{

}

private void button1_Click(object sender, EventArgs e)

{

string folderName = @"c:\Top-Level Folder";

string pathString = System.IO.Path.Combine(folderName, "SubFolder");

string zipPath = @"c:\RarPath\result.zip";

string pathBat = System.IO.Path.Combine(@"c:\RarPath");

string lines = textBox1.Text;

string batLine = "copy /b photo.jpg + result.rar 1.jpg";

System.IO.Directory.CreateDirectory(pathString);

string fileName = "file.txt";

pathBat = System.IO.Path.Combine(pathBat, "run.bat");

pathString = System.IO.Path.Combine(pathString, fileName);

Console.WriteLine("Path to my file: {0}\n", pathString);

if (!System.IO.File.Exists(pathString))

{

using (System.IO.StreamWriter file = new System.IO.StreamWriter(pathString))

{

MessageBox.Show("Файл успішно створено");

file.WriteLine(lines);

}

}

else

{

MessageBox.Show("Такий файл вже існує");

return;

}

if(lines == "")

{

MessageBox.Show("Текстовий файл не може бути пустим");

return;

}

try

{

byte[] readBuffer = System.IO.File.ReadAllBytes(pathString);

foreach (byte b in readBuffer)

{

Console.Write(b + " ");

}

Console.WriteLine();

}

catch (System.IO.IOException error)

{

Console.WriteLine(error.Message);

}

using (System.IO.StreamWriter resultFile = new System.IO.StreamWriter(pathBat))

{

resultFile.WriteLine(batLine);

}

ZipFile.CreateFromDirectory(folderName, zipPath);

ProcessStartInfo infoStartProcess = new ProcessStartInfo();

infoStartProcess.WorkingDirectory = @"c:\RarPath";

infoStartProcess.FileName = @"c:\RarPath\run.bat";

Process.Start(infoStartProcess);

}

private void label1_Click(object sender, EventArgs e)

{

}

private void textBox1_TextChanged(object sender, EventArgs e)

{

}

private void textBox2_TextChanged(object sender, EventArgs e)

{

this.textBox2.Text = "Введіть текст для шифрування";

}

}

}

using System;

using System.Collections.Generic;

using System.Linq;

using System.Threading.Tasks;

using System.Windows.Forms;

///Program.cs

namespace WindowsFormsApp1

{

static class Program

{

/// <summary>

/// Главная точка входа для приложения.

/// </summary>

[STAThread]

static void Main()

{

Application.EnableVisualStyles();

Application.SetCompatibleTextRenderingDefault(false);

Application.Run(new Form1());

}

}

}

ДОДАТОК Б

Інструкція по роботі з програмою

Програмний засіб призначений для забезпечення приховування повіомлень у графічних файлах.

Програму було розроблено та протестовано з таким складом апаратних засобів:

  • процесор Intel(R) Core(TM) i5-4300M CPU @ 2.60GHz;

  • обсяг оперативної пам’яті – 8 ГБ;

  • тип ОС – Windows 7 x64;

  • відеоадаптер – NVIDIA GeForce GT 730M;

  • пристрої вводу – клавіатура, миша;

  • пристрої виводу – екран 15.6" FHD (1920x1080);

  • файлова система – NTFS.

Хід роботи:

В папку C:\RarPath помістити .jpg файл з іменем «photo».

Запускаємо файл WindowsFormsApp1.exe.

Після чого в полі для введення тексту написати повідомлення, яке бажаєте приховати. Натискаємо кнопку почати. Результатом буде файл 1.jpg який знаходитиметься за адресою C:\RarPath.

ДОДАТОК В

Графічні матеріали

Р исунок 1.1 – Класифікація методів комп’ютерної стеганографії

Рисунок 2.1 ­— Структура програмного засобу

Кінець

Рисунок 2.2 – Схема приховування виконуваного файлу

Початок

Рисунок 2.3 – Схема створення файлу

Рисунок 2.4 – Схема архівування файлів

Рисунок 2.5 – Головне вікно програми

Рисунок 2.6 – Структура проекту

Рисунок 3.1 – Успішне створення файлу

Рисунок 3.2 – Повідомлення про наявніть файлу

Рисунок 3.3 – Повідомлення про помилку через невведення текстових данних.

Рисунок 3.4 – Коректне введення текствоих данних.

Рисунок 3.5 – Розташування початкового файлу.

Рисунок 3.6 – Розташування файлу, в якому сховане введене повідомлення.

Рисунок 3.7 – Зовнішній вигляд файлу 1.jpg

Рисунок 3.8 – Зовнішній вигляд файлу 2.jpg