Print This Post Введение в Qt Quick 2 и QML

Среда, 20. Май 2015
Раздел: C/C++, HTML/JS, Windows, Для новичков, Софт, автор:

Решил тут ради интереса немного почитать про такую библиотеку, как Qt. Заинтересовала она меня именно в плане создания GUI, так как в C++ с этим достаточно туго, а Qt - одна из немногих кроссплатформенных библиотек, позволяющая удобно делать современные гибкие графические интерфейсы к программам. Раньше с ней совершенно никакого опыта работы я не имел, поэтому пару недель занимался неспешным чтением документации.

В какой-то из версий Qt (если не ошибаюсь, в 4.7) появилась возможность делать интерфейсы на декларативном языке QML 1.0 (и модуль QtDeclarative, определяющий всякие штуки для рисования интерфейсов), а в 5-й версии Qt появился QML 2.0 и QtQuick 2.0 (бывший QtDeclarative). Их я и стал изучать. В этой статье я расскажу об этих модулях в меру своих знаний, покажу пару несложных примеров их использования, а кто дочитает до конца статьи, получит еще один бонусный пример, который я написал, пока изучал библиотеку. :)

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

Print This Post Google Chrome и Secure Preferences

Суббота, 25. Апрель 2015
Раздел: C/C++, Perl, Windows, автор:

chrome_art

На нашем форуме и не только, с некоторой периодичностью люди интересуются алгоритмом генерации "защитного кода" в файле Secure Preferences для браузера Google Chrome.
Зачем он браузеру? Этот код используется для проверки целостности настроек расширений и некоторых других параметров, проще говоря - HMAC. Зачем он людям? Вероятно, это необходимый этап для тихой установки расширений или изменения настроек браузера. Давайте разберемся, где и как происходит генерация этих HMAC'ов.
Читать дальше »

Print This Post Редирект без HTTP Referer

Пятница, 27. Февраль 2015
Раздел: HTML/JS, PHP, Сниппеты, автор:

redirect

В различного рода работе (партнерки, лендинги и т.п.) нередко возникает вопрос - как переадресовать пользователя на другую веб-страницу, при этом чтобы его браузер не передавал HTTP Referer. В Интернете существует множество сервисов, которые просто заменяют Referer на свой собственный адрес, но это тоже не всегда желаемо. Так как же получить пустой Referer?

Есть один самый надежный путь:
1. Переадресовываем пользователя на HTTPS-адрес.
2. Далее, если целевой адрес HTTP, то переадресовываем туда.
3. Иначе, переадресовываем на наш HTTP-адрес, а оттуда уже на целевой.

Эта схема гарантированно очистит Referer, однако, она достаточно муторная и иногда требует нескольких редиректов.

Если же у вас нет возможности организовывать такую схему, или вы просто не хотите слишком париться на этот счет, или даже просто интересуетесь, какие есть еще способы, то эта заметка для вас. Я расскажу, как получить максимально кроссбраузерное решение, которое переадресует пользователя на целевую страницу с пустым реферером.

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

Print This Post Библиотека для работы с Web на PHP

Воскресенье, 25. Январь 2015
Раздел: PHP, автор:

logo

Давным-давно, когда в моде еще был PHP4, я написал несложную библиотеку на PHP для работы с Web. Эта библиотека была достаточно примитивной, состояла из одного-единственного класса, содержала какие-то ошибки, но, тем не менее, она работала и была вполне юзабельной, поддерживала различные типы прокси-серверов, chunked-содержимое, сжатое содержимое и еще всякие приятные мелочи.

Однако, пришло время расширить функционал библиотеки, а заодно и полностью переписать ее с использованием новых возможностей ООП PHP5.

Итак, вот основные фишки новой библиотеки в сравнении со старой (жирным отмечены самые интересные особенности):

Характеристика Websock2 Websock
PHP4 - +
Не требует cURL + +
HTTP + +
HTTPS + -
GET-и POST-запросы + +
Удобная работа с HTTP-заголовками + -
File uploads + -
Автоматическое отслеживание cookies + -
Автоматическая обработка HTTP-редиректов + -
Установка referer при редиректах + -
Basic-аутентификация + -
Digest-аутентификация + -
Автоматическая basic/digest аутентификация + -
Chunked encoding + +
GZIPped-содержимое + +
Deflated-содержимое + -
HTTP-прокси + +
HTTP-прокси в режиме HTTPS + -
SOCKS4-прокси + -
SOCKS4a-прокси + -
SOCKS5-прокси + +
Аутентификация прокси + +
Цепочки прокси + -
Отслеживание таймаутов операций + -
Сокеты через file и socket_*-функции + +
Перехват HTTP-редиректов + -
Перехват чтения HTTP-заголовков и содержимого + -
Скачивание/загрузка очень больших файлов + -
Сделано по RFC + -
Удобная архитектура, простая расширяемость + -

Как видно из таблицы, новая библиотека содержит намного больше функций, чем старая. Более того, новая библиотека хорошо задокументирована (на английском) и содержит большое количество примеров.

Скачать архив (библиотека + примеры + документация): Websock2
Просмотреть документацию и примеры использования

Пожелания и вопросы можно оставлять в комментариях к посту или на нашем форуме.

На GitHub

Print This Post Патчим байт-код Java на лету

Вторник, 23. Декабрь 2014
Раздел: Java, автор:

В то время, пока dx занимается поддержкой своего нового обфускатора и разработкой улучшенной версии класса для работы с HTTP на PHP, я подготовил небольшую статью, чтобы разбавить пустоту, царящую в блоге.

Речь пойдет о правке байт-кода Java, как видно из названия статьи. Когда-то давно я уже писал подобную статью про модификацию официального приложения VK под Android, но там я просто патчил байт-код, содержащийся в .class-файле. Теперь мы сделаем примерно то же самое, но на лету, без внесения изменений в файлы.

Начну с небольшой предыстории, зачем мне это вообще понадобилось (многие из моих статей все-таки связаны с какой-то реальной проблемой, которая у меня внезапно возникла). Итак: мне написал человек и попросил "помочь" с программой Lazy SSH. На первый взгляд программа ничем не выделялась, обычный .exe, определяемый PEiD, как: Microsoft Visual C++ 6.0 [Overlay]. Однако, наличие секции экспортов у исполняемого файла меня насторожило, а ее содержимое подсказало, с чем я имею дело: все экспортируемые функции обладали префиксом _Java_com_regexlab_j2e_, который недвусмысленно намекает, что программа на Java была чем-то преобразована в .exe. Google подсказал, что для этого был использован Jar2Exe от RegExLab. Также Google подсказал способ получения .jar-файла из исполняемого файла, по крайней мере для этого случая. Перейдем к делу.

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

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), который мы будем "исправлять", и файл, содержащий тест, который необходимо открыть.
Читать дальше »