Quest 3 — Return to Classics — Полное прохождение


В этой статье я опишу полное прохождение нашего третьего квеста.

Напоминаю его адреса:

Русская версия
Английская версия

Очень жаль, что в него поиграло такое небольшое количество народу, по сравнению с первым или вторым, но, наверное, люди не доверяют exe-файлам или просто не любят ставить что-то на свой компьютер. А зря, квест действительно интересный и стоящий, он не даст вам заскучать, а часто даже повеселит вас, и вы в этом сможете убедиться, почитав его прохождение-описание.

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

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

Читать далее «Quest 3 — Return to Classics — Полное прохождение»

Стеганография etc

Было нечего делать, решил написать какую-нибудь необычную софтину. В голову пришла идея создания программки, которая могла бы прятать внутри картинок какие-либо данные. Такой подход сокрытия данных называется Стеганографией. Выбрал я самый простой формат картинок - BMP. В изображениях формата BMP (24- или 32-битных, несжатых) цветовые данные хранятся в виде отдельных байтов, поэтому можно модифицировать их младшие биты и без видимых изменений заныкать в картинку некоторый объем информации.

Я набросал консольную программу на C++ и GUI-интерфейс к ней на C#. Вот краткие возможности этого софта:
[+] Возможность прятать в 24- и 32-битные картинки BMP-формата без сжатия данные.
[+] Возможность использовать 1/2/4 младших бита картинки для сохранения информации.
[+] Можно также просто зашифровать файл и сохранить его в виде 24-битной картинки (это уже нельзя назвать стеганографией).
[+] Программа при упаковке файла сохраняет не только его данные, но и имя, а также CRC32, это все используется при распаковке.

Файлы распаковываются в директорию с программой.
Читать далее «Стеганография etc»

Фишка WebMoney Keeper Classic

Недавно, от нечего делать, копался в WebMoney Keeper Classic и заметил одну забавную особенность, которую можно использовать с некоторой пользой.
Как известно, оплата через Keeper Classic не интегрируется непосредственно в установленные на компьютере браузеры, то есть инициировать оплату можно из любого приложения, если кипер запущен. Система инициации простая: при включении кипер поднимает обычный веб-сервер (на 2803 порту), который при определенном запросе к нему отображает пользователю окно с деталями о платеже. Мне казалось, что при такой схеме было бы логично предположить, что веб-сервер биндится на localhost, однако это не так.

Кипер позволяет обращаться к своему веб-серверу извне, таким образом, если вы не сидите за роутером/прокси/чем-угодно-защищающем-порты и у вас запущен кипер, то любой может сформировать и отправить вашему киперу запрос, в результате которого вы увидите окно оплаты, например, такое:

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

– Можно задалбывать пользователя всплывающими окнами (некоторые после этого начинают полагать, что их компьютер взломали)
– Если пользователь введет что-нибудь в поле для кода подтверждения, то в ответ вы получите URL с редиректом, содержащим его WMID
– Теоретически возможно купить таким образом товар за чужой счет, если перейти в веб-интерфейсе на форму оплаты какого-либо товара, подсмотреть данные платежа в исходном коде страницы, число на картинке (код подтверждения), а потом отправить запрос с интересующей суммой какому-нибудь недалекому человеку и в описании товара указать что-нибудь вроде: Введите код 12345

Возможно, существуют и другие опасности, например, я заметил, что при указании больших чисел в качестве суммы платежа начинает частично затираться содержимое поля с описанием товара. В общем, будьте бдительны.
Для тех, кто хочет поиграться с составлением запросов - маленькая программка на шарпе, которая позволяет указывать ip, порт, сумму, описание платежа и отправлять запрос.

В нижнем поле окна программы отображается ответ сервера.
Скачать: zip

VKontakte NoAd

От нечего делать написал небольшую программу, которая убирает рекламу в ВКонтакте. Алгоритм работы простой, программа проходит по списку страниц, где обычно появляется реклама, и "нажимает" крестик рядом с каждым найденным объявлением. В результате объявление перестает отображаться.

Среднестатистическому аккаунту показывается в ротации ~300-400 объявлений. С минимальной задержкой программа убирает их примерно за 5-10 минут. Конечно, каждый день в ротацию добавляются новые объявления, но в довольно небольшом количестве.

Для работы программы необходим .NET Framework 2.0.
Скачать: NoAd

Патчинг софта, накрытого .NET Reactor’ом, на примере ActualSpamPro

В последнее время всё большее количество авторов “рекламного соц. софта” используют платформу .NET для разработки. Причем для того, чтобы защитить свой софт, они не гнушаются использовать платные протекторы (двойные стандарты в области интеллектуальной собственности так и прут), в том числе довольно известный .NET Reactor. Не знаю, с чем связан частый выбор данного протектора, но особой сложности для анализа внутренностей защищенной программы он не добавляет, так как существует множество вспомогательных инструментов для разбора такого софта, да и ручками всё или почти всё не так уж сложно сделать.
Читать далее «Патчинг софта, накрытого .NET Reactor’ом, на примере ActualSpamPro»

OCR нахаляву

В последнее время всеми любимый сервис antigate.com работал не очень стабильно, поэтому многие стали временно использовать известную альтернативу - captchabot.com.
И я решил, так сказать, "заценить", что из себя представляет этот сервис. Не знаю, как с качеством и скоростью распознавания, но меня очень порадовала реализация системы пополнения счета с помощью WebMoney.
Если попытаться пополнить счет, скажем, на 5$, то произойдет переход на промежуточную страницу, в исходном коде которой можно наблюдать стандартную для WebMoney форму запроса проведения платежа.

Однако, довольно интересно себя ведет скрипт, указанный в параметре LMI_RESULT_URL. При простом обращении к нему, во-первых, мы видим раскрытие путей, во-вторых, теоретическую возможность проведения SQL-инъекции (параметры, передаваемые скрипту, можно посмотреть тут). И, как оказалось, скрипт не проводит аутентификацию запроса, что позволяет пополнить счет на любую сумму, используя параметр LMI_PAYMENT_NO со страницы платежа. То есть мы просто передаем скрипту параметры LMI_PAYMENT_AMOUNT и LMI_PAYMENT_NO и деньги зачисляются на счет.

Чтобы не тыкать все это дело ручками, написал программку, которая все сделает за вас. Потребуется ввести только логин, пароль и сумму. Пользуйтесь, хотя быстро прикроют, скорее всего.
Скачать: zip

P.S. На антикапче несколько месяцев назад тоже был замечательный баг, позволяющий делать переводы и выводить средства, превышая доступный баланс.

.NET Reactor Header Fixer

При работе с .net-файлами, обработанными .NET Reactor'ом (данный протектор используется, например в Vkontakte Inviter Pro v2), возникает проблема с заголовками, из-за которых невозможно открытие файла декомпилятором (по крайней мере, в .net reflector, dis#, xenocode fox).
В сети существует мануал (за авторством CodeRipper и SND), следуя которому, данную проблему можно исправить, однако, процесс довольно зануден, и существует вероятность ошибки, так как все делается руками.
Чтобы не заморачиваться с ручной правкой, была написана программа, которая осуществляет все необходимые исправления в файле. Перечень ошибок, которые исправляются:
1. Invalid number of data directories in NT header
(Недопустимое число элементов в DATA_DIRECTORY)
2. Module '...' contains zero or multiple module definitions
(Таблица Module содержит более одного ряда)
3. ... multiple assembly definitions
(Таблица Assembly содержит более одного ряда)
4. Module contains multiple #GUID heaps
(В программе более одного #GUID-стрима)

Для обработки файла - просто перетащите нужный exe на иконку фиксера. После обработки появится подобное окно:

Скачать фиксер: fix

Simple Engine Scanner

Simple Engine Scanner - инструмент для автоматического сканирования веб-сайтов на наличие уязвимостей по заранее созданной базе. Инструмент состоит из двух частей: скрипт для определения уязвимостей (Perl) и программа на C# для облегченного создания базы уязвимостей, которую этот скрипт использует.

База представляет собой XML-документ. Описывать структуру не буду, сделаю некоторые пояснения по программе, которая позволяет эти XML'ки редактировать.
(База-пример лежит в архиве, ее можно открыть и полистать для того, чтобы понятнее было.)

База содержит информацию о движках для проверки. Можно добавлять новые. Каждый движок имеет секцию "Соответствие", в которой задаются критерии, по которым двиг будет идентифицирован. Эта секция позволяет делать запросы, проверять наличие файлов на сайте, проверять, присутствуют ли заданные строки в полученном запросом контенте и проверять его соответствие заданными регулярными выражениями. Можно задать число необходимых совпадений для идентификации движка.
Секции движков также содержат подраздел "Модули", куда можно добавлять уязвимости модулей движка. Имеется такая же секция соответствия (она тут вполне может быть пустой). Можно добавить системную секцию для создания временных переменных, необходимых для тестирования модуля. Созданные переменные можно использовать для тестирования текущего модуля - они вставляются с помощью фигурных скобок, например, {myvar}. Вставка работает в запросах, в данных POST-запросов, в Cookies, в именах и описаниях уязвимостей. Обязательно парсите переменную перед тем, как ее использовать. Системная секция выполняется перед всеми остальными запросами модуля, и поэтому может быть только одна. В секцию модуля можно также добавлять уязвимости, которые опять-таки детектируются с помощью уже знакомых соответствий.

В программе редактирования БД после изменения параметров не забудьте нажать кнопку "Сохранить", а после завершения редактирования - "Сохранить БД...".

Теперь немного о скрипте для проведения тестирования.
Запускается он следующим образом:

check.pl http://example.com/forum vuln_xml_file delay log_type log_file

Первый параметр - сайт для тестирования, vuln_xml_file - имя базы, по которой будет проводиться тестирование, delay - задержка между запросами, log_type - тип логирования (0 - простой вывод в консоль краткой информации, 1 - вывод в консоль и также запись лога в файл log_file, 2 - вывод в консоль краткой информации и в файл полной информации с найденными уязвимостями и информацией о них (этот режим и рекомендуем)).

Опциональные параметры:
-encoding
Примеры использования:
-encoding=auto - автоопределение кодировки сайта;
-encoding=enc (например, -encoding=utf8) - явное задание кодировки сайта.

-redirect404
Если она указана, то 301 и 302 редиректы будут считаться за страницу 404. Полезно, например, при работе с хостингом majordomo. Если она не указана, то скрипт теперь автоматически определит, стоит ли считать 301 и 302 редиректы за страницу 404. Стоит заметить, что такие вещи работают только с HEAD-запросами (и как раз с проверками существования файлов).

Также в скрипте есть строки, позволяющие при необходимости задать http-прокси или socks5 для проведения запросов:

#Proxy
my $proxy = '127.0.0.1:8080';
#0 - no proxy; 1 - http; 2 - socks5
my $ptype = 0;

Скачать: simple engine scanner

Exe2Pdf

Выходя из самолета в аэропорту Балтимор, d_x поднял голову и увидел такое знакомое и дорогое американское небо, так не похожее на питерское… В ставшем родным Вашингтоне его ждал Kaimi, который как раз к приезду d_x’а закупился энергетиками и проходил очередную миссию Halo3 на максимальной сложности, ожидая друга, чтобы прояснить ему ситуацию, описанную ниже.

В начале года несколькими людьми была найдена "уязвимость" в формате PDF, позволяющая запускать произвольный код при открытии файла, которая на самом деле является документированной возможностью формата. Всего было опубликовано два типа уязвимостей: с использованием и без использования JavaScript.
После беглого изучения формата и специфики этой проблемы была реализована программа для внедрения exe файлов в тело pdf и последующего запуска exe при открытии. Конечно, при открытии pdf выдается предупреждение, однако, существует возможность вывести произвольный текст в окне предупреждения (актуально для Acrobat Reader 9.*, в 8.* весь внедренный код вываливается целиком, и пользователь, скорее всего, что-нибудь заподозрит :) ).

Программа обладает следующими возможностями:
[+] Задание произвольного текста сообщения (лучше не делать текст длинным)
[+] Задание имени временного vbs файла (используется для создания exe файла из тела pdf)
[+] Задание имени временного exe
[+] Возможность удаления exe через заданный интервал времени

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

exe2pdf

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

Последнее обновление: 7 Jun 22-30 msk

Простейший пример ComboBox для Silverlight for Windows Phone 7

Как известно, в CTP версии Windows Phone 7 Developer kit не поддерживаются некоторые элементы управления: ComboBox, Frame, многие элементы управления из Silverlight Toolkit. Таким образом, при необходимости использовать какие-либо из этих контролов возникает задача написания собственной версии специально для Windows Phone 7.

Читать далее «Простейший пример ComboBox для Silverlight for Windows Phone 7»