1. Как работает Protector4J

    Protector4J защищает ваш исходный код Java, конвертируя jar-файлы в частные зашифрованные файлы jarx. Мы применяем множество подходов для обеспечения безопасности вашего приложения на уровнях JVM и бинарного кода, обеспечивая высокопрочную защиту приложений.

  2. Проблемы обфускации кода

    Из-за высокой семантичности байт-кода JVM его чрезвычайно легко анализировать и читать. Легко проанализировать логику его выполнения с помощью динамической отладки. Написание инструмента динамической отладки не является очень сложной задачей. Поэтому обфускация не является надёжным решением для защиты.

  3. Проблемы шифрования классов

    Из-за существования механизма присоединения JVM все так называемые зашифрованные коды, которые не были отсоединены от нормальной работы JVM, могут быть легко прочитаны с помощью инструментов присоединения. Поэтому это самое неэффективное решение для защиты.

  4. Проблемы защиты VM

    Виртуализационная защита — самый безопасный метод защиты кода, но из-за значительного влияния на производительность его нельзя применить ко всему коду программы. Он может защитить только критический код, в то время как остальной код по-прежнему подвергается риску раскрытия. Нацелившись на другие части кода, можно получить функциональную информацию о виртуализированной части кода.

  5. Проблемы компиляции AOT

    Компиляция AOT сложна в настройке и компиляции и имеет высокую вероятность неудачи. Даже если компиляция прошла успешно, логика кода лишь меняется с представления байт-кода на представление машинного кода. Внутренняя операционная логика по-прежнему существует без какой-либо специальной защиты. Если можно понять собственный механизм компиляции и выполнения, всё ещё возможно провести обратную разработку читаемого кода.

  6. Деобфускация с помощью vlx-vmengine

    Деобфускация Java-кода с помощью движка выполнения байт-кода JVM vlx-vmengine

  7. Движок выполнения байт-кода JVM, написанный на Java/Kotlin

    Традиционная динамическая отладка Java может выполняться только на основе исходного кода, и без исходного кода или с обфусцированными Java-классами динамическая отладка невозможна. Выполнение Java-программ основано на JVM, а JVM использует байт-код в качестве основы выполнения. Мы используем Kotlin для создания движка выполнения байт-кода JVM, который можно использовать с современными IDE, такими как IDEA, для отладки Java-программ на уровне байт-кода и наблюдения за поведением программы при выполнении.

  8. Обратная разработка GraalVM NativeImage

    Для Java-программ, вступивших в эру бинарной компиляции, можно ли их код так же легко декомпилировать, как в эпоху байт-кода? Каковы характеристики бинарных файлов, скомпилированных NativeImage? Достаточна ли прочность бинарной компиляции для защиты важного кода? Для исследования вышеуказанных вопросов я недавно написал инструмент анализа NativeImage, который достиг определённого уровня обратной деривации.

  9. Взлом зашифрованного Java-приложения с помощью jhsdb (HotSpot Debugger)

    Одно из решений для защиты Java-кода — шифрование файлов классов. Такие решения загружают зашифрованные файлы классов или jar через пользовательский загрузчик классов. Из-за существования механизма присоединения JVM этот метод неэффективен и может быть легко взломан с помощью инструментов, включённых в JDK.

  10. Извлечение информации о Java-классах из бинарных файлов, скомпилированных AOT

    AOT также рассматривается как решение для защиты Java-кода, но, к сожалению, многие Java-программы не могут быть отделены от фреймворка. Из-за сложности фреймворка даже программы, скомпилированные AOT, должны включать информацию о классах в конечный бинарный файл, а файлы классов фактически аккуратно расположены в области ресурсов бинарного файла.

  11. Что такое файл JARX

    Файл JARX — это наш собственный формат архивного файла, который использует тот же алгоритм сжатия Deflate, что и Zip, и алгоритм шифрования AES для шифрования данных.

  12. Лучшее решение для защиты Java-кода, выходящее за рамки обфускации

    Шифрование вашего кода защищает вашу интеллектуальную собственность и значительно повышает безопасность ваших приложений. Оно делает кражу интеллектуальной собственности, подделку кода и обнаружение уязвимостей безопасности настолько сложными и дорогостоящими, что случайный наблюдатель с бесплатным Java-декомпилятором не сможет этого сделать.

  13. Альтернатива Excelsior JET

    Protector4J — это больше, чем просто замена Excelsior JET