Print This Post Отслеживание прогресса длительных операций в PHP

Четверг, 23. Октябрь 2014
Раздел: HTML/JS, PHP, Для новичков, автор:

php

Несмотря на то, что PHP чаще всего используется для создания сайтов и Web-сервисов, ни для кого не секрет, что его можно применять и для других задач, в том числе тех, которые могут выполняться достаточно длительное время. Например, когда вы рассылаете спам вконтактесоздаете дамп базы данных или, скажем, архивируете файлы на сайте, чтобы сделать бэкап, неплохо бы отобразить прогресс текущей операции. Но как это получше сделать? Именно об этом я вам и собираюсь рассказать.

Лично мне пришлось столкнуться с такой задачей, когда я разрабатывал свой PHP Obfuscator версии 2. Процесс обфускации толстых PHP-скриптов (или их большого количества) может оказаться достаточно долгим, и пользователю приятно будет видеть прогресс выполнения работы.

Читать дальше »

Print This Post Меняем Integrity Level процесса из ядра

Четверг, 2. Октябрь 2014
Раздел: C/C++, Windows, автор:

dxcat

Опять случился большой перерыв между публикациями в блоге, но, благодаря настойчивости dx'a, который в данный момент занят улучшением его библиотеки для работы с PE-файлами и продажей новой версии обфускатора PHP, в блоге все-таки появится новый пост. На этот раз он будет посвящен реализации очередного тривиального драйвера, который будет получать уведомления о новых процессах, запускаемых в системе и понижать уровень целостности (integrity level) заданного процесса до низкого.

Читать дальше »

Print This Post Фишечки PHP, о которых вы, скорее всего, не знали

Суббота, 9. Август 2014
Раздел: PHP, Это интересно, автор:

php

Можете нас поздравить - это двухсотая запись в блоге! А теперь перейдем к статье.

Всем айтишникам известно, что PHP - очень простой язык с низким порогом вхождения. Простой скрипт на нем сможет написать даже тот, кто не особо разбирается в программировании и не знает большинства синтаксических особенностей языка и приемов разработки на нем. Я сейчас занимаюсь написанием новой версии своего старого проекта PHP Obfuscator. Я переписываю его с нуля, чтобы он поддерживал все самые современные фичи последних версий PHP. Старый обфускатор (1.5) уже и в подметки не годится новому, хотя тот еще не дописан. Так вот, когда пишешь что-то подобное, волей-неволей оказываешься вынужден изучать синтаксис языка в мельчайших подробностях и узнаешь все его особенности и возможности. Поэтому я хочу рассказать о таких интересных свойствах языка PHP, о которых большинство людей, которые пишут на нем код, даже не слышали. Это малоизвестные или совсем новые возможности. Может быть, кто-то начнет их применять, потому что какие-то из них могут оказаться реально полезными. Многие вещи из тех, о которых я собираюсь рассказать, упомянуты в документации на PHP, но какие-то совсем не документированы. Какие-то же факты вас, вероятно, даже удивят. Кроме того, я хочу отдельно рассказать про метапрограммирование в PHP.

Читать дальше »

Print This Post Качалка видео для Collegehumor

Четверг, 24. Июль 2014
Раздел: Perl, Софт, автор:

collegehumor

Если вы задаетесь вопросом, почему на блоге ничего нового нет? То всё просто - dx умотал в Сиэтл и вернулся оттуда только на днях, именно поэтому вы еще не видели новый PHP обфускатор, обновление PE Bliss и прочие классные вещи. По приезду dx отправился на свой любимый ресурс, Collegehumor, чтобы посмотреть какое-нибудь смешное видео и, внезапно, впервые за пару лет, захотел его скачать, однако, проверенный временем плагин DownloadHelper для браузера Firefox ему не помог, так как ресурс отдавал видео фрагментами с каким-то непонятным расширением. В итоге dx предложил мне разобраться, как автоматизировать процесс скачивания видео с этого ресурса.

Я скачал swf-плеер, который используется на ресурсе, и даже декомпилировал его, но потом вспомнил, что сейчас во всю используется HTML5 и у такого крупного ресурса просто обязано быть решение, которое не завязано на Adobe Flash. Так оно и оказалось, стоило мне отключить Flash, как сайт стал использовать HTML5-плеер, что в общем-то решило проблему скачивания. Однако, я все же по-быстрому набросал скрипт на Perl, который качает видео по указанной ссылке с сайта или по идентификатору видео (работает только для тех видео, которые размещены непосредственно на CH).

ch

Скачать: collegehumor.pl

Print This Post Снимаем пароль с тестов MyTestX и easyQuizzy

Среда, 25. Июнь 2014
Раздел: Assembler, Для новичков, автор:

Время от времени сталкиваюсь с просьбами, касающимися программ для проведения компьютерного тестирования (MyTestX и easyQuizzy), которые заключаются либо в извлечении файла теста из .exe-файла (в случае с MyTestX), либо в открытии защищенного паролем теста.
Набросал "деревянный" последовательный мануал для тех, кому необходимо самостоятельно извлечь тест или сделать, чтобы редактор позволял открыть тест при вводе любого пароля.

Нам понадобится отладчик, например, OllyDbg и программа для упрощенной работы со структурой PE-файла, например, CFF Explorer, также нам понадобится редактор тестов (элементарно ищется в Google), который мы будем "исправлять", и файл, содержащий тест, который необходимо открыть.
Читать дальше »

Print This Post Архив постов блога

Пятница, 18. Апрель 2014
Раздел: Бред, автор:

vault

Сделал архив всех постов блога (пару-тройку совсем бесполезных постов выкинул) в виде набора PDF-файлов разбитых по годам. Архивы в формате ZIP, RAR, RAR5, TAR. Для RAR-архивов включена recovery record максимального размера, так что RAR варианты в 2 раза больше своих собратьев.

Контрольные суммы:

Скачать:
mega.co.nz: zip, rar, rar5, tar.
sendspace.com: zip, rar, rar5, tar.
thepiratebay: .torrent.

Print This Post Skype Preview – плагин предпросмотра ссылок в скайпе

Понедельник, 24. Март 2014
Раздел: C/C++, Windows, Софт, автор:

skype

Сидел я как-то в одном уютном чатике в Skype, и тут одному из участников в голову пришла весьма интересная идея: сделать плагин для скайпа, который позволял бы просматривать содержимое тех ссылок, которые вкидываются в чат, без их открытия. "А почему бы и нет?", - подумал я. Можно открывать картинки в уменьшенном варианте, если ссылка указывает на изображение (в том числе анимированные). А если ссылка ведет на обычную html-страничку, то можно отображать ее заголовок. Забегая вперед, покажу, что получилось:

plugin

Читать дальше »

Print This Post Что нового

Среда, 12. Март 2014
Раздел: Жизнь, автор:

Как вы можете видеть, в блоге снова наблюдается некоторый застой, однако, это не совсем справедливо. Что же было сделано?

Во-первых, dx добавил новый раздел - Софт, который вы можете наблюдать в меню сверху, этот раздел представляет собой каталог релизов блога, разбитый по актуальности, сложности использования и типу.

Во-вторых, мы начали переносить релизы с исходным кодом на GitHub. Зачем? Всё предельно просто: при написании очередного поста исходный код будет залит на блог и GitHub, но при внесении изменений в код, обновления будут происходить на GitHub (и совсем необязательно в блоге). Пример поста, обладающего исходным кодом на GitHub: Статический деобфускатор .bat-файлов (ленточка в правом верхнем углу экрана, чуть позже ссылка будет отображаться также в нижней или верхней части поста, так как dx говорит, что штуку в углу экрана сложно заметить). Со списком релизов, которые были перенесены на GitHub, можно ознакомиться по этой ссылке.

В-третьих, как всегда, мы начали обновлять и дополнять некоторые старые посты. Добавились исходные коды для PFX и KWM брутов, забытый сорс StepFucker'а. Добавилась более толстая база уязвимостей в Simple Engine Scanner. Теперь криптор-обфускатор JS/VBS/HTML поставляется в открытом виде (плюс он был доработан, в нем исправлены мелкие косяки и он теперь работает на последних версиях PHP). Также приведен в рабочее состояние скрипт из этой статьи про цепи Маркова, может, кому-то тоже пригодится (там черт ногу сломит в коде, но warning'и и deprecated-предупреждения убрались).

Ну и наконец, мы продолжаем писать новые статьи и выкладывать релизы, так что оставайтесь с нами!




Print This Post Оптимизация PHP-скриптов: практические советы

Пятница, 7. Февраль 2014
Раздел: PHP, автор:

coding

В этой статье речь пойдет о том, как оптимизировать какой-нибудь PHP-скрипт, чтобы он выполнялся как можно быстрее, затрачивая как можно меньше процессорного времени. Также я опишу некоторые простые техники оптимизации PHP-кода, которые я лично использовал, и которые принесли ощутимый результат. Я коснусь только вопроса оптимизации непосредственно PHP-кода и языка (без всяких оптимизаций запросов к БД, дополнительных расширений, кэширующих опкоды и т.д.). У меня такая задача появилась после написания одной из первых версий движка для проведения психологических тестов (расположен здесь). Скрипт был размещен на облачном хостинге, где веб-мастер платит деньги соразмерно величине израсходованных ресурсов, поэтому в моих интересах было оптимизировать скрипт таким образом, чтобы максимально снизить нагрузку.

Сразу скажу, что заниматься преждевременной оптимизацией не нужно. Стоит задуматься о переработке кода только в следующих случаях:
[+] ваш скрипт подолгу выполняется (например, делает какие-то занимающие длительное время операции в цикле);
[+] ваш скрипт очень часто выполняется (это был мой случай - иногда в день тест проходили порядка десяти тысяч человек - а это около миллиона обращений к скрипту в сутки);
[+] от используемых скриптом ресурсов зависит то, сколько денег вы платите. Если скрипт выполняется на обычном виртуальном хостинге и не превышает лимит нагрузки на процессор, то, скорее всего, можно и не париться;
[+] вы собираетесь массово распространять скрипт, и его будет использовать в конечном итоге множество людей, которым критично, сколько ресурсов скрипт потребляет.

Читать дальше »

Print This Post Статический деобфускатор .bat-файлов

Среда, 5. Февраль 2014
Раздел: C/C++, Windows, автор:

В последнее время неоднократно сталкивался с просьбами снятия примитивной обфускации с .bat-файлов. Обфускация строится на разбивании команд на отдельные символы, создании алиасов для них и последующей записи их с использованием алиасов. Возьмем следующий незамысловатый код:

После обфускации он будет выглядеть, например, следующим образом:

Для таких случаев набросал простенький деобфускатор на C++. Исходный код и скомпилированный бинарник прилагаю. Если будут проблемы с запуском - попробуйте не использовать Windows XP или скачать Visual C++ Redistributable Packages for Visual Studio 2013, возможно, поможет.

Скачать: batch-deobfuscator
Скачать исходный код: batch-deobfuscator-source