- •Анотація
- •Огляд систем захисту програмного забезпечення
- •Класифікація систем захисту програмного забезпечення
- •Системи захисту від несанкціонованого копіювання
- •Методи захисту програмного забезпечення шляхом прив’язки до комп’ютера
- •Розробка алгоритму захисту програмного забезпечення від несанкціонованого копіювання
- •Методи прив’язки до параметрів вінчестера
- •Захист на основі генерації коду активації програмного забезпечення
- •Розробка алгоритму захисту програмного забезпечення від несанкціонованого копіювання
- •Розробка модуля захисту програмного забезпечення від несанкціонованого копіювання
- •Обґрунтування вибору мови програмування
- •Розробка модуля захисту програмного забезпечення від нск шляхом прив’язки до унікальних параметрів вінчестера
- •Робота програми захисту від несанкціонованого копіювання
- •Тестування роботи програми
- •Висновки
- •Перелік посилань
- •Додатки Додаток а Модуль захисту програмного забезпечення
- •Додаток б Генерація коду активації програмного забезпечення
Додаток б Генерація коду активації програмного забезпечення
Program.cs
using System;
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.Management;
using System.IO;
namespace WindowsFormsApplication1
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
label2.Text = GetID();
label3.Text = ACT(GetID());
//File.Create("D:\\1.txt");
File.WriteAllText("D:\\1.txt", GetID());
}
private static string GetID()
{
string str = "", str1 = "", str2 = "", str3 = "";
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;
}
return str+str1+str2+str3;
}
public static string ACT(string ID)
{
string ActCode="";
string Code="";
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;
}
}
}
Form1.cs
using System;
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.Management;
using System.IO;
namespace WindowsFormsApplication1
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
label2.Text = GetID();
label3.Text = ACT(GetID());
//File.Create("D:\\1.txt");
File.WriteAllText("D:\\1.txt", GetID());
}
private static string GetID()
{
string str = "", str1 = "", str2 = "", str3 = "";
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;
}
return str+str1+str2+str3;
}
private void label2_Click(object sender, EventArgs e)
{
}
public static string ACT(string ID)
{
string ActCode="";
string Code="";
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;
}
}
}