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

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

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

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


Код расшифровки

k=unescape("%0D%0A");

c1= iqe(ed);

document.write(c1);

function iqe(s){l=s.length;oh=Math.round(l/2);

J=_s();

J=J.replace(/`/g,"'");

J=J.replace(/@@/g,"\\");

f=/qg/g;

J=J.replace(f,k);

return J};

function _s(){_A = new Array(l);

a1=ed.substr(0,oh).split("");

a2=ed.substr(oh).split("");

for(i=0;i<oh;i++){j=2*i;

_A[j]=a1[i];

_A[j+1]=a2[i]};

return _A.join("")}

Это и есть код расшифровки текста, хранящегося в переменной ed. Остается решительный рывок перед победным концом – получением первозданного вида HTML документа. Теперь это проще простого, достаточно повторить уже использованный ранее прием. Удаляю из кода оператор вывода текста HTML в браузер (впрочем, можно его просто закомментировать), а на его место помещаю команды записи в файл. Надо заметить, что код, расшифровывающий тело документа, совсем не обязательно было приводить к читабельному виду – я это сделал просто из любопытства.

Пациент скорее жив

Вуаля. Мы получили расшифрованный файл, в котором содержится контент странички и блокирующие скрипты. Дальше – дело техники. Удаляю гордую надпись, которую забомбили создатели программы, а также все, что находится между тегами <script> и </script> . Теперь документ не имеет никаких ограничений на выделение, копирование и распечатку текста. Буфер обмена также становится доступным.

Резюме

На всю работу, начиная с открытия исходного файла и до получения его полноценной копии, я затратил не более десяти минут, да и то включая поход к холодильнику за очередной бутылочкой пива. Чтобы удовлетворить свое любопытство, я полез в интернет с целью подробного ознакомления с программой, защищающей контент. Трудно выразить мое удивление, а я до сих пор хочу со стороны посмотреть на свое лицо, когда я узнал, что эта софтина не написана на досуге программистом-любителем, а представляет собой коммерческий продукт, продающийся по весьма реальной цене. Производители сего детища на полном серьезе расписывают его потрясающие возможности по защите HTML-кода, изображений, ссылок, Java-апплетов, Java-скриптов. Дальнейшие странствия по всемирной паутине предоставили информацию еще о нескольких программных продуктах, имеющих то же предназначение. Авторы этих программ также на полном серьезе заявляют о защите контента, что при воспоминании об «HTML Guardian» вызывает лишь усмешку. Для расшифровки файлов, обработанных этой программой, не потребовалось ни глубокого знания скриптового языка, ни алгоритмов кодирования. Достаточно было лишь чуточку внимания и нестандартного подхода. Еще несколько минут – и у меня был бы скрипт, декодирующий любой файл, обработанный этой программой. Но я ведь не пишу вредоносное программное обеспечение и не посягаю ни на чьи авторские права.

Вместо заключения

Меня умиляют эти программисты, берущие деньги за «защиту», обход которой по плечу даже дилетанту. Давно пора понять: как бы ни был запутан JavaScript- или VBScript-код, какие бы хитроумные алгоритмы ни применялись, всегда найдется человек, у которого хватит терпения его расшифровать. Можно отключить меню браузера, можно создавать сайты целиком на Flash, можно разместить текст в виде графики, можно придумать еще массу всего. Но друг, ничего из этого тебе не поможет :). Так что если уж ты выкладываешь что-то на всеобщее обозрение в инет, не стоит разводить нюни и париться над какой-то мнимой защитой. Информация должна быть доступной, так что не фига - все равно поломаем.

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