
- •1 Аналіз систем захисту програмного забезпечення
- •1.1 Огляд існуючих систем захисту пз
- •1.2 Методи захисту програмного забезпечення від несанкціонованого доступу
- •1.3 Методи захисту комп’ютера від несанкціонованого доступу
- •2 Теоретичні підходи до побудови.
- •2.1 Метод створення програми перевірки доступу за методом Тюрінга
- •2.2 Розробка структури програми
- •2.3 Вибір мови програмування
- •3 Практична реалізація
- •3.1 Розробка програми
- •3.2 Інструкція по роботі з програмою
- •3.3 Тестування програми
- •Список використаних джерел:
- •Додатки
3.2 Інструкція по роботі з програмою
Для того, щоб запустити дану програму на персональному комп’ютері потрібно скомпілювати проект. Після компіляції програма запуститься, і одразу запропонує користувачеві ввести символи для перевірки. Якщо символи будуть введені вірно, програма завершить роботу, і надасть доступ до основної програми.
3.3 Тестування програми
Після запуску програми, з’явилось вікно програми - капчі. Користувачеві запропоновано ввести з клавіатури символи для перевірки на автентичність.
На Рисунку 1.2 відкрите вікно програми.
Рисунок 1.2 – Початкове вікно програми
Користувач починає вводити символи з клавіатури, програма по натисканню кнопки ОК, перевіряє введені символи, порівнює з еталоном, і якщо всі символі вірні, дозволяє доступ. На рисунку 1.3 показано підтвердження вводу.
Рисунок 1.3 – Підтвердження вводу символів
Якщо, символи введені невірно, програма не допустить користувача до програми, і з’явиться повідомлення“Помилка Вводу” (рис.1.4).
Рисунок 1.4 – Помилка вводу символів
Список використаних джерел:
Захист програмного забезпечення. Частина 1. – Дудатьєв А.В., Каплун В.А., Семеренко В.П.
http://ru.wikipedia.org/wiki/C_Sharp http://habrahabr.ru/post/146475/
http://lib.ru/CTOTOR/kernigan.txt
http://forum.vingrad.ru/forum/topic-360249.html
Додатки
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;
namespace Capcha
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e)
{
pictureBox1.Image = this.CreateImage(pictureBox1.Width, pictureBox1.Height);
}
private string text = String.Empty;
private Bitmap CreateImage(int Width, int Height)
{
Random rnd = new Random();
Bitmap result = new Bitmap(Width, Height);
int Xpos = rnd.Next(0, Width - 50);
int Ypos = rnd.Next(15, Height - 15);
Brush[] colors = { Brushes.Black,
Brushes.Red,
Brushes.RoyalBlue,
Brushes.Green };
Graphics g = Graphics.FromImage((Image)result);
g.Clear(Color.Black);
text = String.Empty;
string ALF = "1234567890QWERTYUIOPASDFGHJKLZXCVBNM";
for (int i = 0; i < 5; ++i)
text += ALF[rnd.Next(ALF.Length)];
g.DrawString(text,
new Font("Arial", 15),
colors[rnd.Next(colors.Length)],
new PointF(Xpos, Ypos));
g.DrawLine(Pens.Black,
new Point(0, 0),
new Point(Width - 1, Height - 1));
g.DrawLine(Pens.Black,
new Point(0, Height - 1),
new Point(Width - 1, 0));
for (int i = 0; i < Width; ++i)
for (int j = 0; j < Height; ++j)
if (rnd.Next() % 20 == 0)
result.SetPixel(i, j, Color.White);
return result;
}
private void button1_Click(object sender, EventArgs e)
{
pictureBox1.Image = this.CreateImage(pictureBox1.Width, pictureBox1.Height);
}
private void button2_Click(object sender, EventArgs e)
{
if (textBox1.Text == this.text)
{
MessageBox.Show("Добро Пожаловать!");
Program.flag = true;
this.Close();
}
else
{
MessageBox.Show("Ошибка Ввода!");
}
}
}
}