Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
Форум программистов > Java: Общие вопросы > Обфускация или ... |
Автор: Mate 5.2.2008, 09:56 | ||||
Привет всем! Один мой знакомый говорит что он может открыт любую jar прогу. Я говорю что есть обфускация, а он удтверждает все таки он может открыт и посмотрет что там внутри. А есть ли какой нибуд способ чтоб он вообще не смог ничего читат? ЗЫ: оказывается обфускатор только пытается создать нечто вроде лабиринта. А мне надо нечто вроде ZendOptimiser в PHP который превратить например
|
Автор: W0LF 5.2.2008, 10:59 | ||
Нет, обфускаторы в джава таким не занимаются. Что делает обфускатор - он заменяет имена не публичных полей и классов на a,b,c...aa, ab... тем самым сбивая с толку при просмотре. На самом деле существуют деобфускаторы, которые заменяют a,b,c...aa, ab... на fieldA, fieldB(в случае метода metodA, metodB) тем самым облегчая процесс деобфускации программисту =) Ну а в общем - если декомпилился код нормально, то есть нет никаких траблов при декомпиляции, то деобфусцировать можно всегда, просто больше времени нужно будет, но это есть неправильно и программист должен понимать что на себя берет =) А вообще - это вопрос общей java, поэтому туда его и перенесу Добавлено через 4 минуты и 6 секунд
А может твой знакомый имел ввиду, что откроет джарик раром и посмотрит структуру классов и все? ![]() |
Автор: DsKTY 5.2.2008, 14:03 | ||
вот тут подумал, а можно ли как-то специально делать так, что бы при декомпиляции возникали проблемы, тем самым защищая (хоть как-то) программу от взлома?? вообще из-за чего могут возникать такие проблемы?? |
Автор: LSD 5.2.2008, 14:15 |
Для J2SE есть компиляторы в native код, там декомпиляция намоного трудней. |
Автор: Samuil 5.2.2008, 15:14 |
LSD, Как я понял, если у меня есть source cod - сервлета, я могу при компиляции перевести его в native код и прочитать код будет несколько сложнее? Применимо ли ето для сервлета? |
Автор: LSD 5.2.2008, 15:18 |
Нет, для сервлета не применимо. Если только весь сервер приложений, как нибудь скомпилировать в native код (да и то придется помучаться). Но там это и не особо нужно, сервлет же не попадает к конечному пользователю. Надо просто защитить сервер. |
Автор: Mate 5.2.2008, 17:28 | ||
Да нет WOLF Насчет сервлетов понятно что там серверная защыта хватит. Я имею ввиду когда сам jar файл под рукой, декомпилировал вот и получи непонятную абракадабру. ![]() ![]() |
Автор: seth 6.2.2008, 11:08 |
На самом деле обфускация предполагает не только переименование переменных а еще и изменение графа потоков управления что делает деобфускацию гораздо сложнее - только софт делающий запутывание кода я не видел ![]() |
Автор: ecologist 6.2.2008, 11:17 |
Да сломать можно любую программу - дело времени и усилий. Решение должно быть - насколько нужно закрывать свою. Если например это что-то широко продаваемое, то надо оценить группы людей, которые это будут покупать, цену легального софта, тот сервис, которого лишаются "нелегалы", возможные каналы распространения софта и прочая. |
Автор: skif18 6.2.2008, 15:33 | ||
Можно будет но это будет в любом случае геморрой. |
Автор: Mate 7.2.2008, 16:42 | ||
OK. Меняем слова JAR на CLASS. Прочитал я ответы и... значит я могу согласиться с моим знакомым? Или все таки solution найдеться |
Автор: AntonSaburov 7.2.2008, 16:46 |
Скрыть код от дизассемблирования - не получится. Рано или поздно любой код можно раскрыть. |
Автор: Бонифаций 8.2.2008, 02:21 | ||||
Что значит от взлома? имеется в вдиу что Ваш знакомый внесет изменения в классы и создаст свой jar? Ну подпишите свой jar.. пусть он с криптографией борется. |
Автор: Mate 9.2.2008, 13:25 |
Бонифаций как это делаеться, объясни please. |