eXeL@B —› Основной форум —› Java and Flexlm |
. 1 . 2 . 3 . >> |
Посл.ответ | Сообщение |
|
Создано: 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 |
|
Создано: 28 августа 2006 08:11 · Личное сообщение · #2 |
|
Создано: 28 августа 2006 09:30 · Личное сообщение · #3 |
|
Создано: 28 августа 2006 09:53 · Личное сообщение · #4 |
|
Создано: 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 |
|
Создано: 29 августа 2006 10:23 · Поправил: BfoX · Личное сообщение · #6 |
|
Создано: 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 |
|
Создано: 30 августа 2006 06:35 · Личное сообщение · #8 |
|
Создано: 30 августа 2006 10:22 · Личное сообщение · #9 |
|
Создано: 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 |
|
Создано: 31 августа 2006 07:14 · Личное сообщение · #11 agg пишет: В приложении ищется функция _l_pubkey_verify() (Или какая ?) патчится возвращаемое ей значение, затем используется sidogenerator. Находятся seed. В SDK генерится лицензия без CRO с этими seed и все ? раз уж все равно патчить - то патчи l_good_lic_key() и все. ну или lc_checkout() - чтоб вообще файл лицензии не надо было |
|
Создано: 04 сентября 2006 06:37 · Личное сообщение · #12 |
|
Создано: 17 мая 2010 10:47 · Личное сообщение · #13 Я тоже ковыряю джавовский FlexLM. Декомпилировав один из классов, нашел реализацию функций getVendorKeys(), getCroKeys() и getEncryptionSeeds(). Значения, которые они возвращают, прописаны . Там же нашел имена features, которые могут быть лицензированы. Теперь вопрос: что еще мне нужно, чтобы сгенерировать файл лицензии? |
|
Создано: 17 мая 2010 14:04 · Личное сообщение · #14 |
|
Создано: 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 . Таких программеров надо строго наказывать ) |
|
Создано: 18 мая 2010 08:52 · Личное сообщение · #16 |
|
Создано: 18 мая 2010 09:33 · Личное сообщение · #17 |
|
Создано: 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 |
|
Создано: 19 мая 2010 15:55 · Личное сообщение · #19 |
|
Создано: 19 мая 2010 18:14 · Личное сообщение · #20 |
|
Создано: 21 мая 2010 21:11 · Личное сообщение · #21 |
|
Создано: 22 мая 2010 09:13 · Личное сообщение · #22 Unnicked пишет: Да, известно. Собрал lmcrypt. Спасибо. Поздравляю. Сделана бОльшая часть работы ) Теперь осталось 2 задачи . Найти FEATURE и найти ENCRYPTION_SEEDs FEATURE находятся просто . Делаем фейковый файл лицензий , в который вносим любую FEATURE и дату окончания лицензии и подписываем его утилитой lmcrypt.exe (образцы файлов лицензий есть в SDK) Ищем вызов функции lc_checkout в программе , ставим на неё в отладчике брейкпойнт и при остановке на этой функции в отладчике мы увидим в стеке какие же всё-таки FEATURE и какой версии нужны излечаемой от жадности программе. Второй задачей будет поиск правильных сидов. Обе эти задачи давным давно расписаны по шагам . На сайте woodmann.com мануалов как грязи. |
|
Создано: 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 Если у кого есть возможность, гляньте, и посоветуйте, как можно отучить этот класс от вредности. Спасибо. |
|
Создано: 25 мая 2010 11:35 · Личное сообщение · #24 Unnicked у меня появилось стойкое желание самому сломать уже эту прогу. Патч не подходит или лицензия дело принципа? С выложеных файлов смущает LicenseKeeper.class с классами private boolean a(FeatureDescription featuredescription) private boolean c(FeatureDescription featuredescription) самое интересное должно быть в классе FeatureDescription. |
|
Создано: 25 мая 2010 11:57 · Личное сообщение · #25 yanus0 пишет: самое интересное должно быть в классе FeatureDescription. Вот этот класс: slil.ru/29198731 Может кто-нибудь помочь пропатчить его? Насколько я разобрался, достаточно будет, чтобы isAvailable() всегда возвращало TRUE, isExpired() - FALSE, а getQuantity() - какое-то большое число. Хотелось бы проверить, заработает в этом случае без лицензии или нет... |
|
Создано: 25 мая 2010 12:40 · Личное сообщение · #26 Unnicked да у вас там обфускация ява кода частичная! (есть норм. названия классов - ето считай что обфукации то и нет ) ну что, кинув глазов увидел еще (о, спасибо разрабам!) дебаг логи! например if (logger.isDebugEnabled()) { logger.debug(D[77]); или if (logger.isInfoEnabled()) logger.info(D[82]); Вам надо покопаться и включить их обязятельно! как - читайте доки, скорее всего прога юзает log4j пакет, там есть конфиг файл в котором можно проставить макс. уровень дебага если прога небольшая и есть возможность глянуть - киньте в ПМ Удачи |
|
Создано: 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 с соответствующим содержимым. Хотя в общем-то уже тема превращается плавно во флудотопик. |
|
Создано: 25 мая 2010 13:08 · Личное сообщение · #28 |
|
Создано: 27 мая 2010 12:50 · Личное сообщение · #29 Hugo Chaves пишет: Вполне возможно что в файле лицензий не хватает строки VENDOR_STRING с соответствующим содержимым. Нет, добавление этой строки не помогло. По поводу "desription" в логах - думаю, это просто кривой перевод. Скорее, имелось в виду, что на сервере FlexLM лицензия и features неполные. Ну, например, не хватает SIGN2. Кстати, я нашел класс-потомок VendorInfo, о котором писал выше agg. Однако с пропатчиванием есть проблемы, поскольку JAR подписан RSA и софтина дико ругается при отсутствии подписи. Если у кого есть идеи, поделитесь. Или случай можно относить к безнадежным? |
|
Создано: 27 мая 2010 14:44 · Личное сообщение · #30 |
. 1 . 2 . 3 . >> |
eXeL@B —› Основной форум —› Java and Flexlm |