ВЗЛОМ JAVA-АППЛЕТОВ

Андрей Каролик

Xakep, номер #052, стр. 052-064-2


ССЫЛКИ НА АВТОРА

Этот бред можно увидеть даже в якобы совершенно бесплатных апплетах. Я понимаю, что автор убил кучу времени и заработал натуральный геморрой, делая этот апплет :). Респект ему в больницу. Но я не хочу постоянно видеть его мыло или ссылку на сайт. Особо умные засовывают эту ссылку только на двойной клик или нажатие правой кнопки мыши. От этого, правда, не легче.

ПРИВЯЗКА К ПАРАМЕТРАМ

Достаточно распространенный вид защиты. Особенно для апплетов, в которых задается множество разнообразных параметров через теги <applet> и </applet>. Автор для халявщиков намеренно урезает диапазон их изменения или вообще жестко фиксирует. Дразнит конфеткой, зараза, дает облизать, но не дает скушать :).

ПРОЧЕЕ

К прочим можно отнести все другие мыслимые и немыслимые ограничения, которые может придумать воспаленный мозг разработчика апплета. Работает по схеме: это делает, то не делает, это делает, но только так, и т.п.

ПОДГОТОВКА

Самое смешное, что почти всегда апплеты полностью работоспособны. Это не случайно, так как автор хочет продемонстрировать все заложенные возможности, чтобы завлечь потенциального покупателя. Покупают пусть тупые толстосумы, а тебе нужно всего лишь избавиться от назойливой защиты от дураков. То есть необходимо банально удалить или подкорректировать в коде процедуры, с помощью которых осуществляется защита. Для этого нужны минимальные знания синтаксиса Java и исходник (читай java-файл). Синтаксис Java - отдельная и большая тема, так что читай умные книжки, ройся в мануале, смотри побольше исходников с комментариями и набирайся опыта. В конце концов, посмотри реальные примеры, на которых я ниже покажу, как надо корректно вычищать ненужный мусор из исходного кода. Исходники к "грязным" апплетам, естественно, не прилагаются. Но они не понимают, с кем имеют дело :), хватит и байт-кода (class-файл). Остальное за тебя сделает Java Code Viewer.

НУЖЕН ЛОМ

Если есть только байт-код, а нужен исходник, то спасает отличная программка - NMI's Java Code Viewer. Это декомпилятор и дизассемблер java-программ в одном флаконе. Как написано в мануале, прекрасный инструмент для исследования кода чужих программ.

Прога очень простая и без лишних наворотов в интерфейсе. Для работы нужно установить инструментарий JDK (Java Development Kit) не ниже версии 1.2, бесплатно утягивай его с http://java.sun.com. Java Code Viewer способен воссоздать исходный код (декомпилировать) из двоичных файлов Java классов (из байт-кода) и создать низкоуровневый java байтовый код. Последнее - это дизассемблирование, в нашем случае совершенно не нужно. На досуге можешь поиграться. Для наших целей понадобится только декомпиляция.

МАШЕМ ЛОМОМ

Запускаешь Java Code Viewer, предварительный прогрев не требуется :). Если хочешь после декомпиляции сразу получить *.java файл, то сделай установку Options -> Decompilation Format -> Java. По умолчанию пишет в *.nmi, чтобы случайно не записать поверх реального исходника, если он есть. В нашем случае его изначально нет. Если апплет заархивирован, то предварительно его разархивируй: File -> Extract Jar Archive (для *.jar) или File -> Extract Zip Archive (для *.zip). А далее выдели нужные классы (*.class), которые хочешь декомпилировать, и вперед: Process -> Decompile. Секундное дело - и исходники в кармане.

Назад на стр. 052-064-1  Содержание  Вперед на стр. 052-064-3

Hosted by uCoz