Для студентов РТУ МИРЭА по предмету ДругиеАнализ и генерация байт-кода языка PythonАнализ и генерация байт-кода языка Python
2024-05-252024-05-25СтудИзба
Курсовая работа: Анализ и генерация байт-кода языка Python
Описание
Оглавление
3
Введение
Безусловно, промежуточное представление делает более удобными процесс разработки и отладки. Однако у такого подхода есть и свои недостатки. Например, у программ, написанных на языках с промежу-точным представлением, гораздо легче восстанавливается логика ра-боты, благодаря этому промежуточному представлению [18]. Поэтому сейчас остро стоит вопрос обфускации ПО на уровне промежуточного представления [11], [13], [14], [15].
Исследований в области защиты байт-кода Java гораздо больше, чем
Поэтому в рамках данной работы будут рассмотрены существующие подходы обфускации байт-кода различных языков в контексте вирту-альной машины и промежуточного представления языка Python.
У качественной обфускации можно выделить три главных аспекта.
Каждый из перечисленных аспектов обфускации требует отдельно-го исследования. Однако работу над обфускатором следует начинать
4
Введение | 4 | ||
1. | Постановка задачи | 5 | |
2. | Обзор | 6 | |
2.1. | Подходыобфускации..................... | 6 | |
2.2. | Виртуальная машина Python . . . . . . . . . . . . . . . . | 6 | |
2.3. | Измерительные инструменты . . . . . . . . . . . . . . . . | 8 | |
3. | Оперирование линейными блоками | 11 | |
3.1. | Задачиинструментария ................... | 11 | |
3.2. | Архитектура.......................... | 12 | |
4. | Измерение времени работы программы | 17 | |
4.1. | Окружение проведения измерений . . . . . . . . . . . . . | 17 | |
4.2. | Программы для тестирования . . . . . . . . . . . . . . . . | 18 | |
5. | Результаты | 19 | |
5.1. | Тождественное преобразование . . . . . . . . . . . . . . . | 19 | |
5.2. | Фиксирование размера линейного блока . . . . . . . . . . | 20 | |
5.3. | Изменение порядка линейных блоков . . . . . . . . . . . . | 21 | |
5.4. | Вынесение идентификаторов и | ||
подстановкафункций..................... | 22 | ||
5.5. | Выводы............................. | 23 | |
6. | Заключение | 26 | |
Список литературы | 27 |
3
Введение
- настоящее время большое количество ПО пишется на языках с промежуточным представлением. Например, Java, C#, Python.
Безусловно, промежуточное представление делает более удобными процесс разработки и отладки. Однако у такого подхода есть и свои недостатки. Например, у программ, написанных на языках с промежу-точным представлением, гораздо легче восстанавливается логика ра-боты, благодаря этому промежуточному представлению [18]. Поэтому сейчас остро стоит вопрос обфускации ПО на уровне промежуточного представления [11], [13], [14], [15].
Исследований в области защиты байт-кода Java гораздо больше, чем
- областях защиты других языков, в частности языка Python. Однако Python является достаточно популярным выбором при создании ПО различных уровней сложности, в том числе ПО с требованием защиты от восстановления логики.
Поэтому в рамках данной работы будут рассмотрены существующие подходы обфускации байт-кода различных языков в контексте вирту-альной машины и промежуточного представления языка Python.
У качественной обфускации можно выделить три главных аспекта.
- Обфускация должна сильно усложнять работу по восстановлению логики программы [10].
- Время работы обфусцированной программы не должно значи-тельно возрастать.
- Должна отсутствовать программа для автоматического снятия обфускации [17].
Каждый из перечисленных аспектов обфускации требует отдельно-го исследования. Однако работу над обфускатором следует начинать
- второго аспекта, так как изначально нужно выделить приемлемые в плане времени работы программы подходы обфускации. Поэтому в рамках данной работы будет рассмотрен второй аспект обфускации.
4
Характеристики курсовой работы
Предмет
Учебное заведение
Семестр
Просмотров
1
Размер
207,5 Kb
Список файлов
Анализ и генерация байт-кода языка Python.doc