Тип работы:
Предмет:
Язык работы:


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

Работа №161995

Тип работы

Магистерская диссертация

Предмет

программирование

Объем работы77
Год сдачи2020
Стоимость4740 руб.
ПУБЛИКУЕТСЯ ВПЕРВЫЕ
Просмотрено
30
Не подходит работа?

Узнай цену на написание


Введение 4
1 Анализ предметной области 7
1.1 Обзор основных научных исследований по теме обфускации программного кода 7
1.2 Обзор существующих решений 9
1.2.2 Dotfuscator 11
1.2.3 StarForce C++ Obfuscator 12
Выводы 13
2 Проектирование алгоритма обфускации программного кода 15
2.1 Обзор методик обфускации программного кода 15
2.1.1 Понятие и уровни процесса обфускации 15
2.1.2 Алгоритмы обфускации 16
2.1.2.1 Алгоритм Колберга 16
2.1.2.2 Алгоритм Chenxi Wang's 17
2.1.3 Виды обфускации 17
2.1.4 Лексическая обфускация 17
2.1.5 Обфускация структур данных 18
2.1.6 Обфускация потока управления 19
2.1.7 Превентивная обфускация 20
2.2 Разработка алгоритма обфускации 23
2.2.1 Обзор методов проектирования алгоритмов 23
2.2.2 Проектирование алгоритма обфускации 25
Выводы 36
3 Анализ разработанного алгоритма 37
3.1 Разработка тестового приложения 37
3.2 Тестирование 44
3.3 Экспериментальный анализ 48
Выводы 54
Заключение 55
Список использованных источников 56
Приложение А ГЛОССАРИЙ 61
Приложение Б ЛИСТИНГ 63
Приложение В ТЕСТИРОВАНИЕ 71

Актуальность темы исследования. В настоящее время актуальным является вопрос защиты от нелегальных использования и модификации программ, разработанных на интерпретируемых языках (типа Perl), когда программа представляется в виде исходного текста. При таком представлении программы, она является уязвимой, так как любой, кто получил доступ к программе, может легко узнать все алгоритмы работы в корыстных целях.
Очевидным решением является шифрование текста программы.
«Шифрование - обратимое преобразование информации в целях сокрытия от неавторизованных лиц, с предоставлением, в это же время, авторизованным пользователям доступа к ней» [1].
Дешифрование - процесс, обратный к шифрованию.
Однако шифрование в России является объектом государственного регулирования. К тому же после шифрования программа перестает быть рабочей и необходимо дешифрование, т.е. для использования исходного приложения нужны две программы:
- шифратор - программа, осуществляющая шифрование;
- дешифратор - программа, осуществляющая дешифрование.
Более приемлемым вариантом является применение обфускации - запутывание кода, при котором происходит модификация исходного кода, сохраняющая функциональность, но такое преобразование затрудняет анализ и модификацию [2]. Основной проблемой при обфускации является разработка такого метода трансформации исходного кода, при котором экономическая целесообразность разработки собственного аналога программного продукта будет выше, чем анализ существующего.
Для интерпретируемых языков это особенно важно, так как скрипт, который содержит легкочитаемый код, может стать объектом несанкционированной модификации. Именно поэтому необходимо сделать так, чтобы для возврата кода к исходному виду до обфускации затрачивалось больше времени, чем для разработки аналога.
Актуальность проблемы безопасности для интерпретируемых языков скриптового типа подчеркивается следующими причинами:
- представление программных продуктов в виде открытых исходных текстов;
- популярность использования, в особенности в web-разработке.
Исходя из вышеизложенного, возникает необходимость исследования и разработки метода для обфускации программного кода, который бы повысил безопасность программных продуктов, представленных в виде открытых исходных текстов.
Объектом исследования являются методы повышения безопасности программных продуктов, представленных в виде открытых исходных текстов.
Предметом исследования являются алгоритмы обфускации программного кода.
Целью данной работы является разработка метода обфускации программного кода, затрудняющего анализ исходного кода.
Задачи исследования. Для достижения указанной цели необходимо решить следующие задачи:
- провести анализ исследований по теме обфускации программного кода;
- провести исследование и анализ различных методик обфускации программных продуктов;
- разработать алгоритм обфускации программного кода,
затрудняющий его анализ для человека;
- провести экспериментальное исследование эффективности разработанного алгоритма.
Методы исследования. В соответствии с поставленной целью и задачами в работе использован комплексный метод исследования, включающий методы моделирования, методы системного анализа, методы проведения эксперимента, а также сравнительно-сопоставительный метод....

Возникли сложности?

Нужна помощь преподавателя?

Помощь в написании работ!


В ходе магистерской диссертации были решены следующие задачи:
- проведено исследование и анализ различных методик обфускации программных продуктов;
- разработан алгоритм обфускации программного кода, затрудняющий его анализ для человека;
- проведено экспериментальное исследование эффективности разработанного алгоритма.
В данной работе проведен анализ методов и средств обфускации кода. Определена необходимость разработки алгоритма обфускации.
В работе рассмотрены существующие методы обфускации, на основании которых разработан комплексный алгоритм, позволяющий осуществить запутывание исходного кода с целью затруднения анализа.
По итогам разработки алгоритма проведен эксперимент. По результатам экспериментальных исследований можно сделать вывод, что разработанный алгоритм работает корректно и эффективно.


1. Шифрование // Википедия - свободная энциклопедия [Электронный ресурс]. URL: https ://ru. wikipedia.org/wiki/%D0%A8%D0%B8%D 1 %84%D 1 %80%D0%BE%D 0%B2%D0%B0%D0%BD%D0%B8%D0%B5 (дата обращения: 10.12.2018)
2. Обфускация (программное обеспечение) // Википедия - свободная энциклопедия [Электронный ресурс]. URL: https ://ru. wikipedia. org/wiki/%D0%9E%D0%B1%D1%84%D1%83%D1%81%D 0%BA%D0%B0%D1 %86%D0%B8%D1 %8F_(%D0%BF%D1 %80%D0%BE%D 0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%BD%D0%BE%D0%B5_% D0%BE%D0%B 1 %D0%B5%D1 %81 %D0%BF%D0%B5%D1 %87%D0%B5%D 0%BD%D0%B8%D0%B5) (дата обращения: 10.12.2018)
3. Diffie W. New directions in cryptography / Diffie W., Hellman M. // IEEE Transactions on Information Theory. - 1976. - IT-22(6). - p.644-654.
4. Collberg C. Taxonomy of Obfuscating Transformations/ Collberg C., Thomborson C., Low D. // Technical Report 148, Department of Computer Science. - University of Auckland. - 1997.
5. Barak B. On the (im)possibility of obfuscating programs / Barak B., Goldreich O., Impagliazzo R., Rudich S., Sahai A., Vadhan S., Ke Yang. // Advances in Cryptology - Lecture Notes in Computer Science. - 2001. - v. 2139. - p. 1-18.
6. Анализ запутывающих преобразований программ // Информационная безопасность - статьи, обзоры, книги [Электронный ресурс]. URL: http://citforum.ru/security/articles/analysis/(дата обращения_ 10.12.2019)
7. Варновский Н.П. Математические проблемы обфускации / Варновский Н.П., Захаров В.А., Кузюрин Н.Н // Математика и безопасность информационных технологий. Материалы конференции в МГУ 28-29 октября 2004 г. - МЦНМО, 2005. - с. 65-91.
8. Varnovsky N.P. A note on the concept of obfuscation // Труды Института системного программирования. - 2004. - 6.
9. Goldwasser S. On the impossibility of obfuscation with auxiliary input / Goldwasser S., Kalai T.Y. // Proceedings of the 46-th IEEE Symposium on Foundations of Computer Science. - 2005. - p. 553-562.
10. Goldwasser S. On best possible obfuscation / Goldwasser S., Rothblum G.N. // Theory of Cryptography Conference. - Lecture Notes in Computer Science. - 2007. - v. 4392. - p. 194-213.
11. Garg S. Candidate Indistinguishability Obfuscation and Functional Encryption for all circuits / Garg S., Gentry C., Halevi S., Raykova M., Sahai A., Waters B. // IACR Cryptology ePrint Archive 2013. - 2013. - p 1-451.
12. Обфускация программ // Defence.ru[Электронный ресурс]. URL: https://defence.ru/article/1426/(дата обращения: 20.12.2019)
13. eLIBRARY.RU- Научная Электронная Библиотека [Электронный ресурс]. URL: https://www.elibrary.ru(дата обращения: 23.12.2019)
14. .NET Code Protection, Encryption, Obfuscation and Licensing - Eziriz // Eziriz [Электронный ресурс]. URL: https://www.eziriz.com/(дата обращения: 23.12.2019)
15. Dotfuscator Community - Visual Studio // Microsoft - официальная страница [Электронный ресурс]. URL: https://docs.microsoft.com/ru- ru/visualstudio/ide/dotfuscator(дата обращения: 23.12.2019)...(18)


Работу высылаем на протяжении 30 минут после оплаты.




©2025 Cервис помощи студентам в выполнении работ