?

Log in

No account? Create an account

Previous Entry

Теперь уже в этой теме прошу писать всех, кто хотел бы что-то обсудить – статьи на сайте или же просто какие-то интересные/актуальные вопросы. По результатам сбора пожеланий опять-таки будут созданы темы для обсуждения. Или же статьи, что тоже реально.

Я был бы рад, если бы анонимные комментарии и вопросы были подписаны – проще отвечать.

Comments

(Anonymous)
Sep. 1st, 2010 06:31 am (UTC)
Сделать trial jar
Здравствуйте, Евгений
Если можете, ответьте, пожалуйста, на следующие вопросы. Нужно сделать программу в виде запускающегося jar.Это не проблема).
1 .Но проблема, как сделать, так что бы этот архив имел как бы пробный период например 30 дней, после которого он переставал бы запускаться или начинал требовать ввода пароля.
2. При этом желательно что бы содержимое джара было зашифровано, что бы декомпилятор не смог сработать.
3.Мой вопрос можно свести к более общему: как сделать java программу(не обязательно джар) защищенной от взлома и декомпиляции? Я понимаю надо смотреть в сторону подписывания jar?
Может у вас есть какие-то соображения по этому поводу? Спасибо.
skipy_ru
Sep. 1st, 2010 10:55 am (UTC)
Re: Сделать trial jar
Начну с конца.

3. Увы - никак. Даже при обфускации и других ухищрениях Вы все равно вынуждены будете поставить пользователю исполняемый код. Или код, который в итоге станет исполняемым, пусть его до этого надо 10 раз расшифровать. А дальше - отладчик и инструментирование. Так что гарантированного способа не существует.

Другое дело, что можно существенно затруднить процесс взлома. Собственный загрузчик, байткод, зашифрованный DES или чем-нибудь аналогичным, подписанный jar. Сертификат, действительный в течение месяца, после чего приложение отказывается запускаться. Плюс, например, ввести дополнительные телодвижения - типа в понедельник загрузчик загружает этот байткод, во вторник этот, в среду этот. Все три варианта делают в итоге одно и то же, но сильно разными способами. Соответственно, в зависимости от дня недели у Вас разные классы грузятся. Ломать такое - одно удовольствие.

Вопрос, собственно, в другом. А оно надо? Приложение действительно представляет собой такую ценность, что его бросятся ломать? Иначе достаточно простейшего файла, в котором будет дата окончания работы. Файл бинарный, положен в подписанный архив. Можно вообще отдельно, ссылаться на этот jar в Class-Path в манифесте. Для продления достаточно подложить новый jar.