Как работает 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, обладает высоким уровнем безопасности. Однако противостояние между взломом и защитой — это постоянный процесс совершенствования. Мы будем продолжать улучшать наши решения по шифрованию и защите для постоянного повышения безопасности приложений.