Что показывает код страницы в вк. Как открыть исходный код страницы

Эта статья - дополнение к статье про деобфускацию скриптов. Здесь будут рассмотрены основные принципы шифровки и упаковки, слабые места защит, способы ручного снятия, а также универсальные инструменты для автоматического снятия упаковщиков и навесной защиты со скриптов JavaScript. В последнее время все чаще исходный код скриптов шифруется или пакуется. Этим начали увлекаться Яндекс, DLE и другие популярные проекты, а красивые байки про "заботу о пользователях", "экономию трафика" и прочую чушь выглядят очень смешно. Что ж, если кому-то есть что скрывать, значит наша задача вывести их на чистую воду.

Начнем с теории. Из-за особенностей выполнения JavaScript все шифровщики и упаковщики, несмотря на их разнообразие, имеют всего два варианта алгоритма:или как вариант:Второй способ чаще всего используется для защиты исходного html-кода страницы, а также разными троянами для внедрения в страницу вредоносного кода, например скрытого фрейма. Оба алгоритма могут комбинироваться, "навороченность" и запутанность расшифровщика может быть любой, неизменным остается только сам принцип.

В обеих случаях получается, что функциям eval() и document.write() передаются полностью расшифрованные данные. Как их перехватить? Попробуйте заменить eval() на alert() , и в открывшемся MessageBox"е вы сразу увидите расшифрованный текст. Некоторые браузеры позволяют копировать текст из MessageBox"ов, но лучше воспользоваться таким вот полуавтоматическим декодером:

  • < html >
  • < head >< title > JavaScript Decoder
  • < body >
  • < script type = "text/javascript" >
  • // Функция записи в лог результатов расшифровки
  • function decoder (str ) {
  • document . getElementById ("decoded" ). value += str + "\n" ;
  • < textarea id = "decoded" style = "width:900px; height:500px;" >
  • < script type = "text/javascript" >
  • Для примера возьмем какой-нибудь скрипт с Яндекса, посмотрев исходный код видим что-то нездоровое:

    Eval(function(p,a,c,k,e,r){e=function(c){return(c35?String.fromCharCode(c+29):c.toString(36))};if(!
    "".replace(/^/,String)){while(c--)r=k[c]||e(c);k=}];e=function(){return"\w+"};c=1};while(c--)if(k[c])
    p=p.replace(new RegExp("\b"+e(c)+"\b","g"),k[c]);return p}("$.1e
    .18=8(j){3 k=j["6-9"]||"#6-9";3 l=j["6-L"]||".u-L";3 m=j["6-L-17"]
    ||"";3 n=j["1d"]||0;$(5).2(".6-9").14("7");$(5).2(".6-9").Z("7",8(
    ){3 a=$(5).x();3 o=$(5).x();3 h=$(5).B("C");$(5).v("g-4");$(5).16(
    $(k).q());3 t=$(o).2("15");3 c=$(o).2(".b-r");3 d=$(o).2(".b-12");
    [остальной такой же бред отрезан]

    Сразу скажу, что этот скрипт обработан JavaScript Compressor , его легко узнать по сигнатуре - характерному названию фукнции в начале скрипта. Копируем целиком исходный текст скрипта, заменяем первый eval на decoder , вставляем в декодер и сохраняем его как html-страничку.Открываем ее в любом браузере и видим, что в textarea сразу появился распакованный скрипт. Радоваться пока рано, в нем убраны все переносы строчек и форматирование кода. Как с этим бороться написано в статье про деобфускацию .

    Второй пример. Вот html-страничка , накрытая программой HTML Protector. Это страница, демонстрирующая возможности программы, поэтому там задействованы все опции: блокировка выделения и копирования текста, запрет правой кнопки мыши, защита картинок, скрытие строки состояния, шифрование html-кода и т.д. Открываем исходный код, смотрим. В самом верху уже знакомый нам document.write и зашифрованный скрипт. Запускаем его через декодер, получаем функцию расшифровки основного содержимого:

    Code (JavaScript) :

  • hp_ok = true ;function hp_d01 (s ){ ... вырезано ... o = ar . join ("" )+ os ; document . write (o )
  • Заменяем в функции последний document.write на decoder и вставляем после нее все три оставшихся зашифрованных скрипта:

  • < script type = "text/javascript" >
  • // Сюда вставить зашифрованный скрипт, предварительно
  • // заменить в нем все вызовы eval() и document.write() на decoder().
  • hp_ok = true ;function hp_d01 (s ){ .... o = ar . join ("" )+ os ; decoder (o );
  • hp_d01 (unescape (">QAPKRV%22NCLEWC ....
  • hp_d01 (unescape (">QAPKRV%22NCLEWCEG? HctcQa ...
  • hp_d01 (unescape (">`mf{%22`eamnmp? !DDDDDD %22v ...
  • Для удобства в статье скрипты приводятся не полностью, вы же должны копировать их целиком. Открываем декодер в браузере и видим защитные скрипты, добавленные программой, и расшифрованный исходный текст страницы. Для удобства можно расшифровывать только третий скрипт, в котором содержится html-код страницы. Вот и вся защита. Как видите, ничего сложного. Аналогично снимаются и другие защиты html-страниц.

    От ручной расшифровки перейдем к автоматической. Для снятия защит первого типа я немного модифицировал уже известный вам скрипт Beautify Javascript и откомпилировал его в exe-файл. Он без проблем справляется с большинством виденных мной защит и упаковщиков JavaScript.

    Eval.JavaScript.Unpacker.1.1-PCL.rar (12,124 bytes)


    Для более сложных случаев придется пускать в ход тяжелую артиллерию. Это бесплатный проект , предназначенный для исследования троянов и другого вредоносного кода. Поскольку все программы, предназначенные для защиты авторского права, являются однозначно вредоносными, Malzilla поможет нам в борьбе с ними. Качаем (на сегодняшний день это 1.2.0), распаковываем, запускаем. Открываем вторую вкладку Decoder, в верхнее окно вставляем код зашифрованного скрипта, нажимаем кнопочку Run script .



    В папке eval_temp складываются все результаты выполнения функций eval(), в том числе и промежуточные. Их можно посмотреть, нажав на кнопку Show eval() results , текст откроется в нижнем окне. Его можно скопировать, вставить в верхнее окно и сразу же отформатировать нажатием кнопки Format code . Кроме декодера Malzilla имеет еще множество инструментов и настроек, позволяющих легко снять любую защиту со скриптов JavaScript.



    Также можно обратить внимание на еще один бесплатный инструмент для работы с зашифрованными скриптами - FreShow . Функций в нем поменьше, но вполне имеет место быть. С офсайта можно скачать демонстрационный ролик, показывающий пример работы с программой.

    Как видите, нет ничего сложного в снятии защиты со скриптов JavaScript и с html-страниц. Вы все еще продолжаете защищать свои поганые "аффтарские права"? Тогда мы идем к вам!

    HTML код это по сути и есть сама ваша страничка, он указывает то, как именно ваш сайт будет строиться и отображаться на дисплее пользователя. Как правило, этот код открытый, то есть любой пользователь может беспрепятственно его увидеть и прочитать. Если же вы по тем или иным причинам не желаете того, чтобы кто-угодно имел доступ к вашему коду , вы можете . Это подразумевает собой создание особого алгоритма, который кодирует ваш код , то есть прячет его первичный вид, делая недоступным для пользователей сайта. Когда и кому это может понадобится?Сделать такое шифрование может абсолютно любой веб-мастер или владелец сайта. Вопрос в том, на сколько это обоснованно и нужно. К примеру, если у вас обычная лендинг-страничка, сделанная по шаблону, и которая не отличается от других, нету смысла заниматься кодировкой, так как такой шаблон и так является общедоступным. В таком случае вряд ли кто-то будет заниматься копированием и изучением вашего кода. А вот если у вас сайт, который имеет уникальный дизайн, вы долго и кропотливо над ним трудились, или заплатили за это немалые деньги, то о кода все же стоит подумать. Очень часты случаи, когда владелец имеет сайт, в который было вложено немало сил, времени и денег, и через некоторое время тем или иным образом обнаруживает точно такой же сайт, с таким же дизайном и структурой, но на другом домене и хостинге. Очень часто владельцам сайтов об этом говорят в комментариях сами пользователи. В этом случае можно смело сделать вывод, что кто-то попросту скопировал HTML код вашего сайта и запустил его на своем. Что же делать чтобы обезопасить себя?От ситуаций копирования и использования без разрешения чужого HTML кода не так уж и просто себя обезопасить. Да и вообще если человек уже увидел ваш сайт, он даже и без кода сможет его дублировать, при условии наличия определенных знаний в сфере веб-разработки. Но, что касается самого HTML кода, то его можно зашифровать. Работает это на основе специального javascript-скрипта. С помощью нашего инструмента вы . При этом создается специальный скрипт, который предназначен для расшифровки. Работает это довольно-таки просто: когда посетитель переходит на ваш сайт, загружается зашифрованный код, понять который он не сможет. В этот же момент запускается созданный javascript, который расшифровывает код и отображает сайт на экране пользователя. При этом, сам посетитель не может увидеть настоящий код. Однако, в этом методе есть и небольшой недостаток. Есть пользователи в браузерах которых запрещен запуск javascript на сайте, в таком случае скрипт не запустится, соответственно HTML код не расшифруется и сайт не будет отображен. Но, расстраиваться не стоит, такая настройка браузеров встречается очень редко, можно сказать что на 99% браузерах разрешен запуск javascript. Как это сделать?Делается это очень просто, с помощью нашего инструмента. Все что от вас требуется это вставить ваш HTML код в поле на этой страничке, и нажать на кнопку для запуска шифрования. В результате, в другом поле вы получите уже зашифрованный код, который уже можно использовать непосредственно на вашем сайте.

    Просматривая бесчисленное множество сайтов в интернете, можно встретить такие, которые очень нам нравятся. Сразу же возникает ряд вопросов. Сайт сделан с помощью самописного кода или какой-нибудь CMS? Какие у него CSS стили? Какие у него мета-теги? И так далее.

    Существует много инструментов, с помощью которых можно извлечь информацию о коде страницы сайта. Но под рукой у нас всегда есть правая кнопка мыши. Её-то мы и будем использовать, на примере моего сайта.

    Как просмотреть код страницы?

    Чтобы посмотреть исходный код страницы сайта, нужно навести курсор мыши на любую область веб-страницы (за исключением изображений и ссылок). После этого нажать на правую кнопку мыши. Перед нами откроется окно с несколькими опциями (в разных браузерах они могут немного отличаться). В браузере Google Chrome, например, это команды:

    • назад;
    • вперёд;
    • перезагрузить;
    • сохранить как;
    • печать;
    • перевести на русский;
    • просмотр кода страницы ;
    • просмотреть код.

    Нам нужно кликнуть на просмотр кода страницы , и перед нами откроется html код страницы сайта.

    Просмотр кода страницы: на что обратить внимание?

    Итак, Html код страницы представляет собой пронумерованный список строк, каждая из которых несёт информацию о том, как сделан данный сайт. Чтобы быстрей научиться разбираться в этом огромном количестве знаков и специальных символов, нужно различать разные участки кода.

    Например, строки кода, находящиеся в внутри тега head содержат информацию для поисковых машин и веб-мастеров. Они не выводятся на сайт. Здесь можно увидеть, по каким ключевым словам продвигается эта страница, как написаны её title и description. Также здесь можно встретить ссылку, перейдя по которой узнаем о семействе google шрифтов, используемых на сайте.

    Если сайт сделан на CMS WordPress или Joomla, то это также будет видно здесь. Например, в этой области выводится информация о теме WordPress или шаблоне Joomla сайта. Увидеть её можно, прочитав содержание ссылок, выделенных синим цветом. В одной ссылке виден шаблон сайта.

    Например:

    //fonts.googleapis.com/css?family=Source+Sans+Pro%3A400%2C400italic%2C600&ver=4.5.3

    Мы увидим CSS стили шрифтов страницы. В данном случае используется шрифт. Это видно здесь – font-family: ‘Source Sans Pro’.

    Данный сайт оптимизируется с помощью сео-плагина Yoast SEO. Это видно из этого закомментированного участка кода:

    This site is optimized with the Yoast SEO plugin v3.4.2 — https://yoast.com/wordpress/plugins/seo/

    Вся информация, находящаяся внутри тега body, выводится браузером на экране монитора. Здесь мы видим html код страницы, а в самом низу находится код скрипта Яндекс метрики. Он облечён закомментированным тегом с текстом:

    /Yandex.Metrika counter

    Подводим итоги

    Проведя довольно поверхностный анализ кода главной страницы сайта, можно сделать вывод о том, с помощью каких инструментов сделана эта страница. Мы увидели на ней:

    • CMS WordPress;
    • Google шрифт Source Sans Pro;
    • тема WordPress – Sydney;
    • плагины Yoast;
    • счётчик Яндекс метрики.

    Теперь принцип анализа html кода страницы сайта вполне понятен. Совсем необязательно держать исследуемую страницу открытой в браузере. Сохранить код страницы себе на компьютер можно с помощью комбинаций клавиш ctrl+a, ctrl+c, ctrl+v. Вставьте её в любой текстовый редактор (лучше Notepad++) и сохраните с расширением html. Таким образом, вы в любое время сможете изучить её глубже и найти больше полезной для себя информации.

    Mozilla FireFox раскройте в меню раздел «Вид» и щелкните пункт «Исходный код ». Такой же пункт есть и в контекстном меню, которое , если щелкнуть правой кнопкой мыши текст страницы. Можно использовать и сочетание клавиш CTRL + U. Mozilla FireFox при этом не использует внешних программ - исходный код страницы с подсветкой синтаксиса будет открыт в отдельном окне браузера.

    В обозревателе Internet Explorer щелкните в меню раздел «Файл» и выберите «Править в Блокнот». Вместо названия Блокнот может быть написана другая , вы назначили в настройках браузера для просмотра исходного кода. По щелчку страницы правой кнопкой мыши выпадает контекстное меню, в котором тоже есть пункт, позволяющий открыть исходный код страницы во внешней программе - «Просмотр HTML-кода».

    В браузере Opera откройте меню, перейдите в раздел «Страница» и у вас будет возможность выбрать в подразделе «Средства разработки» пункт «Исходный код» или пункт «Исходный код фрейма». Такому выбору назначены горячие клавиши CTRL + U и CTRL + SHIFT + U соответственно. В контекстном меню, привязанном к щелчку страницы правой кнопкой мыши, тоже есть пункт «Исходный код». Opera открывает исходник страницы во внешней программе, которая назначена в ОС или в настройках браузера для редактирования HTML-файлов.

    Браузер Google Chrome безо всяких сомнений имеет лучшую организацию просмотра исходного кода. Щелкнув страницу правой кнопкой мыши, вы можете выбрать пункт «Просмотра кода страницы» и тогда исходник с подсветкой синтаксиса будет открыт на отдельной вкладке. А можете выбрать в том же меню строку «Просмотр кода элемента» и браузер в этой же вкладке откроет два дополнительных фрейма, в которых вы можете инспектировать HTML- и CSS-код любого элемента страницы. Браузер будет реагировать на перемещение курсора по строкам кода, подсвечивая на странице элементы, соответствующие этому участку HTML-кода.

    В статье будут рассмотрены основные принципы шифровки и упаковки , слабые места защит, способы ручного снятия, а также универсальные инструменты для автоматического снятия упаковщиков и навесной защиты со скриптов JavaScript .

    Скрытый текст

    В последнее время все чаще исходный код скриптов шифруется или пакуется. Этим начали увлекаться Яндекс, DLE и другие популярные проекты, а красивые байки про "заботу о пользователях", "экономию трафика" и прочую чушь выглядят очень смешно. Что ж, если кому-то есть что скрывать, значит наша задача вывести их на чистую воду.

    Начнем с теории. Из-за особенностей выполнения JavaScript все шифровщики и упаковщики, несмотря на их разнообразие, имеют всего два варианта алгоритма:

    Var encrypted="зашифрованные данные";
    function decrypt(str) {

    }
    // Выполнить расшифрованный скрипт
    eval(decrypt(encrypted));


    или как вариант:

    var encrypted="зашифрованные данные";
    function decrypt(str) {
    // функция расшифровки или распаковки
    }
    // Вывести на экран расшифрованные данные
    document.write(decrypt(encrypted));

    Второй способ чаще всего используется для защиты исходного html-кода страницы, а также разными троянами для внедрения в страницу вредоносного кода, например скрытого фрейма. Оба алгоритма могут комбинироваться, "навороченность" и запутанность расшифровщика может быть любой, неизменным остается только сам принцип.

    В обеих случаях получается, что функциям eval() и document.write() передаются полностью расшифрованные данные. Как их перехватить? Попробуйте заменить eval() на alert() , и в открывшемся MessageBox "е вы сразу увидите расшифрованный текст. Некоторые браузеры позволяют копировать текст из MessageBox "ов, но лучше воспользоваться таким вот полуавтоматическим декодером:


    JavaScript Decoder


    // Функция записи в лог результатов расшифровки
    function decoder(str) {
    document.getElementById("decoded").value+=str+"\n";
    }









    Для примера возьмем какой-нибудь скрипт с Яндекса, посмотрев исходный код видим что-то нездоровое:

    eval(function(p,a,c,k,e,r){e=function(c){return(c35?String.fromCharCode(c+29):c.toString(36))};if(!
    "".replace(/^/,String)){while(c--)r=k[c]||e(c);k=}];e=function(){return"\w+"};c=1};while(c--)if(k[c])
    p=p.replace(new RegExp("\b"+e(c)+"\b","g"),k[c]);return p}("$.1e
    .18=8(j){3 k=j["6-9"]||"#6-9";3 l=j["6-L"]||".u-L";3 m=j["6-L-17"]
    ||"";3 n=j["1d"]||0;$(5).2(".6-9").14("7");$(5).2(".6-9").Z("7",8(
    ){3 a=$(5).x();3 o=$(5).x();3 h=$(5).B("C");$(5).v("g-4");$(5).16(
    $(k).q());3 t=$(o).2("15");3 c=$(o).2(".b-r");3 d=$(o).2(".b-12");
    [остальной такой же бред отрезан]


    Сразу скажу, что этот скрипт обработан JavaScript Compressor , его легко узнать по сигнатуре - характерному названию фукнции в начале скрипта. Копируем целиком исходный текст скрипта, заменяем первый eval на decoder , вставляем в декодер и сохраняем его как html-страничку.


    // Сюда вставить зашифрованный скрипт, предварительно
    // заменить в нем все вызовы eval() и document.write() на decoder().
    decoder(function(p,a,c,k,e,r){e=function(c){return(cQAPKRV%22NCLEWCEG? HctcQa ...
    hp_d01(unescape(">`mf{%22`eamnmp? !DDDDDD %22v ...


    Для удобства в статье скрипты приводятся не полностью, вы же должны копировать их целиком. Открываем декодер в браузере и видим защитные скрипты, добавленные программой, и расшифрованный исходный текст страницы. Для удобства можно расшифровывать только третий скрипт, в котором содержится html-код страницы. Вот и вся защита. Как видите, ничего сложного. Аналогично снимаются и другие защиты html-страниц.

    От ручной расшифровки перейдем к автоматической. Для снятия защит первого типа я немного модифицировал уже известный вам скрипт Beautify Javascript и откомпилировал его в exe-файл. Он без проблем справляется с большинством виденных мной защит и упаковщиков JavaScript.

    Eval JavaScript Unpacker 1.1
    Eval.JavaScript.Unpacker.1.1-PCL.zip (12,073 bytes)

    Для более сложных случаев придется пускать в ход тяжелую артиллерию. Это бесплатный проект Malzilla , предназначенный для исследования троянов и другого вредоносного кода. Поскольку все программы, предназначенные для защиты авторского права, являются однозначно вредоносными, Malzilla поможет нам в борьбе с ними. Качаем последнюю версию (на сегодняшний день это 1.2.0), распаковываем, запускаем. Открываем вторую вкладку Decoder, в верхнее окно вставляем код зашифрованного скрипта, нажимаем кнопочку Run script .

    Функций в нем поменьше, но вполне имеет место быть. С офсайта можно скачать демонстрационный ролик, показывающий пример работы с программой.

    Как видите, нет ничего сложного в снятии защиты со скриптов JavaScript и с html-страниц. Вы все еще продолжаете защищать свои поганые "аффтарские права"? Тогда мы идем к вам!