Архитектура защиты
Разные слои усложняют разные этапы восстановления.
Сначала анализ#
Complexer моделирует поток управления, зависимости данных, исключения и граф вызовов. Преобразования опираются на этот анализ. Бюджеты роста ограничивают увеличение методов, а pipeline отслеживает изменённое состояние.
Разделение задач#
- Шифрование констант меняет хранение и получение значений.
- Косвенные вызовы меняют представление ссылок на методы и конструкторы.
- Преобразования потоков данных и управления усложняют восстановление простой структуры исходного кода.
- Виртуализация либо нативная компиляция меняет исполнение выбранных методов. Это альтернативы, а не обязательное последовательное применение обеих.
Осознанный выбор#
Стандартный pipeline и дополнительные режимы исполнения решают разные задачи. Виртуализация и нативная компиляция выбираются явно. Критические по скорости методы требуют отдельной политики.
Защита повышает трудоёмкость анализа и изменения программы. Она не делает клиентский код математически недоступным для анализа и не заменяет серверную авторизацию и управление секретами.