Частина тексту файла (без зображень, графіків і формул):
МІНІСТЕРСТВО ОСВІТИ І НАУКИ УКРАЇНИ
НАЦІОНАЛЬНИЙ УНІВЕРСИТЕТ “ЛЬВІВСЬКА ПОЛІТЕХНІКА”
ІКТА
ЗІ
З В І Т
до лабораторної роботи №4
з дисципліни: «Захист програмного забезпечення»
на тему: «Дослідження методів захисту програмного забезпечення та їх реалізація»
Львів 2017
Мета роботи: дослідити основні методи захисту програмного забезпечення та навчитися їх реалізовувати.
Теоретичні відомості
Для захисту ПО використовується ряд методів:
Алгоритми заплутування – використовуються хаотичні переходи в різні частини коду, упровадження помилкових процедур – «пусток», не суміжних циклів, перекручування кількості реальних параметрів процедур ПО, розкид ділянок коду по різних областях ОЗУ і т.п.
Алгоритми мутації – створюються таблиці відповідності операндів – синонімів і заміна їх один на інший при кожному запуску програми за визначеною схемою або випадковим чином, випадкові зміни структури програми.
Алгоритми компресії даних – програма архівується, а потім розпаковуються в мірі виконання програми.
Алгоритми шифрування даних – програма шифрується, а потім розшифровуються в мірі виконання програми.
Обчислення складних математичних функцій у процесі роботи механізму захисту – елементи логіки захисту залежать від результату обчислення значення якої не будь математичної функції.
Методи ускладнення зворотної розробки – використовуються різні прийоми, спрямовані для запобігання зворотної розробки в пакетному режимі.
Методи ускладнення налагодження – використовуються різні прийоми, спрямовані на ускладнення налагодження програми.
Емуляція процесорів і операційних систем – створюється віртуальний процес - процес і/або операційна система (не обов'язково існуючі) і програма перекладач із системи команд IBM у систему команд створеного процесора або ОС, після такого перекладу ПО може виконуватися тільки за допомогою емулятора, що різко утрудняє дослідження алгоритму ПО.
Нестандартні методи роботи з апаратним забезпеченням – модулі системи захисти звертаються до апаратури ЕОМ, минаючи процедури ОС, і використовують маловідомі або не документовані її можливості.
У свою чергу, зловмисники так само застосовують ряд методів і засобів для порушення систем захисту. Ситуація протистояння розроблювачів і зловмисників постійно змінюється за рахунок комбінування уже відомих методів захисту і нападу, а так само за рахунок створення і використання нових методів.
За принципом функціонування СЗ можна підрозділити на наступні:
Пакувальники / шифратори
СЗ від несанкціонованого копіювання
СЗ від несанкціонованого доступу (НСД)
Переваги і недоліки основних систем захисту
Розглянемо переваги і недоліки основних систем захисту ПО виходячи з принципів їхнього функціонування.
Пакувальники, шифратори
Системи захисту від несанкціонованого копіювання
Системи захисту від несанкціонованого доступу
Парольні захисти
Системи «прив'язки» ПО
Програмно-апаратні засоби захисту ПО з використанням електронних ключів
Засоби захисту ПО з «ключовими дисками»
Лістинг роботи коду програми
Код програми SecSoft.cs:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace SecSoft
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
textBox1.PasswordChar = '*';
textBox2.Text = monthCalendar1.SelectionStart.ToString();
}
private void button1_Click_1(object sender, EventArgs e)
{
if (textBox1.Text == "2017")
{
groupBox1.Visible = false;
label2.Visible = true;
textBox2.Visible = true;
button2.Visible = true;
monthCalendar1.Visible = true;
}
else
MessageBox.Show("Вірний ключ!");
textBox1.Clear();
}
private void button2_Click(object sender, EventArgs e)
{
this.Close();
}
private void monthCalendar1_DateChanged_1(object sender, DateRangeEventArgs e)
{
textBox2.Text = monthCalendar1.SelectionStart.ToString();
}
}
}
Висновок
під час виконання лабораторної роботи було творено календар, який було захищено паролем – ключем. Програма виконана з використанням мови програмування C#.
Ви не можете залишити коментар. Для цього, будь ласка, увійдіть
або зареєструйтесь.
Ділись своїми роботами та отримуй миттєві бонуси!
Маєш корисні навчальні матеріали, які припадають пилом на твоєму комп'ютері? Розрахункові, лабораторні, практичні чи контрольні роботи — завантажуй їх прямо зараз і одразу отримуй бали на свій рахунок! Заархівуй всі файли в один .zip (до 100 МБ) або завантажуй кожен файл окремо. Внесок у спільноту – це легкий спосіб допомогти іншим та отримати додаткові можливості на сайті. Твої старі роботи можуть приносити тобі нові нагороди!