ВЗЛОМ 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. Секундное дело - и исходники в кармане. |