Модераторы: LSD, AntonSaburov

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Защита jar архива, как защитить jar архив 
V
    Опции темы
RUVATA
Дата 19.10.2010, 19:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 68
Регистрация: 24.8.2010

Репутация: нет
Всего: нет



Всем доброго времени суток...
Существует ли возможность защитить готовую программу от просмотра ее исходников, элементов дизайна, да и вообще содержимого JAR?
Один из методов, я так понял - компиляция в exe, но при этом существенно страдают объемы так как тудой вкладываются необходимые классы JDK(полностью или частично, трансформируясь в dll)
...если это небольшое приложение - то сие его существенно отягощает,
+ узримое мной на страницах, где эта тем обсуждается, мнение, что это еще и замедляет приложение.
Но так, опять таки, народ пытается сбежать от привязанности к JVM...
А я например не против... мне просто необходимо защитить исходники... я не хочу тягать с собой пол JDK... клиент без проблем его себе установит.

Как на этот счет... ? 


Это сообщение отредактировал(а) RUVATA - 19.10.2010, 19:06
PM MAIL   Вверх
jGorets
Дата 19.10.2010, 23:36 (ссылка)    | (голосов:2) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 30
Регистрация: 11.7.2010

Репутация: нет
Всего: нет



Цитата

Существует ли возможность защитить готовую программу от просмотра ее исходников, элементов дизайна, да и вообще содержимого JAR?

не показывай ее не кому =)
я тут думаю, а чем тебе джар файлы не угодили? разве там есть *.java, или ты с джарника можешь проект собрать (без дезасемблера)?
вообще джава - язык ориентированый на и-нэт приложения, с облачным типом работы =) тогда точно некто нече не увидит. А в остальном - вроде защина не плохая. 

Это сообщение отредактировал(а) jGorets - 19.10.2010, 23:37
PM MAIL   Вверх
danilka
Дата 20.10.2010, 09:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 29
Регистрация: 15.1.2010

Репутация: нет
Всего: нет



Цитата(jGorets @  19.10.2010,  23:36 Найти цитируемый пост)
вообще джава - язык ориентированый на и-нэт приложения, с облачным типом работы =) 

Бред


Цитата(jGorets @  19.10.2010,  23:36 Найти цитируемый пост)
А в остальном - вроде защина не плохая. 

не "не плохая" а никакая

Автор, смотри тут
PM MAIL   Вверх
Zlatogorov
Дата 20.10.2010, 09:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 117
Регистрация: 18.12.2007
Где: BW,Stuttgart

Репутация: нет
Всего: 1



jGorets
Да прям таки защищена, фронтэнд раскрывает на раз. И причём тут облака ?
С проблемой защиты столкнулись сами пару лет назад, нормального решения так и не нашли.
PM MAIL ICQ   Вверх
Connie
Дата 20.10.2010, 10:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 382
Регистрация: 12.8.2008

Репутация: 1
Всего: 9



RUVATA, jar - по сути своей простой zip архив, в нем лежат class файлы, которые легко декмопилятором преобразовать в java файлы. При этом обратном преобразовании возможно восстановятся не все имена переменных. Но восстановить логику приложения будет не сложно.

Один раз я потерял исходники своего приложения и потом восстановил его декомпилятором из jar файла. Ничего разобрался smile

Частично может помочь обусфокация. Она запутывает имена классов, методов и т.п. Однако имена методов стандартных классов изменены не будут smile Поэтому обращение к методу HttpConnection, например, будет найти не сложно, а String как был им, так String'ом и останется smile

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

Вот как то так.
PM MAIL WWW   Вверх
RUVATA
Дата 20.10.2010, 11:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 68
Регистрация: 24.8.2010

Репутация: нет
Всего: нет



Мня не сильно беспокоят авторские права, программа настолько специфическая, что ее алгоритмы вряд-ли пригодяться в каком-ни-будь другом решении.
Меня беспокоит проблемма - ее модификации "особо умными"... "кулц хацкеров" конечно среди них нет, но опытные програмисты имеются...
Цитата(Connie @  20.10.2010,  10:57 Найти цитируемый пост)
его декомпилятором из jar файла. Ничего разобрался smile

и они я думаю разберуться... 
Самое главное у них есть стимул это сделать... а самое обидное, что у них на то есть привелегии в сети, где данное приложение должно функционировать, и проконтролировать э-т будет довольно сложно...
Жаль...

Цитата(danilka @  20.10.2010,  09:57 Найти цитируемый пост)
Бред

полностью солидарен smile

Цитата(Zlatogorov @  20.10.2010,  09:57 Найти цитируемый пост)
нормального решения так и не нашли. 

то есть мне продолжать поиски в этом направлении видимо не стоит?

...
А как насчет потери в быстродействии, при компиляции в код x86 (exe) ... Действительно ли это так?
Размеры вобщем-то не такая уж и проблемма при современной скорости и объемах "хардов"... а вот скорость функционала, - другое дело.


Это сообщение отредактировал(а) RUVATA - 20.10.2010, 11:15
PM MAIL   Вверх
Zlatogorov
Дата 20.10.2010, 12:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 117
Регистрация: 18.12.2007
Где: BW,Stuttgart

Репутация: нет
Всего: 1



RUVATA
год не смотрел, может что и появилось, но врядли, как тут уже говорилось единственно приемлемый способ - это использовать обсфукацию, ну и прочие заморочки, только надо учесть что потом самому же и саппортить такой код smile
PM MAIL ICQ   Вверх
RUVATA
Дата 20.10.2010, 14:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 68
Регистрация: 24.8.2010

Репутация: нет
Всего: нет



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

Это сообщение отредактировал(а) RUVATA - 20.10.2010, 14:53
PM MAIL   Вверх
Zlatogorov
Дата 20.10.2010, 14:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 117
Регистрация: 18.12.2007
Где: BW,Stuttgart

Репутация: нет
Всего: 1



RUVATA
Да не всё так печально, исполняемый код и в других можно поломать. Всё что один человек сделал другой поломать сможет smile
И это не вопрос безопасности, а скорее всего вопрос собственности. Добавьте модуль лицензирования в свой софт.
PM MAIL ICQ   Вверх
RUVATA
Дата 20.10.2010, 16:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 68
Регистрация: 24.8.2010

Репутация: нет
Всего: нет



Цитата(RUVATA @  20.10.2010,  11:14 Найти цитируемый пост)
Меня не сильно беспокоят авторские права

программа которую я планировал закончить, на Java дерзкий проект, по заказу начальства...
Это хитрая система определения присутствия пользователей на рабочем месте и их внимательности (специфика работы, от их вниамтельности и опетаивности пинмеамых ими решений много зависит...
Среди тех кто подвергнется воздействию такой системы, есть опытные прграммисты... если им удается понять алгоритм, а тем более изменить данное приложение, а они скорее всего будут пробовать, это мы уже проходили, то все это мертвоми припарки...
вот...
PM MAIL   Вверх
dorogoyIV
Дата 20.10.2010, 17:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1503
Регистрация: 26.3.2007

Репутация: 3
Всего: 46



вообще не понимаю значения (или какой то нужности) защиты кода!
программирование дошло до такого уровня, при котором не нужно быть программистом, что бы написать что то.

RUVATA, вашу программу любой программист за полдня напишет. зачем ее защищать?
PM MAIL   Вверх
danilka
Дата 20.10.2010, 17:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 29
Регистрация: 15.1.2010

Репутация: нет
Всего: нет



Цитата(RUVATA @  20.10.2010,  16:11 Найти цитируемый пост)
Среди тех кто подвергнется воздействию такой системы, есть опытные прграммисты... если им удается понять алгоритм, а тем более изменить данное приложение, а они скорее всего будут пробовать, это мы уже проходили, то все это мертвоми припарки...
вот... 


Как защититься от изменения кода уже писали выше.
А от того, что опытные программисты смогут понять алгоритм толку мало, так как они не смогут его обойти если в нем нет дыр.
PM MAIL   Вверх
mantracoder
Дата 20.10.2010, 18:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 51
Регистрация: 3.8.2007

Репутация: 1
Всего: 1



Ничего не ломаемого нет в принципе. Вы можете принять лишь комплекс мер по сдерживанию:

1) Обфускация, как уже было сказано выше.

2) Подпись .jar файлов сертификатом.

3) Упаковка jar-ов в .exe файл, при этом упаковывать JVM туда вовсе не обязательно, .jar файлы хранятся как ресурсы контейнерной .exe программы, которая ищет JVM в системе, а дальше все по обычному сценарию. Небольшое замедление возможно только при старте приложения, да и то вы вряд ли заметите разницу. Ищите упаковщик exe4j, весьма достойный софт.

4) Зарегистрировать авторские права и приложить лицензионное соглашение, запрещающее любую модификацию исходного кода продукта.

Это сообщение отредактировал(а) mantracoder - 20.10.2010, 18:51
PM MAIL   Вверх
RUVATA
Дата 21.10.2010, 07:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 68
Регистрация: 24.8.2010

Репутация: нет
Всего: нет



 
Цитата(danilka @  20.10.2010,  17:40 Найти цитируемый пост)
они не смогут его обойти если в нем нет дыр. 



Цитата(mantracoder @  20.10.2010,  18:46 Найти цитируемый пост)
Ничего не ломаемого нет в принципе.


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

Дизайнер-интерфейсов, и разработка ориг.элементов управления - редко пересекаются с безопасностью  smile 

PS: "В идеале - те, от кого я собираюсь защищаться - должны были реализовывать эту идею, это вобщем-то их работа, но
по понятным причинам, доверить ее им нельзя"

mantracoder, будем пробовать, спасибо.
PM MAIL   Вверх
Connie
Дата 21.10.2010, 10:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 382
Регистрация: 12.8.2008

Репутация: 1
Всего: 9



Цитата
1) Обфускация, как уже было сказано выше.

Загнать декомпилированный в дебаггер и там поглядеть изменения переменных, ну и поставить заглушку в нужном месте.


Цитата
2) Подпись .jar файлов сертификатом.
Ну хорошо, подписали, а как будет проверяться эта подпись? Визуально, но я легко могу создать похожий визуально ключ. А если программно при запуске, так и эту проверку можно обойти. Другое дело, если система (ОС) бы при запуске программы брала из нее публичный ключ, шла бы на сервер сертификатов, сверяла его подлинность, и только в случае успеха позволяла бы запускать программу, в противном случае посылала бы отчет. Ну а если нет, то смысл какой?

Цитата
3) Упаковка jar-ов в .exe файл, при этом упаковывать JVM туда вовсе не обязательно, .jar файлы хранятся как ресурсы контейнерной .exe программы, которая ищет JVM в системе, а дальше все по обычному сценарию. Небольшое замедление возможно только при старте приложения, да и то вы вряд ли заметите разницу. Ищите упаковщик exe4j, весьма достойный софт.
А что мешает программистам извлечь содержимое контейнера? Ну вот пример, не совсем тот, но по смыслу похож. Есть самораспаковывающийся архив с расширением exe, но если смотреть такой файл каким либо архиватором, то мы видим содержимое архива. Мне кажется и тут не составит труда поглядеть на содержимое контейнера.


Цитата
4) Зарегистрировать авторские права и приложить лицензионное соглашение, запрещающее любую модификацию исходного кода продукта.

Но тогда проще издать приказ по предприятию, в котором запретить уходить с рабочего места и быть всегда внимательным. Ну результат будет одинаков, а затрат меньше  smile 
PM MAIL WWW   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Java"
LSD   AntonSaburov
powerOn   tux
javastic
  • Прежде, чем задать вопрос, прочтите это!
  • Книги по Java собираются здесь.
  • Документация и ресурсы по Java находятся здесь.
  • Используйте теги [code=java][/code] для подсветки кода. Используйтe чекбокс "транслит", если у Вас нет русских шрифтов.
  • Помечайте свой вопрос как решённый, если на него получен ответ. Ссылка "Пометить как решённый" находится над первым постом.
  • Действия модераторов можно обсудить здесь.
  • FAQ раздела лежит здесь.

Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux, javastic.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Java: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0828 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.