ВЗЛОМ JAVA-АППЛЕТОВ Андрей Каролик Xakep, номер #052, стр. 052-064-1 (andrusha@sl.ru) Практическое пособие с картинками ;) Хочется разместить у себя на паге что-нибудь этакое, интересненькое и продвинутое, чего нету у других: прикольную анимашку, заедательский скриптик, продвинутый ява-апплетик? Самому делать - долго и нудно ;), а хочется здесь и сейчас. Не вопрос. Существует множество сайтов, на которых толпы желающих выкладывают свои творения. Не скажу, чтобы гениальные, но порой встречаются очень неплохие задумки. С анимашками и скриптами просто: нашел, скачал, поимел ;). Апплеты же не всегда, к сожалению, распространяют из чистого альтруизма. В нагрузку с апплетом идет обязательная реклама автора, ненужные ссылки и прочие ограничения. Причем убрать эти дополнительные рекламные штучки автор предлагает сам, но за зеленые фантики. Его тоже можно понять - кушать хочет. Не пройдет! Захапаем на халяву. ЗАЩИТА Прежде чем ломать, проясню ситуацию - что нехорошего навешивают на апплеты, и с чем, собственно, предстоит бороться. Наиболее распространенных вариаций не так много, а особо изощренные методы рассматривать не буду, к тому же зачастую они представляют собой смесь более простых. Итак, в случайном порядке. ТРИАЛКИ Как и в обычных триальных прогах есть привязка к текущим дате и времени. То есть перед выполнением всех наворотов апплета стоит маленькая процедура, которая смотрит, какое нынче число, и сравнивает с забитой внутри отсчетной датой. Если разница превышает допустимую, то выбрасывается логический флажок, выполнение кода идет в обход основной процедуры, а тебе выдается сообщение типа "Твое время вышло, накрывайся белой простыней и ползи в сторону кладбища :)." И предлагается еще вариант: платишь N баксов и все будет ок. Триальный вариант встречается не так часто. В отличие от обычных прог, которые берут за отсчет день установки, апплет не устанавливается. Поэтому автор апплета отсчетную дату должен забивать вручную. ПРИВЯЗКА К ДОМЕНУ Распространенный вариант защиты. Апплет смотрит абсолютный адрес в инете, по которому ты его выкладываешь, и с помощью хитроумной мегаформулы высчитывает соответствующий ключ (обычно числовой), который необходимо ввести в качестве одного из параметров между тегами <applet> и </applet>. Если ключ не введен или не соответствует, то апплет начинает шалить: не работает, либо работает неполноценно и выдает страстные приветствия от автора :). ЛОКАЛЬНАЯ ВЕРСИЯ Другой вариант предыдущей защиты. Апплет смотрит, является ли абсолютный адрес, с которого его запускают, локальным. Если адрес локальный, то апплет работает без вопросов, а ты наслаждаешься заложенными в него возможностями. Но стоит выложить этот же апплет в инет, он начинает капризничать и посылать тебя на... сайт к автору за подробностями :). ДЕМО-ВСТАВКИ Наиболее популярная защита. Нет никаких привязок, и независимо от времени года апплет полностью работоспособен, но выдает всякую демо-лабуду. Либо статично где-нибудь в углу, либо в самом начале после запуска. Очень нервирует и вызывает желание оторвать автору как минимум голову :). |