Как обратиться к классу, который в default package?
От: 0K Ниоткуда  
Дата: 09.01.11 14:11
Оценка:
Собственно такая проблема. Нужно обратиться из класса, расположенного в пакете, к классу, расположенному в default package. Переместить свой класс из пакета в default package возможности нет, т.к. на него ссылаются другие классы (а они скомпилены и их много).
Re: Как обратиться к классу, который в default package?
От: Skynin Украина skynin.blogspot.com
Дата: 09.01.11 14:30
Оценка:
Здравствуйте, 0K, Вы писали:

0K>Собственно такая проблема. Нужно обратиться из класса, расположенного в пакете, к классу, расположенному в default package. Переместить свой класс из пакета в default package возможности нет, т.к. на него ссылаются другие классы (а они скомпилены и их много).


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

В итоге, декомпильнул джарник, вник в код, алгоритмы, и написал свое. Повезло что небольшой был (работа с сервером древней доsql, древовидной БД в нем была)

Самому интересно, может плохо искал/думал?...
Re[2]: Как обратиться к классу, который в default package?
От: 0K Ниоткуда  
Дата: 09.01.11 14:42
Оценка:
Здравствуйте, Skynin, Вы писали:

S>В итоге, декомпильнул джарник, вник в код, алгоритмы, и написал свое. Повезло что небольшой был (работа с сервером древней доsql, древовидной БД в нем была)


У меня та-же самая проблема. Ковыряю библиотеку Cyberplat. Эти суки накой-то хрен засекретили свой алгоритм подписи. Идиоты! Ну кто алгоритмы секретит? Все равно злоумышленник их алгоритм расковыряет, а честным людям создадут. Ну дол"""бы что можно сказать. Уже столько времени потратил на их пикантропские мозги.

Самое главное на сайте демонстрационно открыли исходный код своей программы. А вот библиотеку для подписи, видителя "сами понимате, что мы не можем открыть модули, завязанные на безопасность". Я не понимаю такого идиотизма крайней степени.
Re[3]: Как обратиться к классу, который в default package?
От: 0K Ниоткуда  
Дата: 09.01.11 14:43
Оценка:
Здравствуйте, 0K, Вы писали:

0K>Все равно злоумышленник их алгоритм расковыряет, а честным людям создадут.


*а честным людям создадут неудобства
Re: Как обратиться к классу, который в default package?
От: C0s Россия  
Дата: 09.01.11 20:34
Оценка:
Здравствуйте, 0K, Вы писали:

0K>Нужно обратиться из класса, расположенного в пакете, к классу, расположенному в default package


default package предназначен для программ уровня helloworlrd, обращения к нему из нормальных пакетов не предусмотрены.
Re[2]: Как обратиться к классу, который в default package?
От: 0K Ниоткуда  
Дата: 09.01.11 23:59
Оценка:
Здравствуйте, C0s, Вы писали:

C0s>default package предназначен для программ уровня helloworlrd, обращения к нему из нормальных пакетов не предусмотрены.


Чем с успехом пользуются нехорошие люди, для трепания мне нервов.
Re[3]: Как обратиться к классу, который в default package?
От: Falsehood  
Дата: 10.01.11 13:26
Оценка:
Здравствуйте, 0K, Вы писали:

0K>Здравствуйте, C0s, Вы писали:


C0s>>default package предназначен для программ уровня helloworlrd, обращения к нему из нормальных пакетов не предусмотрены.


0K>Чем с успехом пользуются нехорошие люди, для трепания мне нервов.


в библиотеке Cyberplat, вроде, все немногочисленные классы в пакете org.CyberPlat.
Re[4]: Как обратиться к классу, который в default package?
От: 0K Ниоткуда  
Дата: 10.01.11 14:18
Оценка:
Здравствуйте, Falsehood, Вы писали:

F>в библиотеке Cyberplat, вроде, все немногочисленные классы в пакете org.CyberPlat.


Вы про какую библиотеку? Я про их мобильное приложение... В последней версии только один класс в пакете src, все остальные в корне. Но на web.archive.org нашел ссылку на самую первую версию, там все намного проще.

А вы про какую библиотеку? Если про приложение, то какая у вас версия?
Re[5]: Как обратиться к классу, который в default package?
От: Falsehood  
Дата: 10.01.11 15:02
Оценка:
Здравствуйте, 0K, Вы писали:

0K>Здравствуйте, Falsehood, Вы писали:


F>>в библиотеке Cyberplat, вроде, все немногочисленные классы в пакете org.CyberPlat.


0K>Вы про какую библиотеку? Я про их мобильное приложение... В последней версии только один класс в пакете src, все остальные в корне. Но на web.archive.org нашел ссылку на самую первую версию, там все намного проще.


0K>А вы про какую библиотеку? Если про приложение, то какая у вас версия?


я — про библиотеку IPriv. версию узнать проблематично: ни в одном документе она не указана. наверное, она-таки не для мобильных устройств.
Re[6]: Как обратиться к классу, который в default package?
От: 0K Ниоткуда  
Дата: 10.01.11 15:36
Оценка:
Здравствуйте, Falsehood, Вы писали:

F>я — про библиотеку IPriv. версию узнать проблематично: ни в одном документе она не указана. наверное, она-таки не для мобильных устройств.


Это обертка над ddl-кой jnipriv.dll чтоль? Вот это уродство: jnipriv.jar

Мне это их гавно не нужно, я люблю криптографию в чистом виде с открытым кодом. Они зачем-то код закрыли. Зачем? Пользователям проблемы создать.

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

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

Вам, кстати, не нужна их криптография на Java в исходных кодах? Реверснул их мобильное приложение, исправил ошибки реверса -- все компилируются. Но там такой бардак -- сейчас разбираюсь где там что. Смог публичный ключ выковырять -- там не нсложно. И даже расшифровал приватный, но с ним еще не все ясно.

Хотите помочь?
Re[7]: Как обратиться к классу, который в default package?
От: 0K Ниоткуда  
Дата: 10.01.11 18:25
Оценка:
Здравствуйте, 0K, Вы писали:

В общем, удалось расковырять их алгоритм.
Re[8]: Как обратиться к классу, который в default package?
От: abch-98-ru Россия  
Дата: 11.01.11 17:18
Оценка:
0K>В общем, удалось расковырять их алгоритм.

а я добрался ответить только сейчас.
если столкнёшься ещё с тем же — можно попробовать поиграть с байтами опираясь на два факта:
1) если бы существовал MyInterface с нужным методом в именованном пакете, а нужный тебе класс implements MyInterface,
то закастить к интерфейсу или Class.forName(нужный класс).asSubclass(MyInterface.class).newInstance(); без проблем.
2) до javac 1.4, это("достучаться" до unnamed package) было можно, т.е. нужно просто найти jdk 1.3 и скомпилить класс-wrapper этим jdk

к примеру, вот такой алгоритм скорее всего прокатит, если таки нет jdk1.3 :
0) добавить MyInterface c нужным методом в именованный package
1) добавить asm-ом, ну или jassist-ом "implement MyInterface" в нужный класс (в unnamed package-е).
2) вытаскивать в именованном пакете класс Class.forName(нужный класс).asSubclass(MyInterface.class).newInstance();
или кастовать к интерфейсу, если приходит ссылка на Object.

дисклеймер: вероятно, сложность однократной расшифровки алгоритма иногда проще )
Re[7]: Как обратиться к классу, который в default package?
От: LeonidV Ниоткуда http://vygovskiy.com
Дата: 11.01.11 19:19
Оценка:
Здравствуйте, 0K, Вы писали:
0K>Я уже расковырял публичный ключ и расшифровал приватный. С приватным, правда, еще не до конца разобрался, но надеюсь разобраться.
Ммм, вы теперь можете от имени киберплата (или что там) слать квитанции о мнимых оплатах?
http://jvmmemory.com — простой способ настройки JVM
Re[8]: Как обратиться к классу, который в default package?
От: 0K Ниоткуда  
Дата: 16.01.11 22:55
Оценка:
Здравствуйте, LeonidV, Вы писали:

0K>>Я уже расковырял публичный ключ и расшифровал приватный. С приватным, правда, еще не до конца разобрался, но надеюсь разобраться.

LV>Ммм, вы теперь можете от имени киберплата (или что там) слать квитанции о мнимых оплатах?

Нет, конечно. Просто могу не использовать их dll-ину -- все на чистой Java (в Google App Engine нет возможности их dll подключить). Вообще не понятно зачем они алгоритм засекретили.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.