Очень часто непосвященные люди задают вопросы вроде "Как расшифровать обфусцированный PHP-скрипт?", "Хороша ли защита PHP-скрипта обфускатором?" и даже "Помогите деобфусцировать! Вам же не сложно?". Цель этой статьи - показать, что обфускаторы дают в 90% случаев никакущую защиту (которая способна защитить только от людей, увидевших язык программирования первый раз в жизни). Снять ее можно обычно минут за 10-20, получив исходный PHP-скрипт в первозданном виде. Остальные 10% случаев - это немного усложненная защита, которая, впрочем, снимается теми же путями. Если вы желаете самостоятельно научиться снимать обфускацию со скриптов, то эта статья специально для вас!
Как я уже говорил выше, задача деобфускации PHP-cкриптов очень актуальна. Достаточно взглянуть на один популярный хак-форум:
На большинстве сайтов в качестве капчи используется картинка, подгружаемая в бинарном виде при обращении к некоему скрипту-обработчику. Реже встречаются капчи, отображаемые с использованием технологий Flash или Java. Плюс в использовании таких капч безусловно есть, но некоторые пользователи любят отключать подобные расширения, с целью обеспечения дополнительной безопасности при серфинге в интернете. Однако пятая версия основного языка разметки веб-страниц принесла с собой множество полезных нововведений. Одно из них - элемент canvas, который предназначен для создания растровых изображений с помощью JavaScript.
Соответственно, с помощью этого элемента и JS можно выводить изображения капчи в браузер, например, в виде массива точек, которые будут собраны в изображение с помощью JS. В чем смысл? Смысл в том, чтобы затруднить автоматизированное распознавание изображений.
Во-первых, можно придумать специфический формат хранения данных, который будет впоследствии декодироваться скриптом.
Во-вторых, можно упаковать и обфусцировать данные изображения, чтобы затруднить парсинг и навязать использование JS-интерпретаторов.
В-третьих, можно использовать специфичные для браузеров JS-«фичи», которые затруднят работу интерпретаторов.
В общем, есть, где развернуться.
И, наконец, вот простой пример подобной капчи (без маджонга и гейш). По идее должен нормально работать в FireFox, Opera, Chrome и IE9.
Исходный код: скачать
Написал простой движок немодерируемого чата на php+javascript.
Возможности:
[+] Вход в чат под выбранным никнеймом
[+] Смена никнейма
[+] Список участников
[+] Действия с участниками, аналогично mIRC
[+] Команда /me
[+] Смайлы
[+] Антифлуд
[+] Поддержка модулей (в движке уже есть несколько написанных для примера - время, транслитератор, печать строки наоборот, получение случайной цитаты с bash.org.ru, получение погоды, отображение списка модулей, отображение списка смайлов, курсы валют, определение PR и ТИЦ сайта)
[+] Возможность включить базовую авторизацию, что позволяет как организовать публичный чат, так и приватный для какой-то группы людей
[+] Приватные сообщения
[+] Функции для администрирования чата
Чат имеет множество настроек, все они находятся в начале файла index.php. После настройки чата необходимо сохранить этот файл в UTF-8 без BOM.
Немного документации:
1. Установка
Установка не требуется. Достаточно просто скопировать все файлы и папки на хостинг и дать права на запись файлов в папке plltxe (кроме .htaccess).
Настройки чата находятся в файле index.php в секции CONFIG.
2. Команда /me
Введите в чат /me статус
для отображения своего статуса в окне чата.
3. Модули
Для вывода всех подключенных модулей введите /list
Модуль используется так: /имя_модуля необязательный_параметр
Например:
admin (23:50:46 23/03/2010): /currency Курсы валют: USD: 29.3389 rub; EUR: 39.6339 rub admin (23:51:18 23/03/2010): /weather москва Погода: Москва: +1..+3, Давление: 747, Ветер: З, 5 - 9 м/с
4. Администраторские команды
Если вы администратор чата, войдите под произвольным никнеймом и введите: /pass пароль_администратора Пароль должен быть задан в самом скрипте в секции настроек.
После успешной авторизации будут доступны следующие команды: /admin [Вася] rename Вася Пупкин
переименует пользователя Вася в Вася Пупкин
/admin [Вася] delete Удалит пользователя Вася из чата и заблокирует текущую сессию
Написал скрипт, позволяющий выдавать инвайты на любые сервисы. Пример его работы представлен тут.
В комплект уже включено 8 библиотек для выдачи инвайтов (Antigate, Captchabot, Три гнома, Eroprofit, Равшанкэш, RuSpyMoney, SMS-коровка, Stabile Money, спасибо Kaimi за помощь в их написании), но также можно писать и свои под другие сервисы. Скрипт легко встраивается на страницу сайта. Кодировка по умолчанию - UTF-8, если кому-то надо другую, можно перекодировать с помощью, например, Notepad++. В приложенном архиве лежит index.php - пример встраивания модуля на страницу сайта.
Как настроить скрипт?
Просто откройте файл invites_libs/list.php, раскомментируйте строки с сервисами, для которых желаете раздавать инвайты, и впишите свои логины и пароли к ним, после чего сохраните файл в UTF-8 без BOM (сделать это можно через тот же Notepad++). Остается просто встроить скрипт на страницу, и на этом настройка завершена.
Специально для владельцев блогов на движке WordPress написал небольшой плагин. Плагин позволяет выводить статистику с нескольких партнерских программ, например, в сайдбар блога.
Настроить плагин очень просто:
На данный момент плагин поддерживает следующие партнерские программы: 8coins, SMS Коровка, Fiesta, OstapCash.
Если Вы хотите, чтобы я добавил в плагин поддержку какой-либо партнерской программы - напишите об этом в комментариях, постараюсь сделать.
Несколько дней назад я привел пример реализации капчи-калькулятора, которую нельзя разгадать с помощью сервисов. Не так давно ко мне пришла еще одна идея - капча, вводимая мышью. Требуется четыре цифры расположить перетаскиванием в порядке возрастания. Из плюсов - быстрый ввод, не требуется несколько раз загружать картинку. Из минусов - обязательно включенный JavaScript в браузере.
Если вы владеете каким-то проектом, где есть возможность для пользователей отправлять сообщения на всеобщее обозрение (форумы, гостевые и т.д.), вероятно, вы не раз чистили спам. Практически все капчи сейчас можно распознать с помощью недорогих сервисов, таких, как антикапча. Но все же, есть возможность создать такую капчу, которую нельзя будет распознать. Идея не нова, впервые подобное я увидел на mail.ru.
Готовая реализация - вот:
Пример написан на php, никакого JavaScript, для отображения капчи используется ифрейм. Никаким образом, кроме как нажимать мышью по капче, ввести ее нельзя.
Достаточно давно написал скрипт TDS (системы распределения траффика), теперь решил выложить его в открытое пользование. Язык - PHP, вот основные возможности и характеристики:
[+] Поддержка одной схемы переадресации
[+] Простые и сложные правила
[+] Правила по стране, браузеру, IP-адресу или маске сети
[+] Ведение статистики по странам
[+] Ведение статистики по ip-адресам
[+] Ведение статистики рефереров с возможностью их указания вручную
[+] Ведение статистики уникальных либо неуникальных обращений
[+] Совместимость с PHP4 и PHP5
[+] Поддержка MySQL и файлов - на выбор
[+] Распознавание браузеров и версий популярных браузеров
[+] Правило по умолчанию
[+] Несколько типов редиректа (php, js, meta)
[+] Шифровщик ифрейма
[+] Массовое редактирование и удаление правил
[+] Подробный хелп
GeoIP очень старый в tds, поэтому лучше найти и использовать более свежий.
Самые последние версии браузеров не определяются, так как давно тдс не обновлял.
Все материалы сайта предоставлены исключительно в ознакомительных и обучающих целях. Ответственность за использование их в корыстных целях полностью ложится на Ваши плечи.