Ломаем наяву EGOiST/TSRh (icq: 8507375) Хакер, номер #088, стр. 088-074-7 Wikipedia: Обфускатор Обфускатор (англ. obfuscator) — инструментальное программное обеспечение, позволяющее предотвратить или значительно осложнить обратную разработку программы даже при наличии исходного кода. В процессе обфускации исходный код преобразуется в запутанный код, менее читаемый и понятный для человека. Исходный текст: int COUNT = 100; float TAX_RATE = 0.2; for (int i=0; i<COUNT; i++) { tax[i] = orig_price[i] * TAX_RATE; price[i] = orig_price[i] + tax[i]; } Код после обфускации: for(int a=0;a<100;a++){b[a]=c[a]*0.2;d[a]=c[a]+b[a];} На уровне промежуточного кода В отличие от обычных языков, таких как C++ и Паскаль, компилирующих в машинный код, язык Java и языки платформы .NET компилируют исходный код в промежуточный код (байт-код), который содержит достаточно информации для адекватного восстановления исходного кода. По этой причине для этих языков применяется обфускация промежуточного кода. Усложнение исследования кода Как было сказано выше, декомпиляция программ Java и .NET достаточно проста. В этом случае обфускатор оказывает неоценимую помощь тем, кто хочет скрыть свой код от посторонних глаз. Зачастую после обфускации декомпилированный код вообще не компилируется, и вместо модификации исходного текста приходится довольствоваться патчем Java-кода. Оптимизация Обфусцированный код занимает меньше места, чем исходный, и зачастую выполняется быстрее, чем исходный. Современные обфускаторы также заменяют константы числами, оптимизируют код инициализации массивов и выполняют другую оптимизацию, которую на уровне исходного текста провести проблематично или невозможно. Проблема уменьшения размера важна, например, при программировании для сотовых телефонов на J2ME, где размер программы серьезно ограничен. WWW Архив мидлетов: http://www.getjar.com Сайт автора JavaBite: http://wl.h15.ru WARNING Описаные действия попадают под влияние статей 273 и 146 УК РФ. Ни автор, ни редакция не несут ответственности за применение этой информации. CD/DVD На диске ты найдешь все программы, которые использовались в этой статье. |