Как раскодировать шаблон wordpress (4 часть)
На этот раз разработчики пытались скрыть код за конструкцией eval(base64_decode(gzuncompress(base64_decode($имя переменной)))) Создавать таких монстров можно при помощи кодировщика AROHA PHPencoder 1.11, ну а для раскодировки понадобится Гугль и немножко мозгов. Итак, одеваем маску, дезинфицируемся спиртом, берем скальпель и начинаем
0. Disclaimer
1) Не режьте по живому - не проводите таких экспериментов на рабочем сайте - для этого есть локалхост.
2) Notepad++ рулит.
3) Всякое раскодирование посвящено благородной цели проверки кода на вредоносность. Автор не несет ответственности за то, что вы там понаудаляли и какие лицензии нарушили
1. Диагноз
Имеем в файле код такого вида:
$QD8098EA5793D97898DF83C1D28D5253B="много-много букв"; eval(base64_decode(gzuncompress(base64_decode($QD8098EA5793D97898DF83C1D28D5253B))));
Не нужно быть РНР-гуру, чтобы понять - в переменной зашифрован нужный нам код, а вторая строчка его обрабатывает и выполняет.
2. Лечим.
Надежное средство борьбы с любыми разновидностями eval(base64_decode... легко гуглится: это замена eval на echo. В результате такой манипуляции интерпретатор РНР должен просто вывести результат преобразований на экран. Для большего удобства немного отформатируем вывод... и получаем следующее:
$QD8098EA5793D97898DF83C1D28D5253B="много-много букв"; $decoded =(base64_decode(gzuncompress(base64_decode($QD8098EA5793D97898DF83C1D28D5253B)))); echo "<textarea cols="120" rows="30">" . $decoded . "</textarea>";
Этот код сохраняем как отдельный РНР файл, заливаем его на локалхост, вызываем в браузере и...
3. WTF????
Ничего не изменилось...
$Q03B4A95B94D4E594CE653A4619F0C17D="много-много букв"; $decoded =(base64_decode(gzuncompress(base64_decode($Q03B4A95B94D4E594CE653A4619F0C17D)))); echo "<textarea cols="120" rows="30">" . $decoded . "</textarea>";
Ну что? Самое время обозвать автора мудаком и уйти, хлопнув дверью... Или еще чуток пошевелим мозгами?
Точно ничего не изменилось? Присмотримся... Название переменной, хоть и такое же заковыристое, но другое! Да и в реальном коде те самые "многа-многа-букафф" тоже поменялись... Час гугления и копания в коде того самого AROHA PHPencoder 1.11 привел вот к такому объяснению - этот извращенец кодировщик проделывает свои черные дела с кодом три раза. Значит и нам придется сделать то же самое:
- берем полученный код
- повторяем пункт 2.
-..........
- PROFIT!!!!
4. Выводы
- на каждый хитрый eval найдется echo с винтом...
- применяющих такое кодирование надо анально казнить, потому что интерпретатору РНР приходится гонять немалый кусок кода три раза, а это отнимает драгоценные машинные ресурсы.
- если эта статья все же вам не помогла, тогда добро пожаловать... Разберемся
5. Лирическое отступление
То, что сейчас творится у нас в/на Украине, иначе как ЖОПА и не назовешь. Меня, как человека, хорошо помнящего советские времена, прямо колбасит от дежа вю... Совок возращается, и я не скажу, что рад этому. Можно много говорить, но делать только одно - ВАЛИТЬ отсюда.Чтобы дождаться чего-то позитивного - моей жизни точно не хватит. Куда - это вопрос личный, каждый решает по-своему. Желающим уехать в Португалию могу порекомендовать небольшой сайт. Автор подсобрал нужную инфу, да и обсуждение довольно-таки информативное... О своих личных планах - в середине месяца.
Комменты, однако, прошу по теме. Оффтоп буду удалять.

















40 комментариев к “Как раскодировать шаблон wordpress (4 часть)”