В предыдущей статье dx рассказывал о ручной методике снятия типовой и довольно распространенной защиты PHP-скрипта. Если проанализировать наиболее часто встречающиеся типы защиты (например, в разделе запросов на расшифровку на Античате), то можно заметить, что в большинстве случаев защита построена на максимальном сохранении исходного кода скрипта и использовании функции eval в конечном счете. Снимать такую защиту очень просто, но слегка занудно, поэтому я решил написать примитивную программу, которая осуществляет сие действо автоматически.
Чтобы пост не был унылым, я кратенько опишу, что из себя представляет анпакер. Итак, из-за своей лени я решил использовать php-cli, расширение для php (которое перехватывает eval) и сделать к этому простой GUI. Результирующая программа выглядит следующим образом:
Очень часто непосвященные люди задают вопросы вроде "Как расшифровать обфусцированный PHP-скрипт?", "Хороша ли защита PHP-скрипта обфускатором?" и даже "Помогите деобфусцировать! Вам же не сложно?". Цель этой статьи - показать, что обфускаторы дают в 90% случаев никакущую защиту (которая способна защитить только от людей, увидевших язык программирования первый раз в жизни). Снять ее можно обычно минут за 10-20, получив исходный PHP-скрипт в первозданном виде. Остальные 10% случаев - это немного усложненная защита, которая, впрочем, снимается теми же путями. Если вы желаете самостоятельно научиться снимать обфускацию со скриптов, то эта статья специально для вас!
Как я уже говорил выше, задача деобфускации PHP-cкриптов очень актуальна. Достаточно взглянуть на один популярный хак-форум:
Эта небольшая статья предназначена в первую очередь для тех людей, которые хотят определиться, какой же язык программирования изучить, чтобы и времени заняло немного, и написать на нем что-то более-менее серьезное можно было, и при этом еще и заработать. Заработок, конечно, подразумевается такой - написание небольших программ для рассылок, всевозможных чекеров-реггеров, словом, автоматизация работы с web. Если зайти на крупные форумы, такие как antichat.ru, zloy.org, xakep.ru и т.д., мы увидим большое количество объявлений "программистов" с предложениями своих услуг. На деле лишь немногие способны написать действительно стоящий продукт, и потребители знают, что заказывать написание софта следует с осторожностью, иначе можно случайно нарваться на вечно глючащее и плохо работающее г*вно. Разумеется, покупатели этого не хотят и в первую очередь требуют от исполнителя некоторое количество положительных отзывов, примеры работ и демо-версии.
Итак, мы плавно переходим к вопросу о том, как можно успешно закрепиться на рынке производства подобного софта. В первую очередь следует изучить годный язык программирования (об этом я расскажу далее). После некоторого освоения языка очень неплохо написать какую-либо несложную программу, демонстрирующую ваши возможности, которая была бы нужна людям. Конечно, нужно стараться все сделать хорошо, иначе потребители бесплатной программой пользоваться не будут, не говоря о том, чтобы в дальнейшем заказать у вас софт. По каким-то причинам многие разработчики делают откровенную лажу, а потом еще возмущаются, что пользователи недовольны и ничего не покупают. Второй вариант - делать демо-версию платного софта. Она должна иметь заранее урезанный функционал, чтобы ее нельзя было взломать, а полная версия должна продаваться независимо. Требование к хорошему качеству программы здесь также предъявляется. Читать дальше »
На большинстве сайтов в качестве капчи используется картинка, подгружаемая в бинарном виде при обращении к некоему скрипту-обработчику. Реже встречаются капчи, отображаемые с использованием технологий 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, для отображения капчи используется ифрейм. Никаким образом, кроме как нажимать мышью по капче, ввести ее нельзя.
Все материалы сайта предоставлены исключительно в ознакомительных и обучающих целях. Ответственность за использование их в корыстных целях полностью ложится на Ваши плечи.