Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
курсова зпз_шевчук.docx
Скачиваний:
33
Добавлен:
24.12.2018
Размер:
629.15 Кб
Скачать
  1. Розробка модуля захисту програмного забезпечення від несанкціонованого копіювання

    1. Обґрунтування вибору мови програмування

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

Для розробки програми, захищеної від несанкціонованого копіювання було обрано мову програмування C#.

Простота, об'єктна орієнтованість, типова захищеність, «прибирання сміття», підтримка сумісності версій і багато іншого ось основні переваги C#. Дані можливості дозволяють швидко і легко розробляти програми.

До числа принципово важливих рішень, які реалізовані у мові програмування C #, можна віднести наступні:

  • компонентно-орієнтований підхід до програмування (який характерний і для ідеології Microsoft. NET в цілому);

  • властивості як засіб інкапсуляції даних (характерно також в цілому для ООП);

  • делегати (delegate - розвиток покажчика на функцію в мовах C і C);

  • індексатори (indexer - оператори індексу для звернення до елементів класу-контейнера);

  • перевантажені оператори (розвиток ООП);

  • оператор foreach (обробка всіх елементів класів-колекцій, аналог Visual Basic);

  • атрибути (засіб оперування метаданими в COM-моделі);

Зважаючи на високу об'єктної орієнтованості, мову С # чудово підходить для швидкого конструювання різних компонентів - від високорівневої бізнес-логіки до системних додатків, що використовують низькорівневий код [7].

    1. Розробка модуля захисту програмного забезпечення від нск шляхом прив’язки до унікальних параметрів вінчестера

Враховуючи особливості обраної мови програмування та алгоритму роботи захисту від несанкціонованого копіювання розробимо модуль захисту програмного забезпечення від несанкціонованого копіювання.

При запуску програма перевіряє чи вона вже активована на даному комп’ютері. По-перше йде звернення до ключового файлу, який має знаходитися в кореневому каталозі програми, і називається "Key".

if (File.Exists("Key"))

ActKey = File.ReadAllText("Key");

Якщо файл не існує, то це означає, що програма не активована, і переходимо до форми активації.

Програма запитує у користувача код активації.

З вінчестера зчитуютється назва, серійний номер, розмір та кількість доріжок.

ManagementObjectSearcher searcher =

new ManagementObjectSearcher("SELECT * FROM Win32_DiskDrive");

foreach (ManagementObject queryObj in searcher.Get())

{

str = queryObj["Model"].ToString(); ;

str1 = queryObj["Size"].ToString();

str2 = queryObj["SectorsPerTrack"].ToString();

str3 = queryObj["SerialNumber"].ToString();

break;

}

Із отриманих даних генерується коротка послідовність таким чином:

  • перетворює рядок символів у числа та ділить їх по модулю 10;

  • з метою скорочення коду з рядка вибираються символи, позиції яких відповідають степеням двійки (20, 21, 22, 23 ,24, 25, 26).

for (int i = 0; i <= ID.Length-1; i++)

{

Code+= (Int32)ID[i]%10;

}

for (int i = 0; i < 7; i++)

{

ActCode += Code[(int)Math.Pow(2, i)];

}

return ActCode;

Таким чином генерується семизначний код, який порівнюється з кодом активації, який було введено користувачем. Якщо код введено вірно, він записується у файл «Key».

if (textBox1.Text == ACT(GetID()))

{

File.WriteAllText("Key", textBox1.Text);

exp.ShowDialog();

this.Close();

}

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

if (ActKey == ACT(GetID()))

{ exp.ShowDialog(); this.Close(); }

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