Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Java: Общие вопросы > Обфускация или ...


Автор: Mate 5.2.2008, 09:56
Привет всем! 

Один мой знакомый говорит что он может открыт любую jar прогу. Я говорю что есть обфускация, а он удтверждает все таки он может открыт и посмотрет что там внутри.
А есть ли какой нибуд способ чтоб он вообще не смог ничего читат?

ЗЫ: оказывается обфускатор только пытается создать нечто вроде лабиринта.
А мне надо нечто вроде ZendOptimiser в PHP который превратить например 
Код

(int a, int b) 
 на 
Код
 ;@ewr 

Автор: W0LF 5.2.2008, 10:59
Нет, обфускаторы в джава таким не занимаются.
Что делает обфускатор - он заменяет имена не публичных полей и классов на a,b,c...aa, ab... тем самым сбивая с толку при просмотре. На самом деле существуют деобфускаторы, которые заменяют a,b,c...aa, ab... на fieldA, fieldB(в случае метода metodA, metodB)
тем самым облегчая процесс деобфускации программисту =)
Ну а в общем - если декомпилился код нормально, то есть нет никаких траблов при декомпиляции, то деобфусцировать можно всегда, просто больше времени нужно будет, но это есть неправильно и программист должен понимать что на себя берет =)
А вообще - это вопрос общей java, поэтому туда его и перенесу

Добавлено через 4 минуты и 6 секунд
Цитата

Один мой знакомый говорит что он может открыт любую jar прогу. Я говорю что есть обфускация, а он удтверждает все таки он может открыт и посмотрет что там внутри.

А может твой знакомый имел ввиду, что откроет джарик раром и посмотрит структуру классов и все? smile

Автор: DsKTY 5.2.2008, 14:03
Цитата(W0LF @ 5.2.2008,  10:59)
Ну а в общем - если декомпилился код нормально, то есть нет никаких траблов при декомпиляции, то ...

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

Автор: 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 файл под рукой,  декомпилировал вот и получи непонятную абракадабру.
 smile  smile 

Автор: VSergeyV 6.2.2008, 10:27
Цитата(Mate @  5.2.2008,  17:28 Найти цитируемый пост)
Я имею ввиду когда сам jar файл под рукой,  декомпилировал вот и получи непонятную абракадабру.

Сам JAR это просто архив (по сути ZIP) и к нему понятие "декомпилировал" непременимо

Добавлено через 4 минуты и 55 секунд
Цитата(Mate @  5.2.2008,  17:28 Найти цитируемый пост)
 непонятную абракадабру.

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

Автор: seth 6.2.2008, 11:08
На самом деле обфускация предполагает не только переименование переменных а еще и изменение графа потоков управления что делает деобфускацию гораздо сложнее - только софт делающий запутывание кода я не видел smile

Автор: ecologist 6.2.2008, 11:17
Да сломать можно любую программу - дело времени и усилий.

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

Автор: skif18 6.2.2008, 15:33
Цитата(VSergeyV @ 6.2.2008,  08:27)
Такое думаю невозможно в принципе, разобраться все равно можно будет
Где то читал статейку по обфускаторам в Java - в итоге как понял в любом случае прочесть и разобраться можно будет, только потребуется больше времени, либо какие-то деобфускаторы

Можно будет но это будет в любом случае геморрой.

Автор: Mate 7.2.2008, 16:42
Цитата

Сам JAR это просто архив (по сути ZIP) и к нему понятие "декомпилировал" непременимо


OK. Меняем слова JAR на CLASS.



Прочитал я ответы и... значит я могу согласиться с моим знакомым? Или все таки solution найдеться

Автор: AntonSaburov 7.2.2008, 16:46
Цитата(Mate @  7.2.2008,  16:42 Найти цитируемый пост)
Или все таки solution найдеться 

Скрыть код от дизассемблирования - не получится. Рано или поздно любой код можно раскрыть.

Автор: Бонифаций 8.2.2008, 02:21
Цитата(DsKTY @ 5.2.2008,  14:03)
Цитата(W0LF @ 5.2.2008,  10:59)
Ну а в общем - если декомпилился код нормально, то есть нет никаких траблов при декомпиляции, то ...

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

Что значит от взлома?
имеется в вдиу что Ваш знакомый внесет изменения в классы и создаст свой jar?
Ну подпишите свой jar.. пусть он с криптографией борется.

Автор: Mate 9.2.2008, 13:25
Бонифаций как это делаеться, объясни please.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)