Как работает Protector4J?
Проблемы существующих решений для защиты Java-кода
Прежде чем понять, как работает Protector4J, давайте сначала рассмотрим проблемы, существующие в других решениях для защиты Java-кода.
Обфускация кода
Благодаря высокой семантичности байт-кода JVM его очень легко анализировать и читать. С помощью динамической отладки можно легко проанализировать логику выполнения, поэтому обфускация не является надёжным решением для защиты.
Для получения дополнительной информации обратитесь к статье: https://protector4j.com/ru/articles/the-issues-of-code-obfuscation/
Шифрование файлов классов
Из-за наличия механизма присоединения (attachment) JVM весь так называемый зашифрованный код, который не был отделён от обычного JRE, может быть легко получен с помощью инструментов присоединения. Поэтому это наименее эффективное решение для защиты.
Для получения дополнительной информации обратитесь к статье: https://protector4j.com/ru/articles/the-issues-of-class-encryption/
VMP-защита
Виртуализационная защита является наиболее надёжной формой защиты кода, но из-за серьёзного влияния на производительность она может применяться только к критическому коду программы. Остальной код по-прежнему подвержен риску раскрытия. Анализируя другие части кода, взломщик всё ещё может получить функциональную информацию о виртуализированном коде.
Подробности см. в статье: https://protector4j.com/ru/articles/the-issues-of-vm-protection/
AOT-компиляция
Настройка и компиляция AOT очень сложны, и существует высокая вероятность сбоя компиляции. Даже в случае успешной компиляции логика кода лишь преобразуется из представления байт-кода в представление машинного кода, а его внутренняя логика сохраняется без какой-либо специальной защиты. Если кто-то поймёт механизм компиляции и выполнения, он всё ещё сможет восстановить читаемый код методами обратной разработки.
Для получения дополнительной информации обратитесь к статье: https://protector4j.com/ru/articles/the-issues-of-aot-protection/
Как работает Protector4J?
Мы определили собственный формат сжатых пакетов: JARX
Для защиты Java-кода мы создали собственный формат сжатых документов под названием JARX и интегрировали его в среду выполнения JVM. JAR-файл, обработанный Protector4J, преобразуется в формат JARX.
Мы выполнили глубокую настройку и модификацию JVM
Благодаря глубокому изучению JVM мы выполнили обширные настройки и модификации. Мы удалили все дополнительные механизмы и применили множество мер по укреплению и оптимизации на уровне бинарной безопасности. Это не позволяет взломщикам использовать существующие методы для экспорта информации о ваших классах. Мы считаем, что при текущем уровне защиты зашифрованное приложение, защищённое Protector4J, обладает высоким уровнем безопасности. Однако противостояние между взломом и защитой — это постоянный процесс совершенствования. Мы будем продолжать улучшать наши решения по шифрованию и защите для постоянного повышения безопасности приложений.