Как защитить Java-приложение от обратного проектирования или кражи кода?

Я хочу открыть свое настольное Java-приложение для общественности, но я не уверен, как защитить его от обратного проектирования или кражи исходного кода?

Можно ли конвертировать приложение в исполняемый файл? и если это так, разве этого не достаточно, чтобы защитить его?

3 ответа

Если кто-то действительно стоит потратить время на обратный инжиниринг вашего источника из бинарного файла, они будут. Вы могли бы сделать это немного сложнее, но никогда невозможно.

Вы можете использовать Java Obfuscator, такой как ProGuard.

ProGuard - это бесплатный инструмент для сжатия файлов класса Java, оптимизатор, обфускатор и предварительный анализатор. Он обнаруживает и удаляет неиспользуемые классы, поля, методы и атрибуты. Он оптимизирует байт-код и удаляет неиспользуемые инструкции. Переименовывает остальные классы, поля и методы, используя короткие бессмысленные имена. Наконец, он предварительно проверяет обработанный код для Java 6 или для Java Micro Edition.

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

Если вы компилируете с javac, вы можете использовать -g:none флаг для удаления всей отладочной информации от компиляции в исполняемый файл.

Другие вопросы по тегам