7 февр. 2008 г.

Превед, Эндусы !

Давно не было у меня потребности в использовании Adobe Flex3 для написания чего бы то ни было, но сегодня подвернулся такой случай.
Создал простенький пример, компилю - ошибка Beta expired. Я в лёгком недоумении - до окончания срока действии лицензии для Flex3 Builder ещё 39 дней, откуда же этот Beta expired ???

Сразу две мысли - бить в гугл-бубен, и вторая - по наитию искать license.jar
Результат первого:

Resolving Flex 3 “Beta Expired” Error… - если просто то, смысл в следующем: кончился срок действия flex 3 beta 2 sdk, надо обязательно скачать новую версию и всё такое, либо использовать flex 2 sdk.

Ни то, ни другое - как-то не спортивно.
Смотрим, что нам приготовили братья-индусы из Adobe :
 public class License {
....
// _flddo, _fldint - private св-ва класса
// такие имена получили с лёгкой руки декомпилятора

public boolean isBeta() {
return _flddo;
}

public Calendar getExpirationDate(){
if(_fldint == null) {
_fldint = Calendar.getInstance();
_fldint.clear();
_fldint.set(11, 0);
_fldint.set(12, 0);
_fldint.set(13, 0);

// Calendar.YEAR = 1
_fldint.set(1, 2008);

// Calendar.MONTH = 2, Calendar.JANUARY = 0
_fldint.set(2, 0);

// Calendar.DAY_OF_MONTH = 5
_fldint.set(5, 31);
}
return _fldint;
}

public boolean isBetaExpired(){
boolean flag = false;
if(_flddo && Calendar.getInstance().after(getExpirationDate()))
flag = true;
return flag;
}

....
}
По использованию getExpirationDate() не трудно понять назначение этой магической даты 31.01.2008 - после неё пользоваться flex3 beta 2 sdk невозможно - есть у тебя инет, или нет, ребят из Adobe'а это не волнует - обязан обновит sdk.
Это ещё даже круче, чем принудительный перевод всех вендузятников на ie 7...
Вернёмся к нашим индусам - надо либо переводить системные часы, что вообще не спортивно, либо...
 public class License {
....
public boolean isBeta() {
// волшебным образом у нас становится не beta ;)
return false;
}

public Calendar getExpirationDate(){
if(_fldint == null) {
_fldint = Calendar.getInstance();
_fldint.add(Calendar.YEAR, 100);
}
return _fldint;
}

public boolean isBetaExpired(){
return false;
}
// и в таком же духе поправить прочие проверки:
// charting, compiler etc
....
}

Скомпилить, заменить обновлённой версией Licence.class в license.jar и положить обратно в "Flex Builder 3 Plug-in\sdks\3.0.0\lib\"

2 комментария:

Light комментирует...

Зачот :)

Andrew ``Bass'' Shcheglov комментирует...

Эх, нет на тебя signed jar'ов.

Ну а индусам -- низачот. Совсем защитить продукт не умеют.