Как расшифровать javascript код

Как расшифровать файл javascript?

Привет!
Подскажите как расшифровать в нормальный вид java-скрипт, который работает на iMacros?
Надо в скрипте добавить и изменить кое-что, чтобы лучше работал
Вот ссылка на скачивание : rgho.st/8mZ9WWb86
Буду ОЧЕНЬ благодарен людям, которые помогут!
Сам скрипт

var _0x6e0a=["\x72\x61\x6E\x64\x6F\x6D","\x66\x6C\x6F\x6F\x72","\x0A","\x55\x52\x4C\x20\x47\x4F\x54\x4F\x3D\x68\x74\x74\x70\x3A\x2F\x2F\x61\x64\x2D\x73\x6F\x63\x69\x61\x6C\x2E\x6F\x72\x67\x2F\x69\x6E\x2F\x65\x61\x72\x6E\x3F\x73\x6F\x63\x3D\x69\x6E\x26\x74\x79\x70\x65\x3D\x6C\x69\x6B\x65","\x53\x45\x54\x20\x21\x54\x49\x4D\x45\x4F\x55\x54\x5F\x53\x54\x45\x50\x20\x30","\x54\x41\x47\x20\x50\x4F\x53\x3D\x31\x20\x54\x59\x50\x45\x3D\x41\x20\x41\x54\x54\x52\x3D\x43\x4C\x41\x53\x53\x3A\x6F\x70\x65\x6E\x54\x61\x73\x6B\x3C\x53\x50\x3E\x62\x74\x6E\x26\x26\x4F\x4E\x43\x4C\x49\x43\x4B\x3A\x6F\x70\x65\x6E\x54\x61\x73\x6B\x2A\x3B\x26\x26\x48\x52\x45\x46\x3A\x6A\x61\x76\x61\x73\x63\x72\x69\x70\x74\x3A\x3B","\x57\x41\x49\x54\x20\x53\x45\x43\x4F\x4E\x44\x53\x3D\x35","\x53\x45\x41\x52\x43\x48\x20\x53\x4F\x55\x52\x43\x45\x3D\x54\x58\x54\x3A\x22\x34\x30\x34\x20\x4E\x6F\x74\x20\x46\x6F\x75\x6E\x64\x22","\x54\x41\x42\x20\x43\x4C\x4F\x53\x45","\x53\x45\x41\x52\x43\x48\x20\x53\x4F\x55\x52\x43\x45\x3D\x54\x58\x54\x3A\x22\u0417\u0430\u043A\u0430\u0437\x20\u0441\u0435\u0439\u0447\u0430\u0441\x20\u043D\u0435\u0434\u043E\u0441\u0442\u0443\u043F\u0435\u043D\x2E\x2E\x2E\x20\u0412\u043E\u0437\u043C\u043E\u0436\u043D\u043E\x2C\x20\u043E\u043D\x20\u0443\u0436\u0435\x20\u043F\u043E\u043B\u043D\u043E\u0441\u0442\u044C\u044E\x20\u0432\u044B\u043F\u043E\u043B\u043D\u0435\u043D\x2C\x20\u043B\u0438\u0431\u043E\x20\u0437\u0430\u0431\u043B\u043E\u043A\u0438\u0440\u043E\u0432\u0430\u043D\x20\u0438\u0437\x2D\u0437\u0430\x20\u043D\u0430\u0440\u0443\u0448\u0435\u043D\u0438\u0439\x2C\x20\u043B\u0438\u0431\u043E\x20\u0432\u044B\u043F\u043E\u043B\u043D\u0435\u043D\x20\u0438\u043C\u0435\u043D\u043D\u043E\x20\u0412\u0430\u043C\u0438\x2E\x20\x22","\x4F\x4E\x44\x49\x41\x4C\x4F\x47\x20\x50\x4F\x53\x3D\x31\x20\x42\x55\x54\x54\x4F\x4E\x3D\x4F\x4B\x20\x43\x4F\x4E\x54\x45\x4E\x54\x3D","\x57\x41\x49\x54\x20\x53\x45\x43\x4F\x4E\x44\x53\x3D\x31","\x54\x41\x47\x20\x50\x4F\x53\x3D\x31\x20\x54\x59\x50\x45\x3D\x41\x20\x41\x54\x54\x52\x3D\x43\x4C\x41\x53\x53\x3A\x73\x6B\x69\x70\x2D\x74\x61\x73\x6B\x2D\x62\x74\x6E\x26\x26\x48\x52\x45\x46\x3A\x6A\x61\x76\x61\x73\x63\x72\x69\x70\x74\x3A\x3B","\x57\x41\x49\x54\x20\x53\x45\x43\x4F\x4E\x44\x53\x3D\x32","\x53\x45\x54\x20\x21\x54\x49\x4D\x45\x4F\x55\x54\x5F\x53\x54\x45\x50\x20\x31\x35","\x53\x45\x41\x52\x43\x48\x20\x53\x4F\x55\x52\x43\x45\x3D\x54\x58\x54\x3A\x22\xA9\x20\x32\x30\x31\x36\x20\x49\x6E\x73\x74\x61\x67\x72\x61\x6D\x22","\x53\x45\x41\x52\x43\x48\x20\x53\x4F\x55\x52\x43\x45\x3D\x54\x58\x54\x3A\x22\u041A\x20\u0441\u043E\u0436\u0430\u043B\u0435\u043D\u0438\u044E\x2C\x20\u0434\u0430\u043D\u043D\u0430\u044F\x20\u0421\u0442\u0440\u0430\u043D\u0438\u0446\u0430\x20\u043D\u0435\u0434\u043E\u0441\u0442\u0443\u043F\u043D\u0430\x2E\x22","\x54\x41\x47\x20\x50\x4F\x53\x3D\x31\x20\x54\x59\x50\x45\x3D\x41\x20\x41\x54\x54\x52\x3D\x54\x58\x54\x3A\u041D\u0440\u0430\u0432\u0438\u0442\u0441\u044F","\x57\x41\x49\x54\x20\x53\x45\x43\x4F\x4E\x44\x53\x3D","\x55\x52\x4C\x20\x47\x4F\x54\x4F\x3D\x68\x74\x74\x70\x3A\x2F\x2F\x61\x64\x2D\x73\x6F\x63\x69\x61\x6C\x2E\x6F\x72\x67\x2F\x69\x6E\x2F\x65\x61\x72\x6E\x3F\x73\x6F\x63\x3D\x69\x6E\x26\x74\x79\x70\x65\x3D\x66\x6F\x6C\x6C\x6F\x77\x65\x72","\x54\x41\x47\x20\x50\x4F\x53\x3D\x31\x20\x54\x59\x50\x45\x3D\x42\x55\x54\x54\x4F\x4E\x20\x41\x54\x54\x52\x3D\x54\x58\x54\x3A\u041F\u043E\u0434\u043F\u0438\u0441\u0430\u0442\u044C\u0441\u044F"];function getRandomInRange(_0x7dc8x2,_0x7dc8x3)var n=_0x6e0a[2];for(;;);z0=iimPlayCode(_0x6e0a[4]+n+_0x6e0a[7]);if(z0>0);z=iimPlayCode(_0x6e0a[4]+n+_0x6e0a[9]);if(z>0)else 0);iimPlayCode(_0x6e0a[4]+n+_0x6e0a[17]);iimPlayCode(_0x6e0a[18]+getRandomInRange(3,5));iimPlayCode(_0x6e0a[8]);iimPlayCode(_0x6e0a[18]+getRandomInRange(15,20));iimPlayCode(_0x6e0a[3])>>;iimPlayCode(_0x6e0a[19]);for(i=0;i<6;i++);z0=iimPlayCode(_0x6e0a[4]+n+_0x6e0a[7]);if(z0>0);z=iimPlayCode(_0x6e0a[4]+n+_0x6e0a[9]);if(z>0)else 0);iimPlayCode(_0x6e0a[4]+n+_0x6e0a[20]);iimPlayCode(_0x6e0a[18]+getRandomInRange(3,5));iimPlayCode(_0x6e0a[8]);iimPlayCode(_0x6e0a[18]+getRandomInRange(15,20));iimPlayCode(_0x6e0a[19])>>>

Источник

Как расшифровать javascript код

Распаковка и расшифровка скриптов JavaScript

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

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

  1. var encrypted = ‘зашифрованные данные’ ;
  2. function decrypt ( str )
  3. // функция расшифровки или распаковки
  4. >
  5. // Выполнить расшифрованный скрипт
  6. eval( decrypt ( encrypted ));
  1. var encrypted = ‘зашифрованные данные’ ;
  2. function decrypt ( str )
  3. // функция расшифровки или распаковки
  4. >
  5. // Вывести на экран расшифрованные данные
  6. document . write ( decrypt ( encrypted ));

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

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

  1. < head >< title >JavaScript Decoder
  2. < script type = "text/javascript" >
  3. // Функция записи в лог результатов расшифровки
  4. function decoder ( str )
  5. document . getElementById ( ‘decoded’ ). value += str + ‘\n’ ;
  6. >
  7. < script type = "text/javascript" >
  8. // Сюда вставить зашифрованный скрипт, предварительно
  9. // заменить в нем все вызовы eval() и document.write() на decoder().

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

eval(function(p,a,c,k,e,r){e=function(c){return(c c/a)))+((c=c%a)>35?String.fromCharCode(c+29):c.toString(36))};if(!
».replace(/^/,String))while(c—)r[e(c)]=k[c]];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-страничку.

  1. < script type = "text/javascript" >
  2. // Сюда вставить зашифрованный скрипт, предварительно
  3. // заменить в нем все вызовы eval() и document.write() на decoder().
  4. decoder (function( p , a , c , k , e , r ) < e =function( c )

Открываем ее в любом браузере и видим, что в textarea сразу появился распакованный скрипт. Радоваться пока рано, в нем убраны все переносы строчек и форматирование кода. Как с этим бороться написано в статье про деобфускацию.

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

Заменяем в функции последний document.write на decoder и вставляем после нее все три оставшихся зашифрованных скрипта:

  1. < script type = "text/javascript" >
  2. // Сюда вставить зашифрованный скрипт, предварительно
  3. // заменить в нем все вызовы eval() и document.write() на decoder().
  4. hp_ok = true ;function hp_d01 ( s ) < . o = ar . join ( "" )+ os ; decoder ( o );
  5. hp_d01 ( unescape ( «>QAPKRV%22NCLEWC .
  6. hp_d01 ( unescape ( «>QAPKRV%22NCLEWCEG? HctcQa .
  7. hp_d01 ( unescape ( «>`mf

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

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

Eval JavaScript Unpacker 1.1 (pass: manhunter.ru)

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

Malzilla за работой

Malzilla за работой

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

Скрипт успешно расшифрован и отформатирован

Скрипт успешно расшифрован и отформатирован

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

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

Источник

Читайте также:  Phpmailer html in body
Оцените статью