- Регистрация
- 09.10.2015
- Сообщения
- 3 916
- Благодарностей
- 3 867
- Баллы
- 113
Даже в наше время ещё остались сайты, которые имеют в виде защиты - обычную текстовую капчу с математическим действием. Вот и мне попался такой вчера, поэтому было решено запилить свой небольшой способ "разгадывания" мат. примеров, которые он выдаёт.
Вообще, большинство способов сводится к тому, что нужно выполнить действие "A + B = " - ради такого даже писать ничего не нужно, достаточно просто спарсить это значение и выполнить его в кубике JavaScript, там пример решится и выведется результат. Но всё было бы слишком просто и грустно, если бы сайт не выдавал примеры вроде:
Класс умеет решать математические примеры с числами от 0 до 99, если они записаны в текстовом виде; умеет операции сложения, вычитания, умножения и деления; ему без разницы в каком месте пропущено число, главное чтоб пример в целом был корректным.
Код выложил на гитхабе: https://gist.github.com/lord-alfred/6020e7a5f60f06652101613c490a73f9
Использование:
1. Добавить данный класс вместе с неймспейсом к себе в "общий код"
2. В "директивах using" прописать
3. В кубике C# вызвать класс и решить капчу:
Всё.
PS:примеры капч, которые решает данный класс (тестировал на них):
Вообще, большинство способов сводится к тому, что нужно выполнить действие "A + B = " - ради такого даже писать ничего не нужно, достаточно просто спарсить это значение и выполнить его в кубике JavaScript, там пример решится и выведется результат. Но всё было бы слишком просто и грустно, если бы сайт не выдавал примеры вроде:
Тут уже нужно парсить известные и неизвестные, заменять слова на числа и т.д. Поэтому вариант использовать кубик JavaScript - точно отпадает. И ещё если использовать безбраузерный (get/post) вариант, то запускать JavaScript будет в таком случае - слишком накладно ради решения капчи. Вот так и родился этот небольшой класс для решения текстовых математических каптч. Мне он нужен только для одного сайта, но может быть кому-то пригодится, поэтому решил выложить его на всеобщее обозрение, код в одном месте (преобразование из буквенных вариаций цифр в числовые) вышел немного костыльным, но вполне рабочим.9 − ? = five
? × sixty three = 126
Класс умеет решать математические примеры с числами от 0 до 99, если они записаны в текстовом виде; умеет операции сложения, вычитания, умножения и деления; ему без разницы в каком месте пропущено число, главное чтоб пример в целом был корректным.
Код выложил на гитхабе: https://gist.github.com/lord-alfred/6020e7a5f60f06652101613c490a73f9
Использование:
1. Добавить данный класс вместе с неймспейсом к себе в "общий код"
2. В "директивах using" прописать
C#:
using ZPMathCaptchaSolver;
C#:
string captcha = project.Variables["text_captcha"].Value;
var mcs = new MathCaptchaSolver();
int result = mcs.Solve(captcha);
return Convert.ToString(result);
PS:примеры капч, которые решает данный класс (тестировал на них):
- 3 = 5
+ 1 = 6
* 2 = 6
/ 5 = 2
8 - = 2
8 + = 12
3 * = 6
8 / = 2
5 - 3 =
4 + 2 =
2 * 4 =
6 / 3 =
x 6 = twenty four
x 6 = twenty-four
x 6 = fifty four
sixty three—forty-two =
× 6 = eighteen
sixty three—sixty two =
forty three—forty-three =
forty two+eighty-nine =
forty two+eighty-nine =
zero one*two =
zero / fiftynine =
one plus fifty =
sixty-two minus sixty-one =
six multiply seven =
sixty divide twenty =
- Категория
- Полезно
Для запуска проектов требуется программа ZennoPoster.
Это основное приложение, предназначенное для выполнения автоматизированных шаблонов действий (ботов).
Подробнее...
Для того чтобы запустить шаблон, откройте программу ZennoPoster. Нажмите кнопку «Добавить», и выберите файл проекта, который хотите запустить.
Подробнее о том, где и как выполняется проект.