Сейчас на форуме: rmn, exp50848, _MBK_ (+10 невидимых)

 eXeL@B —› Основной форум —› Java and Flexlm
. 1 . 2 . 3 . >>
Посл.ответ Сообщение

Ранг: 11.3 (новичок)
Активность: 0=0
Статус: Участник

Создано: 27 августа 2006 20:57
· Личное сообщение · #1

Повторюсь поскольку пропал предыдущий тред с этой темой.
Интересует Java Programmers Guide for flexlm 9, то что есть в SDK от 7 - совершенно не подходит.
Наворочено в 9 значительно поболе. А именно, интересует как в классе VendorInfo задаются
пользовательские seed1 seed2. Программист должен явно и вне java программы зашифровать реальные
seed. До 7 версии это делалось xor-ом на key5. В 9 это не прокатило. И странная фигня. Хотя в лицензии явно
длинные ключи, (CRO) в приложении нет ни одного certicom класса. Как это обьясняется ?
PLS намекните. Особенно про java Programmers Guide for flexlm 9

AGG



Ранг: 352.4 (мудрец), 4thx
Активность: 0.150
Статус: Участник
retired

Создано: 28 августа 2006 08:11
· Личное сообщение · #2

agg пишет:
Хотя в лицензии явно
длинные ключи, (CRO) в приложении нет ни одного certicom класса.


ECCPresso.jar есть?



Ранг: 397.0 (мудрец), 179thx
Активность: 0.170.1
Статус: Участник

Создано: 28 августа 2006 09:30
· Личное сообщение · #3

4Moderator: я может чего-то не понимаю - кто и зачем удаляет мои посты и ответы? или моя инфа для agg оказалась бесполезной?

-----
...или ты работаешь хорошо, или ты работаешь много...




Ранг: 352.4 (мудрец), 4thx
Активность: 0.150
Статус: Участник
retired

Создано: 28 августа 2006 09:53
· Личное сообщение · #4

Fox: они похерились при переносе форума



Ранг: 11.3 (новичок)
Активность: 0=0
Статус: Участник

Создано: 29 августа 2006 04:45
· Личное сообщение · #5

В общем разобрался. (ДЛЯ FLEXLM 9 С CRO)
ECCPresso.jar - нет такого.

Найти и вычислить seed похоже не возможно. (лицензия с CRO)
Зато возможны патчи и подмена лицензии.
ИТАК:

Ищется класс VendorInfo в дереве от /macrovision/flexlm. Если приложение
обфускачено - это отдельная песня. Дизасемблируй и смотри все подряд. В классе должно бать что-то вроде.
public abstract String a();
public abstract int[] b();
public abstract int[] d();
public abstract int[] c();
public abstract int a();
public abstract PublicKey a(int i);

В необфускаченном классе это:
public abstract String getVendorName();
public abstract int[] getEncryptionSeeds();
public abstract int[] getVendorKeys();
public abstract int[] getCroKeys();
public abstract int getDefaultStrength();
public abstract PublicKey getPublicKey(int i);

В приложении ищется потомок этого класса. В нем встретится "public class Myvendorinfo extends b"
(b это VendorInfo )
Опять-же как найти этот класс не могу посоветовать - ишите и обрящите.
Обычно именно в нем и формируются реальные VendorName, EncryptionSeeds,
VendorKeys и CroKeys. Патчит придется именно его. Он формируется вне вашего приложения специальным
классом из JAVASDK и у вас его делалки конечно нет, соответственно, как формируются нужные для java VendorName, EncryptionSeeds .... неизвестно. А теперь внимание: В приаттаченный файл и есть SDK класс для формирования пользовательского класса Myvendorinfo ИЗ ФАЙЛОВ ОБЫЧНОГО SDK. Т.е. генеришь в SDK лицензию со своими seed. И пользуясь нужными *.h из него находишь при помощи приаттаченного класса VendorName, EncryptionSeeds ... уже для твоих seed. (Формируешь Myvendorinfo класс) Патчишь или подменяешь ими Myvendorinfo класс и лицензии можешь генерить уже сам. В идеале нужно было бы скомпилить этот класс. Но у меня 1) почему-то в приложении нет серикомовских классов.
2) Все обфускачено и фиг чего соберешь. У кого необфускаченный flexlm это сделается легко. Я просто посмотрел, что делает этот класс и понял, что, откуда и куда нужно пропатчить )). Это оказалось проще чем найти нужные классы в приложении. Дальше просто -> javap (байткод) -> правка нужного класса -> для проверки jad. Хитрости правки байткода не обсуждаю, тут могут быть свои тараканы. Но это уже ремесло.

У меня получилось. Может и вам поможет.
Господа хацкеры не жмитесь - дайте Programmers Guide. Я же не прошу SDK для javы. С этой докой сделал бы все гораздо быстрее.



3f86_29.08.2006_CRACKLAB.rU.tgz - CreateVendorInfo.tar.bz2



Ранг: 397.0 (мудрец), 179thx
Активность: 0.170.1
Статус: Участник

Создано: 29 августа 2006 10:23 · Поправил: BfoX
· Личное сообщение · #6

agg пишет:
Господа хацкеры не жмитесь - дайте Programmers Guide.


Я ж говорю - нету его с 7.х
А то что есть-выдал.

И еще - вроде была инфа о том, что явой может юзаться внешняя дллка от Macrovision.

-----
...или ты работаешь хорошо, или ты работаешь много...




Ранг: 11.3 (новичок)
Активность: 0=0
Статус: Участник

Создано: 29 августа 2006 20:48
· Личное сообщение · #7

Для java до Flex8.х можно считать, что нет вообще никакой лицензии и защиты Flexlm-om. Очень все наивно. И даже лицензии можно не генерить, просто тупо срезать все нафик патчером. В 9 это не проходит. Вумные програмеры стали использовать классы защищенных хранилищ и прочие хитрые загогулины (Гады). В моем случае я не смог все срезать. Некоторые места даже понять не смог. Сильно обфускачено. Видимо приложение делали разные програмеры, и среди обыкновенных инде(и)йцев один оказался особенно хитрожопым. Там где просто и без выпендрежа - все понятно, и с алгоритмом и с байткодом, можно не генерить лицензии просто срезаешь критическое место правя байткод. Но один класс не поддался. Пришлось взяться за Flexlm. А так как он был явно с CRO, то я думал, что все безнадежно. Верной оказалась пословица- На каждую хитрую жопу есть свой х... винтом.
Внешняя дллка (.so library) от Macrovision тоже конечно может использоваться, только мне кажется это 1)Ограничение универсальности Java программ (привязки к ОС)
2)Снижение общей безопасности. (Мне например пришлось много чего прочитать про Java. Фактически изучить java машину и этот гадский язык, собрать инструменты, написать некоторое количество своих классов. C so библиотекой мне было бы проще разобраться, а dll и Win я совсем не знаю ( но зато инфы море. )
3)Java програмеры будут избегать такого унижения своего любимого языка (психология)

И поэтому в реальности использование внешних приблуд вjave встретится не часто.Тем более, что Macrovision
на сайте обьявила, что Flex для Java полностью функционален ))

Жаль что нет Programmers Guide. Ну да он уже и не актуален.

Удачи
AGG



Ранг: 352.4 (мудрец), 4thx
Активность: 0.150
Статус: Участник
retired

Создано: 30 августа 2006 06:35
· Личное сообщение · #8

agg

Java Programmers который они сами упоминают в доках у меня нет, но в sdk 7.2f одна из глав посвящена java api. в 8-ом sdk ее уже нет. нужен этот документ?



Ранг: 397.0 (мудрец), 179thx
Активность: 0.170.1
Статус: Участник

Создано: 30 августа 2006 10:22
· Личное сообщение · #9

ssxssx пишет:
....но в sdk 7.2f одна из глав посвящена java api. в 8-ом sdk ее уже нет. нужен этот документ?


не заморачивайся, до удаления моих постов я это все ему дал ;)

-----
...или ты работаешь хорошо, или ты работаешь много...




Ранг: 11.3 (новичок)
Активность: 0=0
Статус: Участник

Создано: 31 августа 2006 01:42
· Личное сообщение · #10

Да есть у меня все SDK до 9.2 включительно, Только, так как крякерством я занимаюсь очень и очень редко (примерно 1-2 раза в год) и исключительно на некомерческой основе и не применяю крякнутые продукты вне дома (только для изучения функциональности крякнитого), то естесственно доки в SDK смотрел 1 раз давно и по диагонали. Повторюсь. Если применен JavaFlex от 9, лучше даже не читать старые доки. Общими остались только названия. Собственно Programmers Guide заинтересовал меня потому, что в приложении использовались не только классы License и методы checkin, checkout, а еще мнго чего из кишок flexlm. Где-то это должно быть описано.

Вопрос по SDK не от java
Поскольку применение CRO во fleх стало повсеместным уточните пожалуйста. Итак - действия по кряку ?

В приложении ищется функция _l_pubkey_verify() (Или какая ?) патчится возвращаемое ей значение, затем используется sidogenerator. Находятся seed. В SDK генерится лицензия без CRO с этими seed и все ?

Скачал здесь LMV9GEN.exe и что в нем значат таинственные Captured Seed, Captured VendorKey1, Captured UniQ Key, Captured Order ? (Что такое vendorcode, job structure мне известно и я даже когда-то успешно пользовался сидогенераторм для Флекса7 :s3 Или это большой кулхацкерный секрет ?

С уважением
AGG



Ранг: 352.4 (мудрец), 4thx
Активность: 0.150
Статус: Участник
retired

Создано: 31 августа 2006 07:14
· Личное сообщение · #11

agg пишет:
В приложении ищется функция _l_pubkey_verify() (Или какая ?) патчится возвращаемое ей значение, затем используется sidogenerator. Находятся seed. В SDK генерится лицензия без CRO с этими seed и все ?


раз уж все равно патчить - то патчи l_good_lic_key() и все.
ну или lc_checkout() - чтоб вообще файл лицензии не надо было



Ранг: 7.0 (гость)
Активность: 0=0
Статус: Участник

Создано: 04 сентября 2006 06:37
· Личное сообщение · #12

ssx пишет:
раз уж все равно патчить - то патчи l_good_lic_key() и все.
ну или lc_checkout() - чтоб вообще файл лицензии не надо было


а вот фиг. Приложение (клиент) проверяет, что ему там сует сервер и отлупливает радостно...



Ранг: 12.5 (новичок)
Активность: 0.010
Статус: Участник

Создано: 17 мая 2010 10:47
· Личное сообщение · #13

Я тоже ковыряю джавовский FlexLM. Декомпилировав один из классов, нашел реализацию функций getVendorKeys(), getCroKeys() и getEncryptionSeeds(). Значения, которые они возвращают, прописаны . Там же нашел имена features, которые могут быть лицензированы.

Теперь вопрос: что еще мне нужно, чтобы сгенерировать файл лицензии?



Ранг: 512.7 (!), 360thx
Активность: 0.270.03
Статус: Модератор

Создано: 17 мая 2010 14:04
· Личное сообщение · #14

Unnicked
Если прога использует CRO keys - найти и вычислить seed не возможно.
Возможны патчи и подмена лицензии.
Проверьте точно ли у вас CRO и есть ли сертикомовкие файлы



Ранг: 128.8 (ветеран), 21thx
Активность: 0.060.05
Статус: Участник

Создано: 18 мая 2010 07:28 · Поправил: Hugo Chaves
· Личное сообщение · #15

sendersu пишет:
Если прога использует CRO keys - найти и вычислить seed не возможно.


Надо бы определиться в терминологии . CRO keys служат для проверки лицензиата SDK и у каждого вендора
они свои и они константные. Кейген же ходит для получения в зависимости от имени вендора и версии SDK как раз этих CRO ключей. Другое дело ENCRYPTION_SEED и LM_SEED . Они могут как вводится вендором самостоятельно , так и генерироваться утилитой из SDK . Если используются LM_SEED , то на их основе генерируются сигнатуры вида SIGN2 , также если используются только LM_SEED , то на их основе генерируются и ENCRYPTION_SEED . Если же LM_SEED НЕ используются , то вычислить все сиды и сделать валидную лицензию РЕАЛЬНЕЙ некуда. Не сказал бы , что совсем невозможно сделать валидную лицензию , если используются LM_SEED . Вроде бы ECDLP на 113 битных кривых решается . Правда компьютеров надо пару тысяч . И ещё 5 копеек внесу - бывают и ошибки программеров и они оставляют приват-ключи для получения сигнатур SIGN2 в своих программах. Так случилось с вендором geomaticLM . Таких программеров надо строго наказывать )



Ранг: 12.5 (новичок)
Активность: 0.010
Статус: Участник

Создано: 18 мая 2010 08:52
· Личное сообщение · #16

А как мне понять, используются CRO или нет? Демо-лицензии у меня нет, чтобы посмотреть, нужен SIGN2 или нет. Файл EccpressoAll.jar есть. Может, мне повезло и никаких CRO нет?



Ранг: 137.9 (ветеран), 45thx
Активность: 0.080
Статус: Участник

Создано: 18 мая 2010 09:33
· Личное сообщение · #17

Unnicked
может не в тему, но forum.tuts4you.com/ проскочила такая вещь, может пригодится forum.tuts4you.com/showtopic=22863&st=0&p=10904



Ранг: 128.8 (ветеран), 21thx
Активность: 0.060.05
Статус: Участник

Создано: 19 мая 2010 08:15 · Поправил: Hugo Chaves
· Личное сообщение · #18

Unnicked пишет:
А как мне понять, используются CRO или нет?


Я так понимаю что Вы разговариваете сами с собой ?

Я же написал , что для установки SDK , то есть для нормальной установки , чтобы генерировать
сигнатуры любого вида , используются ключи конкретные для каждого вендора (покупателя SDK FlexLM)
Если нет этих ключей (TRL или CRO - название зависит от версии) , то SDK не даст генерировать лицензии нормально.
В Инете ходит генератор этих ключей , генератор для того , чтобы установить SDK FlexLM.
Надеюсь хоть имя -то вендора Вам известно ?
Вот алго:
1) Ищите генератор
2) Ищите SDK
3) Ищите и ставите Visual Studio от Micro$oft
4) При правильном выполнении первых 3 условий Вы сможете установить SDK по нормальному.
Введя в генератор имя вендора и номер версии SDK вы получите некий текст , который надо правильно вставить в файл lm_code.h и потом собрать SDK , запустив команду build
5) После выполнения первых 4 условий Вы становитесь очень похожи на вендора , владельца SDK ,
за исключением всего 3 вещей :
- вендор знает LMSEED1-3
- вендор знает ENCRYPTION_SEED1-4
- и самое главное - вендор прочитал мануалы по FlexLM



Ранг: 397.0 (мудрец), 179thx
Активность: 0.170.1
Статус: Участник

Создано: 19 мая 2010 15:55
· Личное сообщение · #19

Hugo Chaves
> вендор знает ENCRYPTION_SEED1-4

имхо, не только вендор может знать ENCRYPTION_SEED1-2, а то и 3-4

-----
...или ты работаешь хорошо, или ты работаешь много...




Ранг: 128.8 (ветеран), 21thx
Активность: 0.060.05
Статус: Участник

Создано: 19 мая 2010 18:14
· Личное сообщение · #20

BfoX пишет:
имхо, не только вендор может знать ENCRYPTION_SEED1-2, а то и 3-4


Разговор шёл с Unnicked . Поэтому предположу , что эти сиды он не знает.
О других участниках разговора и речи не шло.



Ранг: 12.5 (новичок)
Активность: 0.010
Статус: Участник

Создано: 21 мая 2010 21:11
· Личное сообщение · #21

Hugo Chaves пишет:
Надеюсь хоть имя -то вендора Вам известно ?

Да, известно. Собрал lmcrypt. Спасибо.



Ранг: 128.8 (ветеран), 21thx
Активность: 0.060.05
Статус: Участник

Создано: 22 мая 2010 09:13
· Личное сообщение · #22

Unnicked пишет:
Да, известно. Собрал lmcrypt. Спасибо.


Поздравляю. Сделана бОльшая часть работы )
Теперь осталось 2 задачи . Найти FEATURE и найти ENCRYPTION_SEEDs
FEATURE находятся просто . Делаем фейковый файл лицензий , в который вносим
любую FEATURE и дату окончания лицензии и подписываем его утилитой
lmcrypt.exe (образцы файлов лицензий есть в SDK)
Ищем вызов функции lc_checkout в программе , ставим на неё в отладчике брейкпойнт и при остановке
на этой функции в отладчике мы увидим в стеке какие же всё-таки FEATURE и какой версии
нужны излечаемой от жадности программе.
Второй задачей будет поиск правильных сидов.
Обе эти задачи давным давно расписаны по шагам . На сайте woodmann.com
мануалов как грязи.



Ранг: 12.5 (новичок)
Активность: 0.010
Статус: Участник

Создано: 25 мая 2010 09:22
· Личное сообщение · #23

Hugo Chaves пишет:
FEATURE находятся просто

У меня оказалось еще проще - я нашел имена features в логах. Софтина писала открытым текстом: "Мне не хватает таких-то features"

Далее я создал файл лицензии, подписал его с помощью lmcrypt. Демон вендора запускается без проблем:
Server started on host for: (список features).

Однако основной проге этого недостаточно, она ругается в логах следующим образом:
WARN: Description for (имя feature) version (версия) could not be retrieved from FlexLM Server. Switch it state to not available.

В просмотре статуса лицензий видны все features и описания к ним, однако состояние у всех "недоступен".

Нашел класс, который отвечает за эту проверку и пишет этот лог. Класс залил сюда: slil.ru/29197883

Если у кого есть возможность, гляньте, и посоветуйте, как можно отучить этот класс от вредности. Спасибо.



Ранг: 137.9 (ветеран), 45thx
Активность: 0.080
Статус: Участник

Создано: 25 мая 2010 11:35
· Личное сообщение · #24

Unnicked
у меня появилось стойкое желание самому сломать уже эту прогу. Патч не подходит или лицензия дело принципа? С выложеных файлов смущает LicenseKeeper.class с классами
private boolean a(FeatureDescription featuredescription)
private boolean c(FeatureDescription featuredescription)
самое интересное должно быть в классе FeatureDescription.



Ранг: 12.5 (новичок)
Активность: 0.010
Статус: Участник

Создано: 25 мая 2010 11:57
· Личное сообщение · #25

yanus0 пишет:
самое интересное должно быть в классе FeatureDescription.

Вот этот класс: slil.ru/29198731
Может кто-нибудь помочь пропатчить его? Насколько я разобрался, достаточно будет, чтобы isAvailable() всегда возвращало TRUE, isExpired() - FALSE, а getQuantity() - какое-то большое число.

Хотелось бы проверить, заработает в этом случае без лицензии или нет...



Ранг: 512.7 (!), 360thx
Активность: 0.270.03
Статус: Модератор

Создано: 25 мая 2010 12:40
· Личное сообщение · #26

Unnicked

да у вас там обфускация ява кода частичная! (есть норм. названия классов - ето считай что обфукации то и нет )

ну что, кинув глазов увидел еще (о, спасибо разрабам!) дебаг логи!

например

if (logger.isDebugEnabled()) {
logger.debug(D[77]);

или

if (logger.isInfoEnabled())
logger.info(D[82]);

Вам надо покопаться и включить их обязятельно!
как - читайте доки, скорее всего прога юзает log4j пакет, там есть конфиг файл в котором можно проставить макс. уровень дебага

если прога небольшая и есть возможность глянуть - киньте в ПМ
Удачи



Ранг: 128.8 (ветеран), 21thx
Активность: 0.060.05
Статус: Участник

Создано: 25 мая 2010 12:55
· Личное сообщение · #27

Unnicked пишет:
Однако основной проге этого недостаточно, она ругается в логах следующим образом:
WARN: Description for (имя feature) version (версия) could not be retrieved from FlexLM Server. Switch it state to not available.



Вполне возможно что в файле лицензий не хватает строки VENDOR_STRING с соответствующим содержимым.

Хотя в общем-то уже тема превращается плавно во флудотопик.



Ранг: 137.9 (ветеран), 45thx
Активность: 0.080
Статус: Участник

Создано: 25 мая 2010 13:08
· Личное сообщение · #28

Unnicked
slil.ru/29199236
getQuantity() return 1000;
isAvailable() return true;
isExpired() return false;



Ранг: 12.5 (новичок)
Активность: 0.010
Статус: Участник

Создано: 27 мая 2010 12:50
· Личное сообщение · #29

Hugo Chaves пишет:
Вполне возможно что в файле лицензий не хватает строки VENDOR_STRING с соответствующим содержимым.

Нет, добавление этой строки не помогло. По поводу "desription" в логах - думаю, это просто кривой перевод. Скорее, имелось в виду, что на сервере FlexLM лицензия и features неполные. Ну, например, не хватает SIGN2.

Кстати, я нашел класс-потомок VendorInfo, о котором писал выше agg. Однако с пропатчиванием есть проблемы, поскольку JAR подписан RSA и софтина дико ругается при отсутствии подписи.

Если у кого есть идеи, поделитесь. Или случай можно относить к безнадежным?



Ранг: 512.7 (!), 360thx
Активность: 0.270.03
Статус: Модератор

Создано: 27 мая 2010 14:44
· Личное сообщение · #30

Unnicked
Unnicked пишет:
не хватает SIGN2

если ему ето надо - тогда только патч, не сгенериш лицуху


Unnicked пишет:
Однако с пропатчиванием есть проблемы, поскольку JAR подписан RSA и софтина дико ругается при отсутствии подписи.


удачи все МД5
ORIONSIG.RSA
ORIONSIG.SF
и в MANIFEST.MF поудаляй подписи
Ж)


. 1 . 2 . 3 . >>
 eXeL@B —› Основной форум —› Java and Flexlm
:: Ваш ответ
Жирный  Курсив  Подчеркнутый  Перечеркнутый  {mpf5}  Код  Вставить ссылку 
:s1: :s2: :s3: :s4: :s5: :s6: :s7: :s8: :s9: :s10: :s11: :s12: :s13: :s14: :s15: :s16:


Максимальный размер аттача: 500KB.
Ваш логин: german1505 » Выход » ЛС
   Для печати Для печати