Как раскодировать шаблон wordpress

Post image of Как раскодировать шаблон wordpress

Сегодня мы займемся богомерзким не совсем этичным, но порой таким нужным делом — раскодировкой шаблонов wordpress.

Многие из вас видели в файлах шаблонов строки вида eval (base64_decode('тра-ля-ля')и задумывались- что там может быть?

Да всё, что угодно автору шаблона — от ссылок в футере, позволяющих автору иметь лишнюю копеечку на хлеб с икрой маслом, до вредоносного кода.

Поэтому хотя бы проанализировать, привести эти строчки в читаемый вид — будет полезно.

Начнем, как всегда, с азов, и да поможет нам К.О. Википедия...

Base64 — позиционная система счисления с основанием 64. Здесь 64 — это наибольшая степень двойки (2 в 6 степени), которая может быть представлена с использованием печатных символов ASCII.

Base64 — это схема, по которой произвольная последовательность байт преобразуется в последовательность печатных ASCII символов. Используются только символы латинского алфавита в верхнем и нижнем регистре — символы (A—Z, a—z), цифры (0—9), и символы «+» и «/», с символом «=» в качестве специального кода суффикса.

Чаще всего эта схема используется в электронной почте для так называемого транспортного кодирования.

В веб-дизайне такое кодирование несет скорее психологическую (отпугивающую новичков) функцию — раскодировать такие данные не составляет большого труда.

Рассмотрим практический пример раскодировки шаблонов от американского (во всяком случае, так показывает whois) сайта newwpthemes[точка]com.

Всем хороши шаблоны, созданные на основе Blueprint CSS Framework 0.8 , но выпущены они под лицензией Creative Commons и футер шаблона содержит 3-4 ссылки на неизвестные нам забугорные сайты.

Оставлю все морально-этически-лицензионные размышления на вашу совесть и просто покажу — что же пытался спрятать под кодом автор...

0. Disclaimer

disclaimer— всё что вы делаете, вы делаете на свой страх и риск, автор статьи не несёт абсолютно никакой ответственности за возможный ущерб.

— и вообще — проводить подобные «эксперименты» на рабочем сайте — невиданная глупость — используйте для этого специально созданный сайт на локалхосте.

— для правок используйте текстовые редакторы, позволяющие сделать «откат» исправлений, например Notepad++

1. Анализ

Действуем просто — открываем каждый файл шаблона в текстовом редакторе, набираем в поиске base64 и ищем...

Подробный просмотр файлов шаблона iBusiness выявил 4 закодированных строки в файле functions.php, две таких строки в header.php и предупреждение на расовом английском языке «не менять ссылки в футере, иначе сайт не будет работать».

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

license

2. Декодирование

Понятно, что каждый (ну почти каждый))) получивший такое вот непотребство, сразу же загорается желанием «насолить» автору )))

Для этого, тщательно копируем все закодированные строчки в Блокнот (лучше Notepad++) и пытаемся разобраться.

В декодировании нам поможет неплохой ресурс Free online base64 encoder and decoder .

Просто копируем буквенную абракадабру, следующую после eval (base64_decode (' и до ')); в форму на сайте и жмём decode.

Еще раз- дабы избежать лишних вопросов...

Есть строчка:

eval (base64_decode ('Y2hlY2tfdGhlbWVfaGVhZGVyKCk7'));

копируем

Y2hlY2tfdGhlbWVfaGVhZGVyKCk7

Вставляем в форму, жмём decode, получаем результат:

check_theme_header (); — потренируйтесь, если получилось нечто иное — значит- не так скопировали.

Ремарка — онлайн-декодеров в интернетах много, поэтому если вы пользуетесь другим сервисом — внимательно читайте правила пользования.

Теперь полученной раскодированной строчкой можно заменить исходную в шаблоне. Не забываем ставить теги <?php и ?> там, где это уместно.

Проверяем новую редакцию шаблона — всё должно работать.

В онлайн-декодере жмём reset data и повторяем всё вышеописанное с новой строчкой.

3. Чтение и понимание

Для этого пункта нам необходимо знание хотя бы азов PHP или, на худой конец, просто английского...

Нам важен сейчас смысл и действие, а не знания синтаксиса.

Смотрим, читаем, пытаемся понять...

/*functions.php*/
1)

eval(base64_decode('aWYgKCFlbXB0eSgkX1JFUVVFU1RbInRoZW1lX2xpY2Vuc2UiXSkpIHsgdGhlbWVfdXNhZ2VfbWVzc2FnZSgpOyBleGl0KCk7IH0gZnVuY3Rpb24gdGhlbWVfdXNhZ2VfbWVzc2FnZSgpIHsgaWYgKGVtcHR5KCRfUkVRVUVTVFsidGhlbWVfbGljZW5zZSJdKSkgeyAkdGhlbWVfbGljZW5zZV9mYWxzZSA9IGdldF9ibG9naW5mbygidXJsIikgLiAiL2luZGV4LnBocD90aGVtZV9saWNlbnNlPXRydWUiOyBlY2hvICI8bWV0YSBodHRwLWVxdWl2PVwicmVmcmVzaFwiIGNvbnRlbnQ9XCIwO3VybD0kdGhlbWVfbGljZW5zZV9mYWxzZVwiPiI7IGV4aXQoKTsgfSBlbHNlIHsgZWNobyAoIjxwIHN0eWxlPVwicGFkZGluZzoxMHB4OyBtYXJnaW46IDEwcHg7IHRleHQtYWxpZ246Y2VudGVyOyBib3JkZXI6IDJweCBkYXNoZWQgUmVkOyBmb250LWZhbWlseTphcmlhbDsgZm9udC13ZWlnaHQ6Ym9sZDsgYmFja2dyb3VuZDogI2ZmZjsgY29sb3I6ICMwMDA7XCI+VGhpcyB0aGVtZSBpcyByZWxlYXNlZCBmcmVlIGZvciB1c2UgdW5kZXIgY3JlYXRpdmUgY29tbW9ucyBsaWNlbmNlLiBBbGwgbGlua3MgaW4gdGhlIGZvb3RlciBzaG91bGQgcmVtYWluIGludGFjdC4gVGhlc2UgbGlua3MgYXJlIGFsbCBmYW1pbHkgZnJpZW5kbHkgYW5kIHdpbGwgbm90IGh1cnQgeW91ciBzaXRlIGluIGFueSB3YXkuIFRoaXMgZ3JlYXQgdGhlbWUgaXMgYnJvdWdodCB0byB5b3UgZm9yIGZyZWUgYnkgdGhlc2Ugc3VwcG9ydGVycy48L3A+Iik7IH0gfQ=='));
 
if (!empty($_REQUEST["theme_license"])) { theme_usage_message(); exit(); } function theme_usage_message() { if (empty($_REQUEST["theme_license"])) { $theme_license_false = get_bloginfo("url") . "/index.php?theme_license=true"; echo "&lt;meta http-equiv=\"refresh\" content=\"0;url=$theme_license_false\"&gt;"; exit(); } else { echo ("&lt;p style=\"padding:10px; margin: 10px; text-align:center; border: 2px dashed Red; font-family:arial; font-weight:bold; background: #fff; color: #000;\"&gt;This theme is released free for use under creative commons licence. All links in the footer should remain intact. These links are all family friendly and will not hurt your site in any way. This great theme is brought to you for free by these supporters.&lt;/p&gt;"); } }

Эта строчка при выполнении/невыполнении некоторых условий выводит лицензионное сообщение вместо сайта.

2)

eval(base64_decode('ZnVuY3Rpb24gY2hlY2tfdGhlbWVfZm9vdGVyKCkgeyAkdXJpID0gc3RydG9sb3dlcigkX1NFUlZFUlsiUkVRVUVTVF9VUkkiXSk7IGlmKGlzX2FkbWluKCkgfHwgc3Vic3RyX2NvdW50KCR1cmksICJ3cC1hZG1pbiIpID4gMCB8fCBzdWJzdHJfY291bnQoJHVyaSwgIndwLWxvZ2luIikgPiAwICkgeyAvKiAqLyB9IGVsc2UgeyAkbCA9ICdCdXkgRnJlZSA8YSBocmVmPSJodHRwOi8vd3d3LmJlc3RpbmNlbGxwaG9uZXMuY29tL3QtbW9iaWxlLmFzcCIgdGl0bGU9IlQtTW9iaWxlIFBob25lcyI+VC1Nb2JpbGUgUGhvbmVzPC9hPiB3aXRoIFBsYW5zLiB8IFRoYW5rcyB0byA8YSBocmVmPSJodHRwOi8vd3d3LmljZWxscGhvbmVkZWFscy5jb20vYnV5LXZlcml6b24tcGhvbmVzLXdpdGhvdXQtY29udHJhY3Qtbm8tcGxhbi8iIHRpdGxlPSJWZXJpem9uIFBob25lcyB3aXRob3V0IENvbnRyYWN0Ij5WZXJpem9uIFBob25lcyB3aXRob3V0IENvbnRyYWN0PC9hPiwgPGEgaHJlZj0iaHR0cDovL21tb2h1dC5jb20iPkZyZWUgTU1PUlBHIEdhbWVzPC9hPiBhbmQgPGEgaHJlZj0iaHR0cDovL2luY2luZXJhZG9yZGVncmFzYWVzcGVjaWFsLmNvbSI+SW5jaW5lcmFkb3IgRGUgR3Jhc2EgUmV2aXNpw7NuPC9hPic7ICRmID0gZGlybmFtZShfX2ZpbGVfXykgLiAiL2Zvb3Rlci5waHAiOyAkZmQgPSBmb3BlbigkZiwgInIiKTsgJGMgPSBmcmVhZCgkZmQsIGZpbGVzaXplKCRmKSk7IGZjbG9zZSgkZmQpOyBpZiAoc3RycG9zKCRjLCAkbCkgPT0gMCkgeyB0aGVtZV91c2FnZV9tZXNzYWdlKCk7IGRpZTsgfSB9IH0gY2hlY2tfdGhlbWVfZm9vdGVyKCk7'));
 
function check_theme_footer() { $uri = strtolower($_SERVER["REQUEST_URI"]); if(is_admin() || substr_count($uri, "wp-admin") &gt; 0 || substr_count($uri, "wp-login") &gt; 0 ) { /* */ } else { $l = 'Buy Free &lt;a href="http://www.bestincellphones.com/t-mobile.asp" title="T-Mobile Phones"&gt;T-Mobile Phones&lt;/a&gt; with Plans. | Thanks to &lt;a href="http://www.icellphonedeals.com/buy-verizon-phones-without-contract-no-plan/" title="Verizon Phones without Contract"&gt;Verizon Phones without Contract&lt;/a&gt;, &lt;a href="http://mmohut.com"&gt;Free MMORPG Games&lt;/a&gt; and &lt;a href="http://incineradordegrasaespecial.com"&gt;Incinerador De Grasa RevisiA?n&lt;/a&gt;'; $f = dirname(__file__) . "/footer.php"; $fd = fopen($f, "r"); $c = fread($fd, filesize($f)); fclose($fd); if (strpos($c, $l) == 0) { theme_usage_message(); die; } } } check_theme_footer();

Проверяет соответствие ссылок в футере заданным, если — нет, то DIE (думаю, в переводе не нуждается)))

3)

eval(base64_decode('Y2hlY2tfdGhlbWVfaGVhZGVyKCk7'));
 
check_theme_header();

Вызывает функцию check_theme_header

4)

eval(base64_decode('ZnVuY3Rpb24gY2hlY2tfdGhlbWVfaGVhZGVyKCkgeyBpZiAoIShmdW5jdGlvbl9leGlzdHMoImZ1bmN0aW9uc19maWxlX2V4aXN0cyIpICYmIGZ1bmN0aW9uX2V4aXN0cygidGhlbWVfZm9vdGVyX3QiKSkpIHsgdGhlbWVfdXNhZ2VfbWVzc2FnZSgpOyBkaWU7IH0gfQ=='));
 
function check_theme_header() { if (!(function_exists("functions_file_exists") &amp;&amp; function_exists("theme_footer_t"))) { theme_usage_message(); die; } }

А вот и эта функция) Проверяет наличие функций functions_file_exists и theme_footer_t (обе находятся в хэдере), если — нет, то — DIE.

/*header.php*/

5)

eval(base64_decode('ZnVuY3Rpb24gdGhlbWVfZm9vdGVyX3QoKSB7IGlmICghKGZ1bmN0aW9uX2V4aXN0cygiY2hlY2tfdGhlbWVfZm9vdGVyIikgJiYgZnVuY3Rpb25fZXhpc3RzKCJjaGVja190aGVtZV9oZWFkZXIiKSkpIHsgdGhlbWVfdXNhZ2VfbWVzc2FnZSgpOyBkaWU7IH0gfSB0aGVtZV9mb290ZXJfdCgpOw==')); 
 
function theme_footer_t() { if (!(function_exists("check_theme_footer") &amp;&amp; function_exists("check_theme_header"))) { theme_usage_message(); die; } } theme_footer_t();

Проверяет наличие функций check_theme_footer и check_theme_header (находятся в functions.php), если — нет, то — DIE.

6)

 echo get_theme_option("head") . "\n"; eval(base64_decode('ZnVuY3Rpb24gZnVuY3Rpb25zX2ZpbGVfZXhpc3RzKCkgeyBpZiAoIWZpbGVfZXhpc3RzKGRpcm5hbWUoX19maWxlX18pIC4gIi9mdW5jdGlvbnMucGhwIikgfHwgIWZ1bmN0aW9uX2V4aXN0cygidGhlbWVfdXNhZ2VfbWVzc2FnZSIpICkgeyBlY2hvICgiPHAgc3R5bGU9XCJwYWRkaW5nOjEwcHg7IG1hcmdpbjogMTBweDsgdGV4dC1hbGlnbjpjZW50ZXI7IGJvcmRlcjogMnB4IGRhc2hlZCBSZWQ7IGZvbnQtZmFtaWx5OmFyaWFsOyBmb250LXdlaWdodDpib2xkOyBiYWNrZ3JvdW5kOiAjZmZmOyBjb2xvcjogIzAwMDtcIj5UaGlzIHRoZW1lIGlzIHJlbGVhc2VkIGZyZWUgZm9yIHVzZSB1bmRlciBjcmVhdGl2ZSBjb21tb25zIGxpY2VuY2UuIEFsbCBsaW5rcyBpbiB0aGUgZm9vdGVyIHNob3VsZCByZW1haW4gaW50YWN0LiBUaGVzZSBsaW5rcyBhcmUgYWxsIGZhbWlseSBmcmllbmRseSBhbmQgd2lsbCBub3QgaHVydCB5b3VyIHNpdGUgaW4gYW55IHdheS4gVGhpcyBncmVhdCB0aGVtZSBpcyBicm91Z2h0IHRvIHlvdSBmb3IgZnJlZSBieSB0aGVzZSBzdXBwb3J0ZXJzLjwvcD4iKTsgZGllOyB9IH0gZnVuY3Rpb25zX2ZpbGVfZXhpc3RzKCk7')); wp_head(); 
 
function functions_file_exists() { if (!file_exists(dirname(__file__) . "/functions.php") || !function_exists("theme_usage_message") ) { echo ("&lt;p style=\"padding:10px; margin: 10px; text-align:center; border: 2px dashed Red; font-family:arial; font-weight:bold; background: #fff; color: #000;\"&gt;This theme is released free for use under creative commons licence. All links in the footer should remain intact. These links are all family friendly and will not hurt your site in any way. This great theme is brought to you for free by these supporters.&lt;/p&gt;"); die; } } functions_file_exists();

Еще проверки: наличие файла functions.php, функции theme_usage_message — если нет, то — лицензионное сообщение.

Подведем итоги: из шести закодированных строк только (2) проверяет ссылки в футере, остальные же проверяют друг друга «на наличие» и если хотя бы одной не будет — отключают сайт и и грозят анальной карой судом Божьим.

Строка (3) просто вызывает функцию проверки и может быть сразу безболезненно удалена.

4. Принятие решения

Решение, что же делать с ссылками в футере, нарушать или нет лицензию и прочее — оставляю лично вам.

Приведу просто возможные варианты:

1) Если изменить ссылки в строчке (2) на нужные вам, то теперь можно (и даже нужно!) заменить ссылки в футере на аналогичные. Остальные строчки можно тогда не трогать.

2) Если же вы решили избавиться от ссылок в футере, то все 6 строчек нужно удалить, единственное замечание — в строке (6) нужно удалить только закодированную часть — остальное оставить.

Вот как будет выглядеть строка (6) после удаления «лишнего»:

php echo get_theme_option("head") . "\n"; wp_head();

5. Резюме

Честно говоря — данный пример декодирования шаблонов — простейший.

Рассказать о всех видах кодирования в рамках одной статьи просто невозможно.

Так что я показал лишь методику, а дальше вы уж сами, благо — ресурсов для раскодировки множество да и Гугл никто пока не закрыл)))

Огромная просьба — не присылайте в комментарии куски кода для расшифровки. Такие комменты будут удаляться.

Если уж не справляетесь сами — помогу, но за некоторое вознаграждение в вебманях (5 WMZ) по факту.

Мой e-mail — на страничке «об авторе», присылать следует весь архив шаблона, а не отдельные файлы или куски кода.

Не обессудьте, если кому откажу — свободного времени не так уж и много.

P.S. Еще один хороший ресурс для раскодировки, на этот раз eval (gzinflate (base64_decode - Eval - Gzip - Base64 Decoder — читайте внимательно описание — на этом сайте в форму копируется полная строчка.

Опубликовано   7 марта 2010   в категории Строим сайт
Метки : , ,
Понравился пост? Не хотите пропустить продолжение? Подпишитесь на RSS!
Kotelloblog - блог интернетоголика
Или подпишитесь на обновления по e-mail:

В мемориз, однозначно!

Google Яндекс закладки I.ua Моё место Memori.ru Бобрдобр
Комментарии
Мар 31, 2010
17:44
#1 Димон(1 комментарий) :

Спасибо за мануал, разблокировал себе шаблончик «Mina» =)

Апр 1, 2010
9:19
#2 k0tello :

Рад, что смог вам помочь =)

Нравятся мне шаблоны от NewWPThemes, а кодируются все однотипно...

Апр 5, 2010
10:59
#3 Лера (2 комментария) :

Николай спасибо, а то меня замучали уже закодированые футеры =)

Апр 6, 2010
18:11
#4 azovfan(1 комментарий) :

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

Апр 6, 2010
20:23
#5 Лера (2 комментария) :

azovfan

Да ничего нудного, в основном только футер кодируют. Даже девчонки уже влегкую его раскодируют...скоро мы вообще власть в интернете захватим :-D

Апр 6, 2010
23:26
#6 k0tello :

ИМХО, если некто способен написать шаблон с нуля, то раскодировать футер для него — плёвое дело 8)

Апр 8, 2010
5:53
#7 Alina (5 комментариев) :

Здравствуйте. Подскажите пожалуйста на сайте NewWPThemes, у всех шаблонов футер закодирован. С чем это связано? Вредоносный код или ссылки и копирайты? *UNKNOWN*

Апр 8, 2010
9:26
#8 k0tello :

Alina, вредоносного кода в темах NewWPThemes не замечено =)

Обычные ссылки на продвигаемые автором сайты.

Апр 9, 2010
0:31
#9 Alina (5 комментариев) :

Спасибо, у Вас замечательный блог :)

Апр 11, 2010
16:24
#10 best-news(1 комментарий) :

Блог отличный, буду посещать регулярно! =)

Апр 13, 2010
8:16
#11 Dennis (2 комментария) :

Да,мануал хороший! Только я столкнулся с такой вот проблемой

как раскодировать вот такое? *UNKNOWN* Сразу хочу сказать перепробовал разные варианты:

________________________________________________

_________________________________________________

т.е. ве что касается base64 я расскодировал, но не могу связать это с :( может кто нибудь сталкивался с такой вот проблемкой...

Заранее всем спасибо за ответы.

Апр 13, 2010
8:18
#12 Dennis (2 комментария) :

а код нельзя сюда вставлять?

Апр 13, 2010
9:40
#13 k0tello :

Dennis, вставка кода в комменты не предусмотрена, да и бесполезно смотреть на кусочек кода — часто обращения к нему идут совсем из других файлов. Пришлите мне на мыло (kotello1971@gmail.com) весь шаблон — постараюсь помочь. Вам, как первому, кто попросил о раскодировке, постараюсь помочь безвозмездно, тоесть даром... :-D

Или пришлите в комменты хотя бы название шаблона...

Апр 14, 2010
18:20
#14 Ensase (3 комментария) :

Архиполезная фишка! Жаль раньше не знал. у меня на сайте висело 2 ссылки на чужие сайты =)

Апр 15, 2010
21:26
#15 Barbie (2 комментария) :

Спасибо, все получилось! Только теперь застряля на простом, немогу поменять цвет по бокам шаблона :(

Апр 15, 2010
21:51
#16 k0tello :

Barbie, если вы имеете в виду именно шаблоны от NewWPThemes, то в файле style.css, обратите внимание на строчку

body {
	background: #c4d1e1 url(images/background.png)  top left repeat-x;
	}

(взял из первого попавшегося шаблона NewWPThemes).

Нужно поменять цвет, плюс прийдётся править фоновое изображение в фотошопе. Будьте осторожны — это изображение используется и как фон для шапки сайта.

PS Хе-хе... всё-таки можно вставлять код и в комменты)

Апр 16, 2010
0:37
#17 Barbie (2 комментария) :

Да, именно это я и имела в виду, спасибо! Я немного умею пользоваться фотошопом поэтому получилось что надо. Теперь мой сайт преобразился в моих глазах! Спасибо, Спасибо!!! =)

Апр 18, 2010
23:12
#18 Дмитрий(1 комментарий) :

спасибо за подробную инструкцию, как раз себе приглядел шаблон, поставил на Денвер, а там не пойми что за ссылки внизу. Добро бы на сайт создателя темы, а то совсем левые какие-то ссылки.

Апр 23, 2010
12:38
#19 LUTERRR (6 комментариев) :

Увы, декодеры не всесильны!

Апр 26, 2010
23:49
#20 carerakjan(1 комментарий) :

не могу понять, что ж тут мучительного и ужасного в закодированном футере то... кушать не просит, не беспокоит, единственная радость автору за его труды, и той лишаете...)) не хорошо!.. *CRAZY*

а материал — неоценимый!! спс.

Апр 27, 2010
0:12
#21 Alina (5 комментариев) :

Далеко не факт, что в зашифрованном коде действительно ссылки на разработчика, а не какой-нибудь вредоносный код с sql инъекциями.

Июн 11, 2010
18:14
#22 Хорёг(1 комментарий) :

;) Респектую!

Спасибо. Раскодировал. Сейчас буду выжигать ненужное.

Цуко. Ну нафиг так борзеть — по три линка толкать

Июл 5, 2010
16:20
#23 IGor(1 комментарий) :

Спасибо!! А то весь инет перерыл и уже было отчаялся =)

Комментирование закрыто.

Предыдущая запись
«
Следующая запись
»

Последние твитыСледуй за мной

  • Твиты загружаются...
Проверка тиц pr
Карта Блоггеров
Каталог блогов

Powered by WordPress | Особая благодарность Sergeshk за руссификацию темы