Защита программ

Защита программ


Оценка эффективности систем защиты программного обеспечения
Упаковщики/шифраторы
СЗ от несанкционированного копирования
СЗ от НСД
Парольные защиты
Системы "привязки" ПО
Программно-аппаратные средства защиты ПО с электронными ключами

Средства защиты ПО с "ключевыми дисками"
Технические


Экономические
Организационные
Защита как таковая
Стойкость к исследованию/взлому
Отказоустойчивость (надёжность)
Независимость от конкретных реализаций ОС
Совместимость

Неудобства для конечного пользователя ПО
Побочные эффекты
Стоимость
Доброкачественность

Защита программ

Анализ средств преодоления систем защиты программного обеспечения
Программы-каталогизаторы, или файловые оболочки ОС.

Программы поиска файлов и текстовых и двоичных последовательностей в текстовых и двоичных файлах.
Программы - мониторы файловой системы (File Monitors)
Программы - мониторы системных файлов ОС (Registry Monitors)
Программы - мониторы вызовов подпрограмм ОС (API Monitors)
Программы - мониторы обмена данными с системными устройствами (портами) (Port Monitors)
Программы - мониторы сетевого обмена данными (Network Traffic Monitors)
Программы - мониторы активных задач, процессов, потоков и окон (Process/Windows Managers)
Программы - мониторы конвейеров
Программы перехвата и протоколирования клавиатурного ввода (Keyboard Loggers)
Программы копирования областей ОЗУ в ВЗУ (Memory Dumpers)

Программы восстановления удаленных файлов (Unerase/Undelete Utilities)
Программы побайтового копирования
Программы - распаковщики/дешифраторы (Unpackers/Decryptors)
Средства дизассемблирования объектных модулей ПО (Disassemblers)
Средства декомпиляции объектных модулей ПО (Decompilers)
Средства отладки объектных модулей (Debuggers)
Средства поиска и замены текстовых
Средства редактирования "ресурсов" объектных модулей (Resource Editors)
Средства загрузки объектных модулей
Средства загрузки и/или модификации контекста объектных модулей в регистрах ЦП

Программы симуляции аппаратных
Средства симуляции центрального процессора и подпрограмм ОС (CPU/API Emulators)
Средства симуляции операционных систем или ЭВМ целиком (OS/PC/Mac/... Emulators)
Средства пакетной обработки команд (Batch Processors/Script Engines)
Средства криптоанализа (Password Crackers/Bruteforcers)
Средства генерации паролей и серийных ключей (Key Generators)
Средства ОС по контролю доступа к программам и данным (Access Rights Managers)

Защита программ

Этапы преодоления систем защиты программного обеспечения
Первый этап - определение цели атаки.
Второй этап - поиск проявлений системы защиты.

Третий этап - предварительный анализ работы защищённого продукта.
Четвёртый этап - предварительный
Пятый этап - оценка стойкости
Шестой этап - направленное исследование системы защиты.
Седьмой этап - преодоление системы защиты.

Защита программ

Процедура разработки систем программно-технической защиты программного обеспечения

Выявление целей и задач, стоящих перед производителем ПО
Согласование допустимого процента потерь от пиратства
Определение соответствующего требованиям уровня защиты
Выявление функциональной направленности защищаемого продукта
Анализ предполагаемого протокола передачи ПО пользователю
Анализ возможных и вероятных угроз безопасности ПО
Определение стратегии защиты программного продукта (меры и средства)
Анализ исходных текстов продукта
Выбор оптимального типа СЗПО
Выбор оптимального вида СЗПО

Выработка рекомендаций по модификации исходных кодов для соответствия требованиям безопасности
Первичное тестирование программного продукта
Доработка спецификаций СЗПО либо приобретение сторонней разработки, удовлетворяющей спецификации
Применение СЗПО к продукту и проверка влияния защиты на показатели функциональности защищаемого ПО
Доработка СЗПО (устранение побочных эффектов)
Тестирование фактического уровня защиты, обеспечиваемого СЗПО
Доработка СЗПО (повышение стойкости к атакам)
Документирование и сопровождение СЗПО
Литература:

Защита программ

Аннотация.
Введение

Методы защиты ПО от изучения
Виртуальный процессор в защите ПО
Реализация метода
Иллюстрация
Заключение

Защита программ

Таблица 1.
Использование информации о линейных
Введение
Анализ на основе линейных зависимостей
Многогранное множество

Граф линейных связей
Выделение системы линейных связей из многогранного множества
Пример
Примеры устраненных ложных предупреждений
Результаты
Литература

Защита программ

О некоторых задачах обратной инженерии
Аннотация. В статье даётся краткое
Декомпиляция и дизассемблирование

Обзор основных подзадач декомпиляции
Выделение функций
Выявление параметров и возвращаемых значений
Структурный анализ
Восстановление типов
Языки высокого уровня с точки зрения обратной инженерии
Декомпиляторы в язык Си
Boomerang

DCC