Закодированный javascript в шаблоне wordpress
Вечная гонка вооружений умов... Одни светлые головы кодируют нечто, другие- его раскодируют. Круговорот кода в интернете))) К чему я это? Да вот снова гении веб-дизайна заставили меня мучить Гугл.
Ну обо всём попорядку...
Сейчас я работаю над новым дизайном блога и поиски свеженьких шаблонов привели меня на сайт zenverse[точка]net. Богатый функционал бесплатных(!) шаблонов меня заинтересовал, а закодированный футер не испугал. Раскодировка футера со строками вида eval (base64_decode ('буквенно-числовая-абракадабра') описывалась мной в прошлой статье. Но вот что интересно - кроме футера ни в одном файле больше таких строк не наблюдалось. Попытка же изменить ссылки в футере приводила к белому экрану вместо сайта.
Пришлось искать не как обычно, а проверять все файлы без исключения на "артефакты". Нашлось )))
Целых три javascript файла интересного вида:
eval(function(p,a,c,k,e,r) {e=function(a) {.....и дальше нечитаемый набор символов}
После недолгих мучений Гугл выдал мне адресок, которым я с вами и делюсь:
Javascript unpacker and beautifier - здесь можно не только раскодировать, но и полученный javascript привести в красивый, удобочитаемый вид.
Просто копируем всю закодированную строку в форму, жмём beautify и радуемся жизни пытаемся выяснить, чего же нам нехорошего подсунули на этот раз...
После изучения всех трёх файлов, выявил в одном такой вот интересный участок кода:
function zv_getnumofimages2() { var a = new Array(); a[0] = ('<' + 'a' + ' ' + 'h' + 'r' + 'e' + 'f' + '=' + '"' + 'h' + 't' + 't' + 'p' + ':' + '/' + '/' + 'y' + 'o' + 'u' + 'r' + 'c' + 'h' + 'r' + 'i' + 's' + 't' + 'i' + 'a' + 'n' + 's' + 'p' + 'a' + 'c' + 'e' + '.' + 'c' + 'o' + 'm' + '"' + '>' + 'C' + 'h' + 'r' + 'i' + 's' + 't' + 'i' + 'a' + 'n' + ' ' + 'M' + 'y' + 's' + 'p' + 'a' + 'c' + 'e' + '<' + '/' + 'a' + '>').toUpperCase(); a[1] = ('<' + 'a' + ' ' + 'h' + 'r' + 'e' + 'f' + '=' + '"' + 'h' + 't' + 't' + 'p' + ':' + '/' + '/' + 'p' + 'i' + 'n' + 'g' + 'l' + 'e' + 'r' + '.' + 'c' + 'o' + 'm' + '"' + '>' + 'P' + 'i' + 'n' + 'g' + ' ' + 'S' + 'e' + 'r' + 'v' + 'i' + 'c' + 'e' + 's' + '<' + '/' + 'a' + '>').toUpperCase(); a[2] = ('<' + 'a' + ' ' + 'h' + 'r' + 'e' + 'f' + '=' + '"' + 'h' + 't' + 't' + 'p' + ':' + '/' + '/' + 'f' + 'r' + 'e' + 'n' + 'c' + 'h' + 't' + 'e' + 'a' + 'c' + 'h' + 'e' + 'r' + 'j' + 'o' + 'b' + 's' + '.' + 'c' + 'o' + 'm' + '"' + '>' + 'F' + 'r' + 'e' + 'n' + 'c' + 'h' + ' ' + 'T' + 'e' + 'a' + 'c' + 'h' + 'e' + 'r' + ' ' + 'J' + 'o' + 'b' + 's' + '<' + '/' + 'a' + '>').toUpperCase(); a[3] = ('<' + 'a' + ' ' + 'h' + 'r' + 'e' + 'f' + '=' + '"' + 'h' + 't' + 't' + 'p' + ':' + '/' + '/' + 'm' + 'a' + 't' + 'h' + 's' + 't' + 'e' + 'a' + 'c' + 'h' + 'e' + 'r' + 'j' + 'o' + 'b' + 's' + '.' + 'c' + 'o' + 'm' + '"' + '>' + 'M' + 'a' + 't' + 'h' + 's' + ' ' + 'T' + 'e' + 'a' + 'c' + 'h' + 'e' + 'r' + ' ' + 'J' + 'o' + 'b' + 's' + '<' + '/' + 'a' + '>').toUpperCase();
Если хорошенько присмотреться - это сылки - те самые, что мозолят мне глаза в футере... Что с ними делать- решу завтра, а заодно почитаю еще про кодировщик Дина Эдвардса, благодаря которому мне снова пришлось лопатить интернет.
Кстати, есть еще один способ раскодировки таких строчек (а вдруг отключили интернет?)
В текстовом редакторе, в самое начало закодированной строчки вставляем:
eval=alert;
тоесть у вас должно получиться:
eval=alert;eval(function(p,a,c,k,e,r) {e=function(a) {.....и так далее
после чего обновляем страницу сайта. В ответ браузер выдаст сообщение типа:

в котором будет уже читабельный код. Выделяем всё, копируем (Ctrl+A, Ctrl+C), вставляем в текстовый редактор. Получилось не так красиво, но все же читаемо.
upd Для тех, кому интересно - чем же закончилось дело - выкладываю раскодированный файл.
Тема Deligthed black от Zenverse, файл zenverse_gallery.js. Код проверки футера из файла не удалён а закомментирован - для наглядности.

















17 комментариев к “Закодированный javascript в шаблоне wordpress”