Print This Post Класс-инжектор на C++

Среда, 13. Июль 2011
Раздел: C/C++, автор:

Давеча наелся всяких плацебо"витаминчиков" и захотелось странного, а именно - выучить C++ за неделю. Начинание примечательно тем, что это первый раз, когда я изучаю что-то, связанное с программированием, по книге (обычно руководствовался примерами из гугла). Да и подобные языки мне до этого не приходилось изучать, в общем-то. Книжку выбрал первую попавшуюся на Amazon - Herbert Schildt "C++: The Complete Reference".
Результат своего непродолжительного изучения оформил в следующий класс, который позволяет грузить DLL или произвольный код в 32- и 64- разрядные процессы. Код, правда, написан не в соответствии с модным стандартом C++0x, и в нем не используется такая мощная вещь как шаблоны (хотя сомневаюсь, что они тут серьезно пригодились бы), но, тем не менее, базовые возможности языка я постарался задействовать.
Использовать класс довольно просто, например:

Доступные методы:

Для работы с 64-разрядными процессами достаточно просто скомпилировать класс под соответствующую архитектуру.

Скачать: cpp-injector-class
GitHub: cpp-injector-class

Print This Post Почему я не люблю программировать

Среда, 22. Июнь 2011
Раздел: Жизнь, автор:

Для начала стоит условно разделить программистов на подтипы. Лично я выделяю следующие:
1. Фанатик - человек, который получает удовольствие непосредственно от процесса программирования или решения возникающих в процессе задач.
2. Материалист - человек, который рассматривает программирование в большей степени как средство заработка или приобретения популярности в определенных кругах.
3. Быдлокодер - эдакая смесь, зачастую выражающаяся в довольно поверхностном изучении программирования. Причем основной движущей силой здесь является ощущение причастности к каким-то якобы "сакральным" знаниям/секте и желание самоутвердиться перед теми, кто вообще не разбирается в данном вопросе. А если ещё удастся впарить свои поделки кому-нибудь и срубить денег на очередной айфон - так это вообще идеально и является пределом мечтаний.

Естественно, встречаются и переходные варианты. Разделение довольно специфическое и субъективное, но в нем есть рациональное зерно.
Далее рассмотрим нишу, для которой мне доводилось писать, и типичных заказчиков. Ниша, в общем-то, всем известная - автоматизация действий в сети или, по-простому, всякие скрипты для массовых рассылок (aka спам, aka SMO в понятии некоторых личностей), сбора информации, автоматической регистрации и тому подобного унылого говна. Почему УГ? Да потому что никакой технической сложности или интереса в них нет (то есть, согласно моему списку подтипов, этим занимаются в основном Быдлокодеры и суровые Материалисты, которые, по-моему, довольно часто не слишком дальновидны или смотрят на мир сквозь "розовые очки"), раз за разом пишутся примерно одни и те же действия, например: авторизоваться, получить список друзяшек, разослать им сообщения, авторизоваться следующей учетной записью...
Читать дальше »

Print This Post Фишка WebMoney Keeper Classic

Суббота, 14. Май 2011
Раздел: C#, Windows, автор:

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

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

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

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

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

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

Print This Post Анонс: Quest 3 — Return to classics

Воскресенье, 8. Май 2011
Раздел: Жизнь, Это интересно, автор:

Порадуем полюбивших наши квесты и просто интересующихся, будет ли продолжение. Да, будет. Процесс создания третьей части уже идет полным ходом. Хотим сказать, что она будет сильно отличаться от предыдущих. Вот лишь малая часть отличий:

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

И, наконец, видео для затравки:

Print This Post LSSender, detours и боянный сплайсинг

Вторник, 3. Май 2011
Раздел: C/C++, Windows, Социальные сети, автор:


Давно ничего не писал в связи с отсутствием интересных идей, поэтому решил написать эту статью, чтобы развеять пустоту.
Люди, пишущие софт на продажу, любят накрывать свои продукты протекторами, однако редко собственноручно проверяют качество защиты. Они, конечно, по-своему правы, так как обычный человек вряд ли примется читать статьи, например, на wasm, чтобы убрать защиту с программы. Рассмотрим способы "обмана" защиты одной из программ для всеми любимых социалочек.
Программа называется LSSender, последние версии которой накрыты DotFix NiceProtect от небезызвестного GPcH. В сети существуют мануалы по снятию этого протектора, но это слегка занудно, и поэтому мы займемся более детальным изучением системы привязки.
Читать дальше »

Print This Post Открылся форум

Воскресенье, 3. Апрель 2011
Раздел: Жизнь, автор:

В контексте блога kaimi.ru открылся форум. Форум создан для удобства обсуждения постов и возникающих по ним вопросов, а также для оказания помощи новичкам в различных IT-областях. Ещё на форуме есть торговый раздел для желающих что-нибудь продать, либо предложить свои услуги в какой-либо сфере.

Добро пожаловать!

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

Воскресенье, 27. Март 2011
Раздел: Жизнь, автор:

Fail with honor rather than succeed by fraud

Вчера, отдыхая после рабочей недели и упоровшись нейрометаболическими стимуляторами, как всегда полез в Интернет, и что-то дернуло меня покопаться в устройстве системы приема платежей на сайте Steam. После получасовой возни нашел занятный баг. Оказалось, что у агрегатора, через которого Steam принимает оплату по WebMoney, существует недоработка в системе проверки платежей (причем этот же агрегатор используется Battle.net, то есть World of Warcraft и Startcraft 2 можно попробовать "оплатить" этим же способом).
Принцип довольно прост. Все основано на ошибке агрегатора платежей, через которого Steam принимает оплату по WebMoney. Итак, рассмотрим поэтапно:
Читать дальше »

Print This Post VKontakte NoAd

Среда, 9. Март 2011
Раздел: C#, Софт, Социальные сети, автор:

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

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

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

Print This Post Regexp HTTP-proxy

Пятница, 4. Март 2011
Раздел: Perl, Софт, автор:

Недавно для своих нужд написал небольшой прокси-сервер, заменяющий содержимое ответа по заданному регулярному выражению. Интерфейс реализован на основе Tk, сам сервер построен на основе модуля HTTP::Proxy, так как в нем есть довольно удобная система фильтров.
Замена может производиться как по статическим строкам, так и по полноценным регулярным выражениям. Если в регулярном выражении производится захват некоторого фрагмента, то доступ к нему в подставляемом тексте осуществляется стандартным для перла способом ($1, $2, ...).

Скачать: proxy_regex

В процессе разработки столкнулся со следующими проблемами, на которые рекомендую обратить внимание:
1. При использовании Tk вместе с методами fork или async, необходимо закрывать хендлы STDIN и STDOUT. В противном случае, Perl будет крешиться (фича или баг библиотеки encoding.dll, если не закрывать хендлы, то в ней вызывается метод, приводящий к попытке разыменования указателя на недопустимую область памяти).
2. HTTP::Proxy по-умолчанию довольно специфично работает с кодировками, поэтому стоит использовать заготовки fizbin'a с perlmonks.
3. При запуске win* используется HTTP::Proxy::Engine::NoFork, все бы хорошо, но если существует потребность производить остановку сервера по сигналу, то содержимое метода run следует слегка модифицировать. Изначально начало метода выглядит так:

Т.к. аргумента у метода can_read нет, то данный вызов является блокирующим. Соответственно, цикл из метода start (модуль HTTP::Proxy)

не сразу прекращается при получении сигнала. Поэтому я добавил аргумент в методе can_read для своевременной реакции на сигналы.
4. Ещё один неприятный момент состоит в том, что после выхода из цикла прокси не закрывает сокет. Решается добавлением строки после цикла.

Print This Post Простой заработок: EWhoring

Понедельник, 7. Февраль 2011
Раздел: $$$, Социальные сети, автор:


За рубежом довольно давно успешно практикуется так называемый ewhoring. Смысл метода состоит в том, что один человек притворяется красивой девушкой, чтобы заставить другого совершить некое оплачиваемое действие для "продолжения знакомства". В большинстве случаев предлагается платная регистрация на каком-либо фейковом сайте знакомств или видеочате. Популярность метода основана на его простоте. Для того, чтобы заработать в день 50-100$, не нужен абсолютно никакой специальный софт, да и вообще ничего, кроме интернета, свободного времени и желания потрепаться.
Читать дальше »