Программирование средства внедрения и анализа водяных знаков в исходные тексты программ

Автор: Пользователь скрыл имя, 19 Октября 2011 в 03:02, курсовая работа

Описание работы

Целью данной работы является создание эффективного программного обеспечения для внедрения в исходные тексты программ информации об авторских правах, что позволит исключить несанкционированное их использование.

Содержание

Введение 4
1 Описание методов и средств решения задачи 6
1.1 Постановка задачи на курсовое проектирование 6
1.2 Общие аспекты проблемы авторского права 6
1.3 Современные методы защиты программного обеспечения 7
2 Методы внедрения водяных знаков 19
2.1 Исследование статистических свойств исполняемого кода 19
2.2 Предлагаемые методы внедрения водяных знаков 21
2.3 Оценка эффективности подстановок 24
3 Описание разработанного программного обеспечения 26
3.1 Общая структура 26
3.2 Проектирование базы данных 26
3.3 Описание основных компонентов 27
3.4 Описание алгоритма программы 30
4 Описание результатов работы 32
4.1 Описание главной формы программы 32
4.2 Описание результатов работы программы и выводы по ним 33
Заключение 35
Список использованных источников 36
Приложение А. Листинг программы 37

Работа содержит 1 файл

Введение.docx

— 1.17 Мб (Скачать)

                com.ExecuteNonQuery();

                dataGridView2.RowCount++;

                dataGridView2[0, i].Value = Reader[1].ToString();

                dataGridView2[1, i].Value = count.ToString();

                y100_MKM[i] = count;

                i++;

} 

            mycon.Close(); 

            CreateChart2(zg1); 

        }

        private void расчетToolStripMenuItem_Click(object sender, EventArgs e)

        {

            OleDbConnection mycon = new OleDbConnection(@"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=DB.mdb");

            mycon.Open();

            OleDbCommand mycom = new OleDbCommand(); 

            mycom = new OleDbCommand("Delete * From Test1_count_end", mycon);

            mycom.ExecuteNonQuery(); 

            mycom = new OleDbCommand("Select * From Commands", mycon); 

            OleDbDataReader Reader = mycom.ExecuteReader(); 

            OleDbCommand com = new OleDbCommand(); 

            string tmpcom, tmpstr; 

            StreamReader SReader;

            int count;

            bool comm = false;

            int i = 0, j = 0; 

            while (Reader.Read())

            {

                tmpcom = Reader[1].ToString();

                SReader = new StreamReader(openfilename);

                count = 0;

                j = 0;

                while (j < richTextBox2.Lines.Length)                   

                {

                    tmpstr = richTextBox2.Lines[j];

                    if (tmpstr.IndexOf("//") >= 0) tmpstr = tmpstr.Remove(tmpstr.IndexOf("//"), tmpstr.Length - tmpstr.IndexOf("//"));

                    if (tmpstr.IndexOf("/*") >= 0)

                    {

                        if (tmpstr.IndexOf("*/") >= 0)

                        {

                            comm = false;

                            tmpstr = tmpstr.Remove(tmpstr.IndexOf("/*"), tmpstr.IndexOf("*/") - tmpstr.IndexOf("/*"));

                        }

                        else comm = true;

                    } 

                    if (comm)

                        if (tmpstr.IndexOf("*/") >= 0)

                        {

                            comm = false;

                            tmpstr = tmpstr.Remove(0, tmpstr.IndexOf("*/") + 1);

                        }

                    if (tmpstr.IndexOf(tmpcom) >= 0) count++;

                    j++;

                } 

                com = new OleDbCommand("Insert Into Test1_count_end Values(" + Reader[0].ToString() + "," + count.ToString() + ");", mycon);

                com.ExecuteNonQuery();

                dataGridView2.RowCount++;

                dataGridView2[0, i].Value = Reader[1].ToString();

                dataGridView2[1, i].Value = count.ToString();

                y100_MKM[i] = count;

                i++;

} 

            mycon.Close(); 

            CreateChart2(zg1); 

        } 

        private void расчетToolStripMenuItem_Click(object sender, EventArgs e)

        {

            OleDbConnection mycon = new OleDbConnection(@"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=DB.mdb");

            mycon.Open();

            OleDbCommand mycom = new OleDbCommand(); 

            mycom = new OleDbCommand("Delete * From Test1_count_end", mycon);

            mycom.ExecuteNonQuery(); 

            mycom = new OleDbCommand("Select * From Commands", mycon); 

            OleDbDataReader Reader = mycom.ExecuteReader(); 

            OleDbCommand com = new OleDbCommand(); 

            string tmpcom, tmpstr; 

            StreamReader SReader;

            int count;

            bool comm = false;

            int i = 0, j = 0; 

            while (Reader.Read())

            {

                tmpcom = Reader[1].ToString();

                SReader = new StreamReader(openfilename);

                count = 0;

                j = 0;

                while (j < richTextBox2.Lines.Length)                   

                {

                    tmpstr = richTextBox2.Lines[j];

                    if (tmpstr.IndexOf("//") >= 0) tmpstr = tmpstr.Remove(tmpstr.IndexOf("//"), tmpstr.Length - tmpstr.IndexOf("//"));

                    if (tmpstr.IndexOf("/*") >= 0)

                    {

                        if (tmpstr.IndexOf("*/") >= 0)

                        {

                            comm = false;

                            tmpstr = tmpstr.Remove(tmpstr.IndexOf("/*"), tmpstr.IndexOf("*/") - tmpstr.IndexOf("/*"));

                        }

                        else comm = true;

                    } 

                    if (comm)

                        if (tmpstr.IndexOf("*/") >= 0)

                        {

                            comm = false;

                            tmpstr = tmpstr.Remove(0, tmpstr.IndexOf("*/") + 1);

                        }

                    if (tmpstr.IndexOf(tmpcom) >= 0) count++;

                    j++;

                } 

                com = new OleDbCommand("Insert Into Test1_count_end Values(" + Reader[0].ToString() + "," + count.ToString() + ");", mycon);

                com.ExecuteNonQuery();

                dataGridView2.RowCount++;

                dataGridView2[0, i].Value = Reader[1].ToString();

                dataGridView2[1, i].Value = count.ToString();

                y100_MKM[i] = count;

                i++;

} 

            mycon.Close(); 

            CreateChart2(zg1); 

        } 

        private void расчетToolStripMenuItem_Click(object sender, EventArgs e)

        {

            OleDbConnection mycon = new OleDbConnection(@"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=DB.mdb");

            mycon.Open();

            OleDbCommand mycom = new OleDbCommand(); 

            mycom = new OleDbCommand("Delete * From Test1_count_end", mycon);

            mycom.ExecuteNonQuery(); 

            mycom = new OleDbCommand("Select * From Commands", mycon); 

            OleDbDataReader Reader = mycom.ExecuteReader(); 

            OleDbCommand com = new OleDbCommand(); 

            string tmpcom, tmpstr; 

            StreamReader SReader;

            int count;

            bool comm = false;

            int i = 0, j = 0; 

            while (Reader.Read())

            {

                tmpcom = Reader[1].ToString();

                SReader = new StreamReader(openfilename);

                count = 0;

                j = 0;

                while (j < richTextBox2.Lines.Length)                   

                {

                    tmpstr = richTextBox2.Lines[j];

                    if (tmpstr.IndexOf("//") >= 0) tmpstr = tmpstr.Remove(tmpstr.IndexOf("//"), tmpstr.Length - tmpstr.IndexOf("//"));

                    if (tmpstr.IndexOf("/*") >= 0)

                    {

                        if (tmpstr.IndexOf("*/") >= 0)

                        {

                            comm = false;

                            tmpstr = tmpstr.Remove(tmpstr.IndexOf("/*"), tmpstr.IndexOf("*/") - tmpstr.IndexOf("/*"));

                        }

                        else comm = true;

                    } 

                    if (comm)

                        if (tmpstr.IndexOf("*/") >= 0)

                        {

                            comm = false;

                            tmpstr = tmpstr.Remove(0, tmpstr.IndexOf("*/") + 1);

                        }

                    if (tmpstr.IndexOf(tmpcom) >= 0) count++;

                    j++;

                } 

                com = new OleDbCommand("Insert Into Test1_count_end Values(" + Reader[0].ToString() + "," + count.ToString() + ");", mycon);

                com.ExecuteNonQuery();

                dataGridView2.RowCount++;

                dataGridView2[0, i].Value = Reader[1].ToString();

                dataGridView2[1, i].Value = count.ToString();

                y100_MKM[i] = count;

                i++;

} 

            mycon.Close(); 

            CreateChart2(zg1); 

        } 

        private void расчетToolStripMenuItem_Click(object sender, EventArgs e)

        {

            OleDbConnection mycon = new OleDbConnection(@"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=DB.mdb");

            mycon.Open();

            OleDbCommand mycom = new OleDbCommand(); 

            mycom = new OleDbCommand("Delete * From Test1_count_end", mycon);

            mycom.ExecuteNonQuery(); 

            mycom = new OleDbCommand("Select * From Commands", mycon); 

            OleDbDataReader Reader = mycom.ExecuteReader(); 

            OleDbCommand com = new OleDbCommand(); 

            string tmpcom, tmpstr; 

            StreamReader SReader;

            int count;

            bool comm = false;

            int i = 0, j = 0; 

            while (Reader.Read())

            {

                tmpcom = Reader[1].ToString();

                SReader = new StreamReader(openfilename);

                count = 0;

                j = 0;

                while (j < richTextBox2.Lines.Length)                   

                {

                    tmpstr = richTextBox2.Lines[j];

                    if (tmpstr.IndexOf("//") >= 0) tmpstr = tmpstr.Remove(tmpstr.IndexOf("//"), tmpstr.Length - tmpstr.IndexOf("//"));

                    if (tmpstr.IndexOf("/*") >= 0)

                    {

                        if (tmpstr.IndexOf("*/") >= 0)

Информация о работе Программирование средства внедрения и анализа водяных знаков в исходные тексты программ