Издательский дом ООО "Гейм Лэнд"ЖУРНАЛ ХАКЕР #69, СЕНТЯБРЬ 2004 г.

Против лома нет приема

Анализирующий

Xakep, номер #069, стр. 069-086-1


(analyst1945@mail.ru)

Взламываем систему защиты HTML-контента

Громкий процесс с участием Дмитрия Склярова, навечно вошедший в историю компьютерной индустрии, не послужил уроком производителям секьюрного ПО: они продолжают штамповать низкопробный софт для защиты данных. Сегодня ты научишься ломать документы, защищенные популярным инструментом HTML Guardian, а заодно поймешь, насколько убоги все эти программы.

О пользе чтения

Мое давнее увлечение, как ни банально это звучит, – книги. Я обожаю читать как бумажные, так и электронные издания, причем предпочтение отдаю последним. И на это есть как минимум две причины. Первая – они практически бесплатны. Всегда можно найти подходящую книгу на www.lib.ru и www.litportal.ru. И вторая: с электронной книги легко копировать цитаты, которыми можно козырнуть на ближайшей пьянке. Так было бы и в крайний, как говорят космонавты, раз, если бы меня не поджидал жуткий облом.

Гусь Обломинго

Привычный взмах мыши над приглянувшимся абзацем не оказал желаемого действия. Текст не выделялся. На клики правой кнопки мыши браузер также не реагировал. Не происходило ровным счетом ничего. В начале текста гордо красовалась надпись: «The source code of this page is protected by HTML Guardian». Видимо, параноидальный создатель файла не затруднил себя регистрацией программы. Хотя контекстное меню было отключено (или заблокировано, кому как нравится), оконное же осталось на своем месте. Быстро лезу в него: Вид -> Просмотр HTML–кода (даже если меню было бы отключено, я открыл бы файл в любом текстовом редакторе). И что я вижу? Пустой файл. Вернее, на первый взгляд, пустой. Весь тест смещен на несколько экранов вниз. Уловка для недоумков. Нажатая клавиша DEL и несколько секунд терпения исправляют обстановку.

Порядок прежде всего

Содержимое документа производит впечатление полной абракадабры: текст совершенно не читаем, нет разделений на строки и абзацы, ширина текста значительно превышает ширину экрана. Заменяю Блокнот на RPad, имеющий возможность неявного переноса строки. В том, что это HTML, а не что-то другое, убеждаюсь, найдя в начале и в конце документа стандартные теги: <html> , <head> и др. Небольшое форматирование проясняет ситуацию – весь контент страницы помещен в скрипт, находящийся в логическом заголовке между дескрипторами <script> и </script> . Язык скрипта не указан, но я знаю, что по умолчанию используется JavaScript.

Надо сказать, JavaScript я почти не знаю. Помню лишь какие-то общие сведения о синтаксисе, например, что после операторов ставится точка с запятой, а присваиваемые переменным значения помещаются между одинарными апострофами. Несколько минут старательно выстукиваю клавишей Enter после каждой комбинации символов: «’;». В этом мне успешно помогает поиск по тексту. Теперь весь код виден как на ладони. Результат отображается в браузере без изменений. Делаю резервную копию.

Что есть что

Приступаю к изучению структуры защитного скрипта. В начале присваиваются определенные значения двум переменным:

Содержание  Вперед на стр. 069-086-2