Комментарии 81
Капча суровая.
А Хаус уже давно не торт, сезона после 3-4.
А Хаус уже давно не торт, сезона после 3-4.
И капча несурова, и Хаус — вполне ещё торт, особливо начало восьмого.
Хм, так судя по всему все фигуры имеют разный цвет. И все три имеют в левом нижнем углу пиксели. Сравнивая цвет там можно определить фигуру без всякой порнографии.
Даже у круга?
Кстати, у квадрата скругленные уголки.
Кстати, у квадрата скругленные уголки.
Фигуры на одном и том же месте, с разными цветами.
Вырезать три квадрата, уменьшить каждый до 1 пикселя, получить его цвет. Все.
Вырезать три квадрата, уменьшить каждый до 1 пикселя, получить его цвет. Все.
Капчу можно вообще не ломать. Выбор всегда первого варианта даст вероятность успеха 33%, более чем достаточно для регистрации любой кучи фейков за приемлемое время.
25%!
И при этом имеем по 21-му варианту картинок на каждое из 4-х возможных значений.
Но даже при таком раскладе, лучше избегать «холостых выстрелов». И будем отрабатывать все наши 100%
ps: habrahabr.ru/blogs/infosecurity/137601/#comment_4586186
И при этом имеем по 21-му варианту картинок на каждое из 4-х возможных значений.
Но даже при таком раскладе, лучше избегать «холостых выстрелов». И будем отрабатывать все наши 100%
ps: habrahabr.ru/blogs/infosecurity/137601/#comment_4586186
А если монитор черно-белый?
А не проще было в параметре captcha передавать значения по порядку, до выигрышного? По-моему – самый простой и очевидный метод для данной каптчи.
Капча, которая принимает целых четыре значения?! Про брутфорс можно сразу забыть…
Если картинки не искажаются и не меняются, то наверное можно было просто контрольную сумму подсчитать от куска куртинки?
Там одна картинка дается. login.bogi.ru/captcha.php
На ней имеется 3-и фигуры и одна надпись.
Имеем 3-и ячейки, которые могут принимать одно из 4-х значений (фигур), но при условии, что хотя бы одно из выбранных значений (фигур) будет отличным от остальных двух.
И надпись, так же может принимать одно из 4-х значений, но зависит от «уникальной» ячейки/привязывается, а значит можно не учитывать.
Можем посчитать кол-во возможных вариантов/комбинаций контрольных сумм:
4*3*3 = 36 комбинаций
––––––
поправьте, если не так посчитал :)
Тогда да – сравнивать контрольную сумму хороший вариант, а если контрольная сумма не получена, то долбить 4-е значения captcha для получения оной. Когда получим все контрольные суммы, получим выиигрыш от устранения лишних/ложных запросов.
На ней имеется 3-и фигуры и одна надпись.
Имеем 3-и ячейки, которые могут принимать одно из 4-х значений (фигур), но при условии, что хотя бы одно из выбранных значений (фигур) будет отличным от остальных двух.
И надпись, так же может принимать одно из 4-х значений, но зависит от «уникальной» ячейки/привязывается, а значит можно не учитывать.
Можем посчитать кол-во возможных вариантов/комбинаций контрольных сумм:
4*3*3 = 36 комбинаций
––––––
поправьте, если не так посчитал :)
Тогда да – сравнивать контрольную сумму хороший вариант, а если контрольная сумма не получена, то долбить 4-е значения captcha для получения оной. Когда получим все контрольные суммы, получим выиигрыш от устранения лишних/ложных запросов.
Мне кажется всё намного проще. У вас есть 3 фигуры (треугольник-квадрат-крестик) и надпись. Положение на картинке каждого из этих объектов не меняется. Лично я бы полез в анализ графики и изображений в последнюю очередь (мне конечно нравится этот раздел науки, но тем не менее не люблю усложнять себе жизнь).
Я бы поступил проще. Если представить картинку в виде набора байт, в адресном пространстве процесса например, то пускай с N1 байта по K1 байт находится первая картинка (пускай мы не сможем точно определить диапазон, нам нужно попасть хотя бы в часть картинки), соответственно, с Ni по Ki находится «итая» картинка, в нашем случае третья. Также и для надписи высчитывается расположение Nt Kt, конечно всё это без учёта шумов и того что что-то может меняться и двигаться.
Далее высчитывается SHA1 CRC32 итд на выбор от наших диапазонов байт и тупо сравнивается с эталоном.
Всё вообщем-то, одно обращение по хттп протоколу и мы распарсили картинку.
Конечно, всё усложниться в случае добавления шумов, ротации предметов итд. В этом случае я бы открыл книги и журналы по анализу графики и разбирался бы с уменьшением шума, работой с яркостью итд.
Я бы поступил проще. Если представить картинку в виде набора байт, в адресном пространстве процесса например, то пускай с N1 байта по K1 байт находится первая картинка (пускай мы не сможем точно определить диапазон, нам нужно попасть хотя бы в часть картинки), соответственно, с Ni по Ki находится «итая» картинка, в нашем случае третья. Также и для надписи высчитывается расположение Nt Kt, конечно всё это без учёта шумов и того что что-то может меняться и двигаться.
Далее высчитывается SHA1 CRC32 итд на выбор от наших диапазонов байт и тупо сравнивается с эталоном.
Всё вообщем-то, одно обращение по хттп протоколу и мы распарсили картинку.
Конечно, всё усложниться в случае добавления шумов, ротации предметов итд. В этом случае я бы открыл книги и журналы по анализу графики и разбирался бы с уменьшением шума, работой с яркостью итд.
Как высчитать где находится нужный диапазон в картинке?
Можно попробовать подобавлять всякий трэш и смотреть место появления шума. Тогда, возможно, не придётся разбираться с png форматом.
Можно попробовать подобавлять всякий трэш и смотреть место появления шума. Тогда, возможно, не придётся разбираться с png форматом.
Или вообще, взять и закрасить в paint-e и посмотреть какая часть картинки поменялась.
Элегантно и просто.
Элегантно и просто.
Прошу прощения! Текстовое значение, в вышеописанной формуле, тоже имеет значение!
Итого: (4*3*3) + (3*4*4) = 84 возможных комбинаций
По 21-й контрольной сумме на одно из 4-х значений в параметре captcha.
ps: нет. Мой метод еще проще, т.к. вообще не подключает графическую библиотеку и сверяет только контрольную сумму изображений. По контрольной сумме изображения отдаем нужное значение captcha.
psPs: сперва просматриваю самые простейшие способы реализации задачи… (лень, такая лень :( )
Для примера, смог отловить две одинаковые картинки и сравнить их контрольные суммы: cl.ly/3d3L0n1n2k1b3E2G353C
Итого: (4*3*3) + (3*4*4) = 84 возможных комбинаций
По 21-й контрольной сумме на одно из 4-х значений в параметре captcha.
ps: нет. Мой метод еще проще, т.к. вообще не подключает графическую библиотеку и сверяет только контрольную сумму изображений. По контрольной сумме изображения отдаем нужное значение captcha.
psPs: сперва просматриваю самые простейшие способы реализации задачи… (лень, такая лень :( )
Для примера, смог отловить две одинаковые картинки и сравнить их контрольные суммы: cl.ly/3d3L0n1n2k1b3E2G353C
А каким образом у вас в виндовые свойства файла добавлена панель с контрольными суммами?
Так посчитайте контрольную сумму региона с текстовым значением, в чём проблема?
Для решения этой задачи не нужны никакие сторонние библиотеки, тем более графические, кстати.
Для решения этой задачи не нужны никакие сторонние библиотеки, тем более графические, кстати.
Если выкинуть реализацию и объявить конкурс на самый изящный и короткий алгоритм, получился бы хороший топик.
Если картинки в одном и том же месте, то достаточно будет вырезать их из одного и того же места и сравнивать чуть ли не контрольную сумму этих картинок :).
А еще можно отойдя от цвета вычитать из картинки заготовки и оценивать яркость. Там где получится максимальная — наша картинка. На image magick это все в пяток строк уместится.
А еще можно отойдя от цвета вычитать из картинки заготовки и оценивать яркость. Там где получится максимальная — наша картинка. На image magick это все в пяток строк уместится.
Для скачивания Хауза есть куда более подходищие ресурсы :) LostFilm — скорее информационный.
Просто лостовские переводы авторы просят некоторое время после релиза е выкладывать нигде за пределы трекера. Так что для торопыжек лост — единственный вариант.
А оригинал на английском смотреть религия не позволяет?
Не позволяет знание языка и отсутствие желания. My little pony я ещё могу посмотреть на языке оригинала, но не Хауса с его не всегда однозначным юмором и обилием медицинских терминов. Да и вам-то какая разница?
При незнании полном согласен, но при знании базы (хотя бы на уровне чтоб смотреть «My little pony») наоборот лучше смотреть в оригинале (по началу с можно с субтитрами) очень быстро набирается скорость усвоения и словарный запас… (очень помогает в пассивном изучении языка, и толком не пытаешься учить, и само как-то запоминается, даже неизвестные слова начинают без субтитров пониматься правильно)
Ну ведь совершенно же не в этом дело. Дело в том, что каждый смотрит именно так, как ему удобно и дело отнюдь не в религии. Моё знание языка позволяет смотреть сериалы с английскими субтитрами и веб-словарём, а знание языка жены не позволяет. Смотреть с русскими субтитрами тяжело из-за отвлекателей в виде малышей. Так что дело совершенно не в религии и не в нежелании учить иностранный. в случае же с amarao, его комментарий звучал грубо и некорректно, тем более в виду того, что его реалии и желания совершенно не совпадают ни с моими, ни с аудиторией лоста. Как-то так. Прежде всего надо уважать друг-друга, а уже потом изучать иностранные. Спасибо за внимание =)
там 5 штоле часов ограничение, очень долго, да.
Можно еще давать три фотографии, например Сталлоне, Ван Дамм и Шварценеггер. Подпись — выбери Терминатора :)
Если хотите интересных развлечений — взломайте капчу на отправке СМС с сайта Киевстара…
используя перцептивный хеш (или другой алгоритм нахожления похожести изображений) вполне можно выжать вероятность угадывания 10-25%. ну и брутфорсом около 1%
> Если хотите интересных развлечений — взломайте капчу на отправке СМС с сайта Киевстара
угу
ее человек не всегда проходит.
угу
ее человек не всегда проходит.
А нахрена вообще распознавался с вероятностью 1/3?
Капча для защиты от людей, очевидно же. Хотя до капчи Sony всё равно далеко.
лучше бы так сделали:

отойди на метр от монитора
что ты видишь
1. Джигурда
2. Сталлоне
3. Чак Норрис
…
128. НЛО
:)

отойди на метр от монитора
что ты видишь
1. Джигурда
2. Сталлоне
3. Чак Норрис
…
128. НЛО
:)
Идея! А давайте делать капчи — на естественном языке? Как только кто-то взломал — замечаем необычную активность — меняем капчу на следующую, чуть-сложнее, а автору пишем спасибо и просим исходники? Таким образом, постепенно, поимеем хороший транслятор естественных языков методом краудсорсинга:)
Какой-то топорный метод. Думал будет чего поинтересней.
плюс такой капчи, что её можно легко усложнить (по мере пробива ботами) добавлением цветов предметов «выберите красный квадрат» и расширение списка оных предметов, как чисто геометрическими (многоугольники, сложные фигуры), так и более сложными объектами и добавлением различных градиентов при генерации этих самых объектов (градиенты уже используются) без потери для обычного пользователя простоты ответа на вопрос.
Эту капчу можно пройти на джойстике от Playstation?
Некрасиво. Проще и изящней однослойным персептроном, имхо. Хотя тогда смысл в статье пропал бы, ибо довольно просто.
Вот тут коллега khalitovsv сообщает — «Каждый текст и каждая фигура имеют непересекающиеся точки. Это все очень сильно упрощает»:
<?
// грузим капчу
file_put_contents('test.png',file_get_contents('http://login.bogi.ru/captcha.php'));
// создаем гд объект
$im = imagecreatefrompng('test.png');
// узнаем что нужно выбрать
if(imagecolorat($im,23,78)!=2147483647) {
$text = 'triangle';
}
elseif(imagecolorat($im,58,78)!=2147483647) {
$text = 'circle';
}
elseif(imagecolorat($im,34,78)!=2147483647) {
$text = 'square';
}
elseif(imagecolorat($im,35,79)!=2147483647) {
$text = 'cross';
}
echo $text."
";
//ищем фигуру
for($i=0;$i<3;$i++) {
$x = 14+$i*50;
$y = 5;
if(imagecolorat($im,$x+20,$y+20)!=16777215) {
$figure = 'cross';
}
elseif(imagecolorat($im,$x+10,$y+9)!=16777215) {
$figure = 'square';
}
elseif(imagecolorat($im,$x+9,$y+15)!=16777215) {
$figure = 'circle';
}
elseif(imagecolorat($im,$x+20,$y+7)!=16777215) {
$figure = 'triangle';
}
if($text==$figure) { // нашли... брикаемся
$i++;
echo "position $i
";
break;
}
}
?>
<img src="test.png" />
Да, действительно, такой вариант будет работать в этом случае. Но если изменить цвет или исказить изображение, нарисовать другую фигуру — он не подойдёт и придётся искать другой способ. Предложенный мною способ можно развить (в т.ч. и до перцептрона). Способ далеко не идеальный, поэтому спасибо всем за советы и критику!
Если будет время — постараюсь доработать этот, рассмотреть другие способы и написать пост в продолжение темы.
Если будет время — постараюсь доработать этот, рассмотреть другие способы и написать пост в продолжение темы.
Зарегистрируйтесь на Хабре, чтобы оставить комментарий
Взлом капчи LostFilm (php)