2016-06-28 3 views
0

Я понимаю, что StackOverflow ориентирован на ответы на конкретные вопросы и избегает субъективного мнения. Я чувствую, что у моего вопроса (ответов) есть только один правильный ответ, и поэтому я размещаю здесь.Какой заказ? ProGuard + JWrapper + Launch4J

Я создал приложение Java для настольных компьютеров (JavaFX), которое планирую распространять для коммерческого использования. Я читал, что Java-код легко реконструирован, поэтому крайне важно запутать использование чего-то вроде ProGuard. Я хотел бы упаковать свое приложение, чтобы пользователи дважды щелкали файлом .exe (который они загружали с моего сайта), а затем установщик запускается, как это делает любое стандартное программное обеспечение. Это выходит за рамки ProGuard, но я нашел JWrapper и Launch4J, которые, похоже, предоставляют аналогичную функциональность. Оба утверждают, что они завершают банки в исполняемые файлы Windows, показывают всплывающие экраны, включают JRE, но я смущен там, где они отличаются.

В частности, мне нужно следующий:

  • Мастер установки (а именно поместить ех в безопасном месте + сделать ярлык на рабочем столе, а также добавить EULA где-то).
  • Добавить EULA (лицензионное соглашение с конечным пользователем), который определяет ограничения пользователя
  • веб-обновления для приложения (JWrapper, кажется, обеспечивает это с помощью URL + построить путь)
  • Возможность защитить приложение (несколько) с помощью лицензирования (License3j кажется многообещающим).

Их особенности могут быть найдены here и here, но только JWrapper упоминает способность perform web updates и упоминает ярлыки на рабочем столе (который я предполагаю, можно также написать Eula.txt где-то).

Итак, после того, как я закончил писать код, в каком порядке должны применяться ProGuard, JWrapper и Launch4j? Я предполагаю, что ProGuard сначала (сжиматься, оптимизировать и обфускать), а затем JWrapper, а затем Launch4j? Или только 2 из 3?

Не стесняйтесь также предлагать дополнительные методы, инструменты или концепции, которые могут отсутствовать. Спасибо!

+0

Пользователи JWrapper также предлагают JWCrypt, который, по их утверждению, является очень эффективной защитой кода, но он не является бесплатным. – nyholku

+0

Это выглядит многообещающим, спасибо. Это выглядит как $ 500 в год, хотя поэтому всегда предпочтительна бесплатная альтернатива. Однако это нереально, поэтому я задаюсь вопросом, не помешал ли я все обрабатывать свои конфиденциальные данные на серверной стороне и платить за репутацию компании за предоставление своих услуг защиты, не так ли лучше, чем JWCrypt? Мое приложение будет содержать только скелетный код и будет запрашивать «кишки» кода с сервера на протяжении всего его процесса. Есть предположения? TY. – Mathomatic

+0

Если вы можете сохранить код, который хотите защитить на стороне сервера, то, очевидно, это хорошо защищено, если сервер не будет скомпрометирован. Но ваше последнее утверждение предлагает вывести код с сервера на клиентскую сторону, и это, конечно же, не более безопасно от обратной инженерии, чем его в клиентском приложении. – nyholku

ответ

1

Этот вопрос кажется из области видимости для Stackoverflow, но ответить на него:

  1. применять ProGuard первый в вашем приложении, сохраняя основной метод приложения
  2. применять либо launch4j или jwrapper (до вас выбрать) на банке, обработанной ProGuard
+0

Спасибо за отзыв. – Mathomatic

Смежные вопросы