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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Вопрос по обфускации, проблемма с определёнными библиотеками 
V
    Опции темы
ShurikA
Дата 15.2.2007, 16:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Зануда
***


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

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



В своём апплете я пользуюсь пакетом HTTPClient от Jakarta для отправки запросов POST.
Для полноценной работы этот пакет требует ешё несколько дополнительных пакетов как ча пример: commons-logging и commons-codec.
Всё хорошо и красиво работает пока дело не дочодит до обфускации, по каким то прочинам некоторые как быдто пропадают. 
на пример после обфускации вылетает в рантаим вот такая ошибка:
Код

Exception in thread "Thread-10" java.lang.ExceptionInInitializerError
    at octopusuploader.UpleadMgr.FileUploadThread.run(FileUploadThread.java:90)
Caused by: org.apache.commons.logging.LogConfigurationException: java.lang.ClassNotFoundException: org.apache.commons.logging.impl.LogFactoryImpl (Caused by java.lang.ClassNotFoundException: org.apache.commons.logging.impl.LogFactoryImpl)
    at org.apache.commons.logging.LogFactory.createFactory(LogFactory.java:1205)
    at org.apache.commons.logging.LogFactory$2.run(LogFactory.java:994)
    at java.security.AccessController.doPrivileged(Native Method)
    at org.apache.commons.logging.LogFactory.newFactory(LogFactory.java:991)
    at org.apache.commons.logging.LogFactory.getFactory(LogFactory.java:610)
    at org.apache.commons.logging.LogFactory.getLog(LogFactory.java:645)
    at org.apache.commons.httpclient.HttpMethodBase.<clinit>(HttpMethodBase.java:102)
    ... 1 more
Caused by: java.lang.ClassNotFoundException: org.apache.commons.logging.impl.LogFactoryImpl
    at sun.applet.AppletClassLoader.findClass(Unknown Source)
    at java.lang.ClassLoader.loadClass(Unknown Source)
    at sun.applet.AppletClassLoader.loadClass(Unknown Source)
    at java.lang.ClassLoader.loadClass(Unknown Source)
    at org.apache.commons.logging.LogFactory.createFactory(LogFactory.java:1060)
    ... 7 more


как с этим лучже всего бороться, но при этом да делать обфускацию?


--------------------
Если долго мучиться, что нибудь получится...
user posted image
PM MAIL WWW ICQ Skype   Вверх
LSD
Дата 15.2.2007, 17:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Leprechaun Software Developer
****


Профиль
Группа: Модератор
Сообщений: 15719
Регистрация: 24.3.2004
Где: Dublin

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



Ты пытаешься и commons-logging обсфуцировать, что ли???


--------------------
Disclaimer: this post contains explicit depictions of personal opinion. So, if it sounds sarcastic, don't take it seriously. If it sounds dangerous, do not try this at home or at all. And if it offends you, just don't read it.
PM MAIL WWW   Вверх
ShurikA
Дата 17.2.2007, 15:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Зануда
***


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

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



Цитата(LSD @  15.2.2007,  16:27 Найти цитируемый пост)
Ты пытаешься и commons-logging обсфуцировать, что ли??? 

я пытаюсь обсфуцировать всё как одно целое...


--------------------
Если долго мучиться, что нибудь получится...
user posted image
PM MAIL WWW ICQ Skype   Вверх
LSD
Дата 17.2.2007, 18:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Leprechaun Software Developer
****


Профиль
Группа: Модератор
Сообщений: 15719
Регистрация: 24.3.2004
Где: Dublin

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



Цитата(ShurikA @  17.2.2007,  15:44 Найти цитируемый пост)
я пытаюсь обсфуцировать всё как одно целое...

Не стоит этого делать. Скорее всего там используется фабрика, которая ищет класс по имени. Обсфуцируй только свой код.


--------------------
Disclaimer: this post contains explicit depictions of personal opinion. So, if it sounds sarcastic, don't take it seriously. If it sounds dangerous, do not try this at home or at all. And if it offends you, just don't read it.
PM MAIL WWW   Вверх
ShurikA
Дата 17.2.2007, 19:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Зануда
***


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

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



Цитата(LSD @  17.2.2007,  17:14 Найти цитируемый пост)
Обсфуцируй только свой код.

А потом просто всё собират' в один JAR?

Тогда ещё один вопрос:
Как быть если у меня есть два проекта которые пользуются третим, тоже моим проектом (он содержит только классы которыми я перекидываюсь из клиента к серверу и наоборот), мозчно ли этим классам делать обфускацию, или тоже быдет проблемма?


--------------------
Если долго мучиться, что нибудь получится...
user posted image
PM MAIL WWW ICQ Skype   Вверх
LSD
Дата 17.2.2007, 21:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Leprechaun Software Developer
****


Профиль
Группа: Модератор
Сообщений: 15719
Регистрация: 24.3.2004
Где: Dublin

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



Цитата(ShurikA @  17.2.2007,  19:03 Найти цитируемый пост)
А потом просто всё собират' в один JAR?

Можно собирать, а можно оставить несколько jar, и просто перечислять все в classpath при запуске.


Цитата(ShurikA @  17.2.2007,  19:03 Найти цитируемый пост)
Как быть если у меня есть два проекта которые пользуются третим, тоже моим проектом (он содержит только классы которыми я перекидываюсь из клиента к серверу и наоборот), мозчно ли этим классам делать обфускацию, или тоже быдет проблемма?

Либо подвергать обсфукации все три проекта одновременно (за один прием). Или не трогать классы для передачи данных вообще.

Обсфукация - это просто переименование классов, методов, полей и пакетов, с целью скрыть их истинный смысл (на самом деле не только, но это основное). Догадаться что делает метод readLine() не трудно, а вот что делает метод a(int i, String s) совсем не очевидно. По этой причине надо или переименовывать метд сразу во всех местах где он используется, или вообще этого не делать. Аналогично с классами, полями и пакетами.


--------------------
Disclaimer: this post contains explicit depictions of personal opinion. So, if it sounds sarcastic, don't take it seriously. If it sounds dangerous, do not try this at home or at all. And if it offends you, just don't read it.
PM MAIL WWW   Вверх
ShurikA
Дата 17.2.2007, 23:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Зануда
***


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

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



А цчто тогда происходит с обращениями к методам тех самыч классов (для передачи данных) в функциях программы?

Добавлено @ 23:30 
Цитата(LSD @  17.2.2007,  20:39 Найти цитируемый пост)
Можно собирать

Есть какието определённые правила сборки?
На пример нузчно ли собирать именно втот же самый JAR проги (получившийся после обфускации)?


--------------------
Если долго мучиться, что нибудь получится...
user posted image
PM MAIL WWW ICQ Skype   Вверх
LSD
Дата 17.2.2007, 23:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Leprechaun Software Developer
****


Профиль
Группа: Модератор
Сообщений: 15719
Регистрация: 24.3.2004
Где: Dublin

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



Цитата(ShurikA @  17.2.2007,  23:22 Найти цитируемый пост)
А цчто тогда происходит с обращениями к методам тех самыч классов (для передачи данных) в функциях программы?

Если метод переименовывается, то переименовываются все его вызовы (в данном проекте, конечно), аналогично для полей и классов. Все обращения к внешним библиотекам остаются как есть (ведь JDK никто не даст обсфуцировать). Поэтому если библиотека DTO будет внешней в данном проекте, то обращения к ней останутся как есть.


Цитата(ShurikA @  17.2.2007,  23:22 Найти цитируемый пост)
Есть какието определённые правила сборки?
На пример нузчно ли собирать именно втот же самый JAR проги (получившийся после обфускации)?

Собирать точно также как и как и в случае со стандартными классами. Т.е. если хочешь получить один jar со всеми классами, то просто копируешь полученные классы в каталог, туда же распаковываешь библиотеки, после чего упаковываешь их в jar. Ну или JBuilder-у указываешь включать в получившийся jar все используемые библиотеки.


--------------------
Disclaimer: this post contains explicit depictions of personal opinion. So, if it sounds sarcastic, don't take it seriously. If it sounds dangerous, do not try this at home or at all. And if it offends you, just don't read it.
PM MAIL WWW   Вверх
ShurikA
Дата 17.2.2007, 23:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Зануда
***


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

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



И последнее:
у каждой библиотеки есть свой манифест... Как с этим быть?


--------------------
Если долго мучиться, что нибудь получится...
user posted image
PM MAIL WWW ICQ Skype   Вверх
LSD
Дата 18.2.2007, 00:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Leprechaun Software Developer
****


Профиль
Группа: Модератор
Сообщений: 15719
Регистрация: 24.3.2004
Где: Dublin

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



Цитата(ShurikA @  17.2.2007,  23:55 Найти цитируемый пост)
у каждой библиотеки есть свой манифест... Как с этим быть?

Посмотри что там написанно, если есть существенная информация, то добавь в итоговый манифест. Хотя врядли там написано, что-то важное.


--------------------
Disclaimer: this post contains explicit depictions of personal opinion. So, if it sounds sarcastic, don't take it seriously. If it sounds dangerous, do not try this at home or at all. And if it offends you, just don't read it.
PM MAIL WWW   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Java"
LSD   AntonSaburov
powerOn   tux
  • Прежде, чем задать вопрос, прочтите это!
  • Книги по Java собираются здесь.
  • Документация и ресурсы по Java находятся здесь.
  • Используйте теги [code=java][/code] для подсветки кода. Используйтe чекбокс "транслит", если у Вас нет русских шрифтов.
  • Помечайте свой вопрос как решённый, если на него получен ответ. Ссылка "Пометить как решённый" находится над первым постом.
  • Действия модераторов можно обсудить здесь.
  • FAQ раздела лежит здесь.

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

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Java tools & IDE's | Следующая тема »


 




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


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

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