Деобфускация бэкдора без единого буквенно-цифрового символа
5 min
Месяц назад я увидел интересный пост про PHP-шелл без единого буквенно-цифрового символа и сильно захотел понять, что же он делает. Кому интересно — под кат!
User
if ($mosConfig_offline == 1)
— наш сайт же не планирует быть в офлайне? Убиваем, ничего не экономим.if (file_exists( $mosConfig_absolute_path .'/components/com_sef/sef.php' ))
— неужели вы не знаете, существует ли файл на вашем сайте? Определяемся с тем, какая ветвь условия нужна нам и удаляем остальное. Экономия — время выполнения одного file_exists при каждом отображении страницы.$menu = new mosMenu( $database );
— очень часто состав меню в пределах сайта не меняется. Если так, то убиваем вызов запроса и переменной $menu присваем то, что должно получится (можно print_r'ом посмотреть).frontend login & logout controls
— кто-нибудь когда-нибудь видел, чтобы вызывался javascript внутри него? Убьем и его за компанию.$cur_template = $mainframe->getTemplate();
— у вас разные шаблоны на каждой странице? У меня обычно один, поэтому я делаю $cur_template = 'имя шаблона';
— экономим один запрос к базе. // display the offline alert if an admin is logged in
— это пугаться что ли от нечего делать? Тоже убрал.// loads template file
— мы ведь знаем, что наш шаблон сушествует, зачем нам лишняя проверка file_exists? и
. Да, я не глупый, я в силах написать программу или сделать скрипт на сайте, который это делает, но необходимо именно так. Заменять в текстовом процессоре ^p на ^p (^p — спецсимвол для обозначения абзаца в MS Word). Я читал помощь в OpenOffice, смотрел список спецсимволов и их обозначений, но тщетно, даже искал в интернете, но не нашел. Правда не особо старался, представляя вместо себя обычного ленивого пользователя.Подлым оккупантам не понравилось, что в деревне МегаМозгов они убили очень мало людей, и поэтому они решили усложнить задачу, они также взяли 100 МегаМозгов, поставили их в колонну друг за другом, так, что каждый предыдущий видит всех последующих. Но на этот раз взяли колпаки семи цветов (красного, оранжевого, желтого, зеленого, голубого, синего, фиолетового), надели их на МегаМозгов, так, что каждый МегаМозг не видит свой колпак. Начиная с самого последнего (того, который видит всех кроме себя) у каждого МегаМозга по очереди спрашивают цвет его шляпы, если он ошибается, его убивают. Но как всегда МегаМозги заранее договорились, как минимизировать число убитых. О чем договорились МегаМозги?
Подлые оккупанты захватили деревню мегамозгов, выстроили их друг за другом в колонну так, что каждый предыдущий видит всех последующих. На каждого мегамозга надели колпак черного или белого цвета так, что ни один мегамозг не видит свой колпак. Начиная с самого последнего (того, который видит всех кроме себя) у каждого мегамозга по очереди спрашивают цвет его шляпы, если он ошибается, его убивают. Но как раз на этот случай мегамозги заранее договорились, как минимизировать число убитых. О чем договорились мегамозги?(все ссылаются на braingames.ru, но на самом деле этот сайт — подлый плагиатор, задачка древняя, они переделали ее под свою специфику, — добавили везде мегамозгов, — и выдали за собственную)