Как на antigate уйти в минус

Давече нашел очередную полезную недоработку на сервисе Antigate (Антикапча). Практическая ценность заключается в том, что можно взять два аккаунта, например, на одном 20$, а на другом 0$, увести один в минус и получить 40$ на одном, -20$ на другом. Как это делается? Всё очень просто.
Нам понадобится Charles и, собственно, два аккаунта, причем один с положительным балансом.

1. Включаем Charles, убеждаемся, что он перехватывает запросы в используемом нами браузере.
2. Делаем перевод всей суммы с одного аккаунта на другой (будет запрошен код подтверждения с e-mail'a).

3. Подтверждаем перевод.
4. Смотрим запросы в Charles. Ищем подобный запрос:

5. Переводим баланс обратно на первый аккаунт.
6. Выбираем ранее найденный запрос на вкладке Structure в окне Charles, нажимаем правой клавишей мыши и выбираем пункт Repeat Advanced, ставим одинаковое значение в поля Iterations и Concurency, например, 10 (да, да, прямо как много лет тому назад во всяких счастливых фермерах).

7. Нажимаем ОК, немного ждем и наслаждаемся результатом.

Почему и отчего так происходит? Флешмен (если конечно он сам писал сервис) видимо не в курсе того, что надобно использовать транзакции или лочить таблицы... Баг, кстати говоря, далеко не первый на данном сервисе. Аналогичная ситуация наблюдалась при запросе баланса на вывод, а также была возможность уходить в минус без всяких специальных утилит благодаря кривой обработке входных данных (суммы перевода) - просто подставляешь число в виде 0xАF00 или скажем 1e10 и вуаля. Всё это было исправлено впоследствии.

Новые идеи про капчи

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

Вот пример:

Файл drag.js - несколько модифицированная небольшая библиотека JS, реализующая drag'n'drop, найденная тут: javascript.ru/ui/draganddrop

Скачать исходный код: ZIP.

Когда антикапча бессильна

Если вы владеете каким-то проектом, где есть возможность для пользователей отправлять сообщения на всеобщее обозрение (форумы, гостевые и т.д.), вероятно, вы не раз чистили спам. Практически все капчи сейчас можно распознать с помощью недорогих сервисов, таких, как антикапча. Но все же, есть возможность создать такую капчу, которую нельзя будет распознать. Идея не нова, впервые подобное я увидел на mail.ru.
Готовая реализация - вот:

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

Скачать исходный код: ZIP.

Пример работы с Anti-Captcha на Perl

Очередной пример на Perl (используется специально написанный модуль):

Параметры:

phrase => 0 или 1 (0 по умолчанию, 1 помечает, что у капчи 2-4 слова)
regsense => 0 или 1 (0 по умолчанию, 1 помечает, что текст капчи чувствителен к регистру)
numeric => 0 или 1 или 2 (0 по умолчанию, 1 помечает, что текст капчи состоит только из цифр, 2 помечает, что на капче нет цифр)
min_len => 0..20 (0 по умолчанию, помечает минимальную длину текста капчи)
max_len => 0..20 (0 - без ограничений, помечает максимальную длину капчи)
is_russian => 0..2
is_fatal => 0 или 1 (0 по умолчанию, прекращать ли работу при фатальных ошибках со стороны антигейта)
verbose => 0 или 1 (1 по умолчанию, отвечает за вывод информации о возможных ошибках и статусе распознавания)

Задаются следующим образом:

Скачать модуль и исходники можно тут: ZIP

Пример работы с антикапчей на VB

Привожу пример работы с сервисом anti-captcha на Visual Basic 6.0 + win32 api. В архиве exe и исходники проекта. Для работы сервисом созданы несколько функций – UploadCaptcha для загрузки капчи на сервер, RevealCaptcha для получения ответа или статуса распознавания, AntiCaptchaInit для инициализации работы с сервисом. Также есть две функции для инициализации и cleanup’а работы с winsock. Пример привожу для коллекции, может быть, кому-нибудь пригодится. Программа однопоточная, так как по крайней мере vb 6.0 с потоками не дружит.

Скачать: ZIP

Работа с антикапчей на ассемблере

По просьбам некоторых людей, да и просто для себя, решил написать функции для работы с антикапчей (anti-captcha.com) на ассемблере.
Если кто не знает, anti-captcha – это сервис, позволяющий распознавать капчи за небольшую плату (1$ за 1000 штук). Качество распознавания, как правило, 90%, время ожидания обычно не превышает 20 секунд.
Функции для работы с сервисом сразу решил проектировать таким образом, чтобы они могли нормально без конфликтов работать во много потоков одновременно.
Для этого необходимо использовать локальные переменные для чтения и записи, а глобальные переменные (из секции данных) можно только читать, но не изменять.
Кроме того, при работе с общими переменными или ресурсами необходимо применять какой-нибудь механизм, помогающий избегать конфликтов. Я использовал мьютексы (что это такое, объясню дальше).
Программу для тестирования я сделал таким образом – можно открыть несколько файлов (от 1 до 40) с картинками и одновременно послать их на распознавание (по одной картинке на поток).
Получилось следующее:

Кроме того, я создал dll с процедурами для работы с антикапчей, которую может импортировать любая программа.
Читать далее «Работа с антикапчей на ассемблере»