|
ЗАЩИТА JAVA-АППЛЕТОВ Андрей Каролик Xakep, номер #053, стр. 053-066-3 - переменные разделяются на две и более самостоятельные переменные; - и т.п. НЕКОТОРЫЕ ТРАБЛЫ Вроде бы все очевидно - выбираешь самый навороченный обфускатор, выставляешь все настройки на максимум и обрабатываешь свой апплет. В реальности же не все так гладко, как в теории. Чем сложнее алгоритм защиты, тем больше вероятность того, что на выходе получится неработоспособный апплет. Страдают этим в первую очередь многие бесплатные обфускаторы, так как их толком никто не тестирует. Поэтому не забывай всегда делать проверочный запуск апплета. ГДЕ СКАЧАТЬ ОБФУСКАТОРЫ? В инете можно найти около двух десятков обфускаторов, но далеко не все они бесплатные. Ниже привожу адреса различных обфускаторов: как бесплатных, так и коммерческих. Поползай по всем, так как некоторые коммерческие проекты частенько выкладывают на своих сайтах демонстрашки (триалки) или бета-версии, которые полностью профпригодны. Zelix KlassMaster - http://www.zelix.com/klassmaster/download1.html JavaGuard - http://sourceforge.net/projects/javaguard ProGuard - http://proguard.sourceforge.net RetroGuard - http://www.retrologic.com/retroguard-download.html JCloak - http://www.force5.com/download.html DashO - http://www.preemptive.com/tools JProof 1stBarrier - http://www.jproof.com/products.html JZipper - http://www.vegatech.net/jzipper Cloakware - http://www.cloakware.com И для комплектности несколько ссылок на хорошие декомпиляторы: DCompiler - http://sourceforge.net/projects/dcompiler JAD - http://kpdus.tripod.com/jad.html NMI's Java Code Viewer - http://www.javacodeviewer.tk Mocha - http://www.brouhaha.com/~eric/computers/mocha.html SourceTech - http://www.srctec.com SourceAgain - http://www.ahpah.com В ДЕЙСТВИИ Хватит болтовни, показываю на реальном примере. В качестве подопытной крысы берем произвольный апплет из инета - http://javaboutique.internet.com/Fade. Он показывает в цикле тающие надписи, кликнув по которым, можно перейти по соответствующим ссылкам. Сам исходник здесь не привожу, так как он весит около 9 кило, утаскивай его с http://javaboutique.internet.com/Fade/Fade.java. При беглом изучении видно, что он содержит два класса (Thoughts и Fade), кучу методов, массивы, циклы, условные переходы и т.д. Одним словом, полный набор для эксперимента. ОБФУСКАТОР И ДЕКОМПИЛЯТОР Помучив несколько обфускаторов, я остановился на Zelix KlassMaster 4.0 (http://www.zelix.com/cgi-bin/download.pl). Помимо симпатичного и удобного интерфейса в этой программе реализованы все три рассмотренные защиты. Кроме того, есть незаменимый пошаговый помощник и подробная документация (на английском). Очень удобно, что исходный и полученный код можно просматривать непосредственно в Zelix KlassMaster. Одна беда - проект коммерческий и скачать ты можешь только демо-версию, в которой есть некоторые ограничения: обработать одновременно можно не более 5 классов, а изменение потока управления делается не более чем для двух методов в каждом классе. Но игра стоит свеч. Несмотря на ограничения, возможностей тебе хватит с лихвой. А в качестве декомпилятора я использовал NMI's Java Code Viewer v5.0, подробно описанный в статье "Взлом апплетов". |