Print This Post PHP Generic Eval Unpacker

Четверг, 26. Апрель 2012
Раздел: C/C++, PHP, Windows, автор:

В предыдущей статье dx рассказывал о ручной методике снятия типовой и довольно распространенной защиты PHP-скрипта. Если проанализировать наиболее часто встречающиеся типы защиты (например, в разделе запросов на расшифровку на Античате), то можно заметить, что в большинстве случаев защита построена на максимальном сохранении исходного кода скрипта и использовании функции eval в конечном счете. Снимать такую защиту очень просто, но слегка занудно, поэтому я решил написать примитивную программу, которая осуществляет сие действо автоматически.
Чтобы пост не был унылым, я кратенько опишу, что из себя представляет анпакер. Итак, из-за своей лени я решил использовать php-cli, расширение для php (которое перехватывает eval) и сделать к этому простой GUI. Результирующая программа выглядит следующим образом:


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

Print This Post Прокси-ботнет из роутеров

Пятница, 30. Март 2012
Раздел: C/C++, Linux, PHP, автор:

В 2010 году, в период тестирования SSH Bruteforce'a одним хорошим человеком, я узнал, что на Европейских диапазонах IP-адресов попадается приличное количество SSH-доступов к всевозможным роутерам. Наиболее частыми среди них оказались роутеры с MIPS-процессором и известной кастомной прошивкой DD-WRT.
Казалось бы, особой пользы с них не извлечь, но ещё тогда был предложен вариант использования их в качестве прокси. До тестирования концепции на тот момент руки не дошли, а сегодня я как раз разбирал старые архивы и решил попробовать собрать рабочий пример под подобный роутер. Благо, у меня валяется парочка таких. Стоит отметить, что поднятие прокси-серверов на роутерах также обладает всем известной спецификой, которая заключается в том, что у провайдеров часто используются динамические IP, поэтому, естественно, прокси-сервер должен сообщать свой текущий IP некой веб-админке.
Читать дальше »

Print This Post Добываем трафик c помощью Android Market

Суббота, 3. Март 2012
Раздел: $$$, автор:


Известно, что Android Market является одной из крупнейших площадок по продаже мобильных приложений. В рамках площадки доступен целый ряд полезностей для потребителей, но нас в первую очередь интересует функция отзывов, ведь большинство пользователей перед покупкой или скачиванием того или иного приложения в первую очередь опираются на отзывы и рейтинг, даже если приложение находится в топ-10-20-30...

Если зайти в маркет через обычный браузер, то можно обнаружить, что для того, чтобы оставить отзыв тому или иному приложению, необходимы 2 вещи:
1. За google-аккаунтом должно числиться хотя бы одно Android-устройство
2. Приложение должно быть предварительно куплено/скачано с маркета.
Читать дальше »

Print This Post Пишем простой асинхронный парсер

Четверг, 23. Февраль 2012
Раздел: Perl, автор:

Многие разработчики типового говнософта, ориентированного на работу с вебом, зачастую используют потоки для того, чтобы получить выигрыш в скорости. Данный подход, конечно, обладает своими плюсами, но все же не является оптимальным, например, с точки зрения потребляемых ресурсов системы (особенно когда речь идет о потребителях, любящих ставить сразу "тыщу потоков").
Альтернативным и общеизвестным способом ускорения работы софта является асинхронная модель, то есть модель, при которой все вызовы методов являются неблокирующими. В данной статье я рассмотрю простой пример, который будет использовать асинхронные веб-запросы.
В качестве примера будет написан парсер идентификаторов приложений с Android Market, который пригодится в готовящейся статье, посвященной добычи трафика с маркета. Для простоты будем использовать модуль AnyEvent, он упрощает реализацию асинхронной событийной модели. Итак, приступим.
Читать дальше »

Print This Post Читаем MBS

Воскресенье, 12. Февраль 2012
Раздел: C/C++, Windows, автор:

В связи с недавним помутнением сознания начал разбираться в некоторых аспектах написания драйверов, а также содержимом WRK. По ходу исследований внезапно потребовалось затронуть MBR, создаваемую Windows.
Как известно, MBR (Master Boot Record) у ОС семейства Windows совпадает по размеру с MBS (Master Boot Sector) и содержится в нём. Однако, в общем смысле, MBR в общем смысле, MBR может занимать часть пространства и за пределами MBS.
Короче, чтобы не утомлять занятых людей, суть исходного кода, приведенного ниже, сводится к тривиальной задаче чтения MBS, вывода нескольких необходимых мне параметров из виндовой MBR (информации о разделах) и подсчета MD5 хэш-суммы от содержимого сектора.
Мини-программа выглядит как-то так:

Программа: скачать
Для людей, которым по каким-то неведомым причинам необходим исходный код: скачать

P.S. Товарищи, зря вы пьете фенотропил, честно, это ведь один из легких способов быстро посадить печень, а здоровье беречь нужно.

Print This Post Встраиваем Flash в свое приложение

Вторник, 17. Январь 2012
Раздел: C/C++, Windows, автор:

Как-то раз при разработке одной программы у меня возникла необходимость встроить какую-нибудь красивую мини-игру в раздел About. Так как делать красивую игру средствами WinAPI - это то ещё удовольствие и по срокам и по времени, то я решил просто-напросто встроить flash-файл в свой проект. Примерное описание того, как это сделать, мы и рассмотрим далее. В примере мы пойдем чуть дальше, а именно не только встроим флеш-ролик в окно, но и добавим парочку элементов управления. В результате у нас получится нечто подобное:

Таким образом, разобрав пример, вы запросто сможете встроить этого замечательного (или какого-нибудь другого) единорога в свое приложение, пускай и цена этого выкрутаса будет ~2.5 мегабайта.
Читать дальше »

Print This Post С наступающим 2012 годом!

Суббота, 31. Декабрь 2011
Раздел: Жизнь, автор:

Поздравляем всех читателей с наступающим Новым Годом!
Счастья, удачи и успехов Вам в новом году!

С наступающим 2012 годом!

Print This Post Пишем простой cкринсейвер

Воскресенье, 20. Ноябрь 2011
Раздел: C/C++, Windows, автор:

Скринсейвер (или хранитель экрана) - это, по сути, обычная программа, в которой определены несколько специальных процедур для обработки сообщений, посылаемых ОС, при запуске и конфигурировании скринсейвера.
Программы-скринсейверы обычно хранятся в директории %WINDIR%\System32 и обладают расширением .scr. Таким образом, при переходе на страницу выбора заставки, Windows ищет в системной директории все файлы с соответствующим расширением и формирует из них список возможных скринсейверов. Также следует упомянуть несколько важных аспектов написания.

– Скринсейвер должен экспортировать функции ScreenSaverConfigureDialog, ScreenSaverProc.
– Название скринсейвера в окне настройки определяется строковым ресурсом с идентификатором IDS_DESCRIPTION, который должен быть равен 1.
– Идентификатор диалогового окна, которое будет появляться при нажатии клавиши "Параметры", т.е. при попытке настроить скринсейвер, должен быть DLG_SCRNSAVECONFIGURE и равняться числу 2003.
– Программа также должна содержать реализацию функции RegisterDialogClasses.

В принципе, почти всё это описано в MSDN. В нашем скринсейвере будет изображена вращающаяся изометрическая проекция куба. Выглядеть результат будет следующим образом:

Экран выбора скринсейвера


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

Print This Post Дорабатываем DLL для LastFM

Понедельник, 3. Октябрь 2011
Раздел: Assembler, C/C++, Windows, автор:

Как оказалось, библиотека для LastFM из статьи от 31.08.11 оказалась не особо юзабельной из-за нескольких досадных недоработок:
1. Клавиши управления не работали, если окно свернуто (связано с тем, что управление производилось с помощью SendMessage, но в свернутом состоянии окно не обрабатывает оконные сообщения, поэтому они переставали реагировать). (Спасибо Artik'у за наводку)
2. При сворачивании окна в трей и последующем восстановлении пропадали элементы управления, так как окно "уничтожалось".

Чтобы исправить эти моменты, я решил переписать библиотеку. В этой статье я опишу изменившиеся методы (к слову, CreateThumbnailToolbar и EnumWindowsProc остались без изменений).
Читать дальше »

Print This Post Получаем лицензионный Minecraft почти бесплатно

Среда, 21. Сентябрь 2011
Раздел: Жизнь, автор:

There is no security on this earth; there is only opportunity.
– Douglas MacArthur

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

Но что-то мы отошли от темы. Листал я интернеты в поисках чего-нибудь эдакого и наткнулся на чье-то игровое видео по Minecraft. Полез на официальный сайт игры (minecraft.net) и с сожалением обнаружил, что игра платная, причем стоит не очень-то дешево.
Зарегистрировался на сайте, посмотрел способы оплаты и решил посмотреть, как происходит процесс оплаты игры. Платить можно через PayPal или банковской картой. В качестве агрегатора платежей (для всех вариантов, кроме PayPal) используется Moneybookers, казалось бы, откуда взяться проблеме, но, видимо, не перевелись ещё "гениальные девелоперы", которые кладут на документацию системы обслуживания оплаты.

Встречайте глупый и примитивный баг: если выбрать оплату игры кредитной картой (главное не через PayPal, там, слава богу, косяков не допустили), нажать кнопку Proceed to checkout, перехватить запрос и поменять в нем сумму с 21.95$ (цена для США), на, например, 0.7$ (сумма обусловлена минимальным размером платежа через систему), а затем ввести данные своей или виртуальной карты и оплатить, то оплата успешно пройдет и Premium account будет удачно оплачен (или можно купить gift-кодов, я проверял на них).

Конечно, небольшой минус состоит в том, что не у всех есть банковская карта, а некоторым не хочется светить данные своей карты, но это не проблема, так как всегда можно купить Visa Virtual с необходимым номиналом (например, на плати.ру: долларовая карта, рублевая карта).
Для тех, кто не понял, что и как надо делать, чтобы купить майнкрафт дешево:
Читать дальше »

Страница 1 из 9123456789