EXE → MTX за секунды: JS-экстрактор для MyTestXPro

Разбирать MyTestX и MyTestXPro когда-то было целым квестом: нужен был отладчик (OllyDbg или x64dbg), виртуальная машина с Windows XP, утилита MyTestXProHelper и немного терпения... Все чтобы достать заветный .mtx из .exe-файла с тестом. Сегодня всё это превращается в "открыл страничку в браузере - указал файл - получил тест": новый клиент-сайд HTML/JS-скрипт без бэкенда делает всю работу прямо в вашем браузере.

Читать далее «EXE → MTX за секунды: JS-экстрактор для MyTestXPro»

Пишем простой модуль для Acunetix


Некоторое время назад в сканере уязвимостей веб-приложений Acunetix появилась возможность расширения функционала за счет добавления собственных модулей. На официальном блоге даже была опубликована заметка, описывающая общий подход к разработке модулей. Давайте напишем простой модуль на основе нее, а также моей прошлогодней заметки по созданию модуля для Nessus. С точки зрения функций модуль будет аналогичным: поиск на узле скрипта Adminer, старые версии которого позволяют читать произвольные файлы на сервере с помощью фичи MySQL LOAD DATA LOCAL INFILE.
Читать далее «Пишем простой модуль для Acunetix»

Подделываем результаты конкурсов на Twitch


Несколько лет назад на блоге уже была подобная статья про ВКонтакте, но время идет, стриминговые платформы в своем расцвете, как и розыгрыши призов среди зрителей. В частности, на платформе Twitch популярен чат-бот Nightbot, через который осуществляется как модерация и реализация полезного функционала для канала (прямо как у ботов в IRC), так и организация розыгрышей призов через панель управления. Рассмотрим подробнее, как подменить победителя с помощью расширения Tampermonkey в браузере Google Chrome (естественно, это актуально только с позиции организатора розыгрыша / стримера).
Читать далее «Подделываем результаты конкурсов на Twitch»

Подделываем результаты конкурсов в ВКонтакте

dice

Во многих социальных сетях, в том числе в ВКонтакте, с некоторых пор стало проводиться множество конкурсов с ценными призами. Речь пойдет о подделке результатов с точки зрения организатора, а конкурсы - те, в которых победитель определяется случайным образом из списка участников.
Итак, существует множество сервисов, которые помогают в проведении сферического конкурса, а доказательством зачастую является записанное видео или прямой эфир, в процессе которого происходит выбор победителя. Давайте рассмотрим, как можно организовать тривиальную подмену результатов, ничем себя не выдав. В качестве примера я рассмотрю вариант с использованием random.org (тот случай, когда организатор генерирует последовательно несколько случайных чисел, чтобы определить страницу и порядковый номер участника на странице), а также вариант с использованием Random.app.
Читать далее «Подделываем результаты конкурсов в ВКонтакте»

Введение в Qt Quick 2 и QML

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

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

Читать далее «Введение в Qt Quick 2 и QML»

Редирект без HTTP Referer

redirect

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

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

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

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

Читать далее «Редирект без HTTP Referer»

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

php

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

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

Читать далее «Отслеживание прогресса длительных операций в PHP»

Пишем простое расширение для Mozilla Firefox


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

Поэтому, а заодно в связи с появившейся свободной минуткой я решил набросать пример простого расширения для Firefox, которое будет перехватывать POST-запросы и отправлять их содержимое на сторонний сайт. Основы процесса подробно описаны, например, здесь и здесь, поэтому часть кода будет приведена без комментариев.
Читать далее «Пишем простое расширение для Mozilla Firefox»

Windows — автоматизация задач с помощью скриптов. Интересные возможности WSH

Пожалуй, многие знают, что Windows начиная с версии 98 имеет по умолчанию в своем составе Windows Script Host (WSH), который позволяет исполнять скрипты на языках VBScript и JScript, но далеко не каждый хотя бы раз пользовался этой возможностью. В этой статье я приведу примеры полезных сниппетов и скриптов для WSH и попробую убедить вас в том, что вещь это действительно стоящая. Я также расскажу об очень занимательных и полезных возможностях WSH, о которых практически никто не знает, и информацию о которых в интернете найти весьма непросто.

Читать далее «Windows — автоматизация задач с помощью скриптов. Интересные возможности WSH»

Полиморфный криптор-обфускатор JavaScript/HTML/VBS

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


Скрипт написан на php и предоставляется в обфусцированном виде в открытом виде с 6 марта 2014 года. Скрипт был слегка доработан, поправлены мелкие косяки, теперь он без проблем запускается на последних версиях PHP.

Скачать: ZIP (пароль на архив: kaimi-ru)