Комментарии 81
Капча суровая.
А Хаус уже давно не торт, сезона после 3-4.
А Хаус уже давно не торт, сезона после 3-4.
-24
И капча несурова, и Хаус — вполне ещё торт, особливо начало восьмого.
+31
Хм, так судя по всему все фигуры имеют разный цвет. И все три имеют в левом нижнем углу пиксели. Сравнивая цвет там можно определить фигуру без всякой порнографии.
+25
Даже у круга?
Кстати, у квадрата скругленные уголки.
Кстати, у квадрата скругленные уголки.
0
У круга будет цвет фона
+4
И я тут присмотрелся — цвета круга и квадрата разные.
+3
Да, у всех четырех(перечитал) фигур будет некоторая часть общая.
0
Можно сделать так: опускаться с середины верхней границы (width/2, 0) вниз до тех пор, пока не встретится отличный от белого цвет, по нему и определять фигуру.
+1
Фигуры на одном и том же месте, с разными цветами.
Вырезать три квадрата, уменьшить каждый до 1 пикселя, получить его цвет. Все.
Вырезать три квадрата, уменьшить каждый до 1 пикселя, получить его цвет. Все.
+1
Капчу можно вообще не ломать. Выбор всегда первого варианта даст вероятность успеха 33%, более чем достаточно для регистрации любой кучи фейков за приемлемое время.
+31
25%!
И при этом имеем по 21-му варианту картинок на каждое из 4-х возможных значений.
Но даже при таком раскладе, лучше избегать «холостых выстрелов». И будем отрабатывать все наши 100%
ps: habrahabr.ru/blogs/infosecurity/137601/#comment_4586186
И при этом имеем по 21-му варианту картинок на каждое из 4-х возможных значений.
Но даже при таком раскладе, лучше избегать «холостых выстрелов». И будем отрабатывать все наши 100%
ps: habrahabr.ru/blogs/infosecurity/137601/#comment_4586186
-2
А если монитор черно-белый?
0
А не проще было в параметре captcha передавать значения по порядку, до выигрышного? По-моему – самый простой и очевидный метод для данной каптчи.
+2
Капча, которая принимает целых четыре значения?! Про брутфорс можно сразу забыть…
+48
Если картинки не искажаются и не меняются, то наверное можно было просто контрольную сумму подсчитать от куска куртинки?
+13
Там одна картинка дается. 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 для получения оной. Когда получим все контрольные суммы, получим выиигрыш от устранения лишних/ложных запросов.
0
Мне кажется всё намного проще. У вас есть 3 фигуры (треугольник-квадрат-крестик) и надпись. Положение на картинке каждого из этих объектов не меняется. Лично я бы полез в анализ графики и изображений в последнюю очередь (мне конечно нравится этот раздел науки, но тем не менее не люблю усложнять себе жизнь).
Я бы поступил проще. Если представить картинку в виде набора байт, в адресном пространстве процесса например, то пускай с N1 байта по K1 байт находится первая картинка (пускай мы не сможем точно определить диапазон, нам нужно попасть хотя бы в часть картинки), соответственно, с Ni по Ki находится «итая» картинка, в нашем случае третья. Также и для надписи высчитывается расположение Nt Kt, конечно всё это без учёта шумов и того что что-то может меняться и двигаться.
Далее высчитывается SHA1 CRC32 итд на выбор от наших диапазонов байт и тупо сравнивается с эталоном.
Всё вообщем-то, одно обращение по хттп протоколу и мы распарсили картинку.
Конечно, всё усложниться в случае добавления шумов, ротации предметов итд. В этом случае я бы открыл книги и журналы по анализу графики и разбирался бы с уменьшением шума, работой с яркостью итд.
Я бы поступил проще. Если представить картинку в виде набора байт, в адресном пространстве процесса например, то пускай с N1 байта по K1 байт находится первая картинка (пускай мы не сможем точно определить диапазон, нам нужно попасть хотя бы в часть картинки), соответственно, с Ni по Ki находится «итая» картинка, в нашем случае третья. Также и для надписи высчитывается расположение Nt Kt, конечно всё это без учёта шумов и того что что-то может меняться и двигаться.
Далее высчитывается SHA1 CRC32 итд на выбор от наших диапазонов байт и тупо сравнивается с эталоном.
Всё вообщем-то, одно обращение по хттп протоколу и мы распарсили картинку.
Конечно, всё усложниться в случае добавления шумов, ротации предметов итд. В этом случае я бы открыл книги и журналы по анализу графики и разбирался бы с уменьшением шума, работой с яркостью итд.
0
Как высчитать где находится нужный диапазон в картинке?
Можно попробовать подобавлять всякий трэш и смотреть место появления шума. Тогда, возможно, не придётся разбираться с png форматом.
Можно попробовать подобавлять всякий трэш и смотреть место появления шума. Тогда, возможно, не придётся разбираться с png форматом.
0
Или вообще, взять и закрасить в paint-e и посмотреть какая часть картинки поменялась.
Элегантно и просто.
Элегантно и просто.
0
Прошу прощения! Текстовое значение, в вышеописанной формуле, тоже имеет значение!
Итого: (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
0
А каким образом у вас в виндовые свойства файла добавлена панель с контрольными суммами?
0
Так посчитайте контрольную сумму региона с текстовым значением, в чём проблема?
Для решения этой задачи не нужны никакие сторонние библиотеки, тем более графические, кстати.
Для решения этой задачи не нужны никакие сторонние библиотеки, тем более графические, кстати.
0
Если выкинуть реализацию и объявить конкурс на самый изящный и короткий алгоритм, получился бы хороший топик.
+5
Если картинки в одном и том же месте, то достаточно будет вырезать их из одного и того же места и сравнивать чуть ли не контрольную сумму этих картинок :).
А еще можно отойдя от цвета вычитать из картинки заготовки и оценивать яркость. Там где получится максимальная — наша картинка. На image magick это все в пяток строк уместится.
А еще можно отойдя от цвета вычитать из картинки заготовки и оценивать яркость. Там где получится максимальная — наша картинка. На image magick это все в пяток строк уместится.
0
Для скачивания Хауза есть куда более подходищие ресурсы :) LostFilm — скорее информационный.
0
Просто лостовские переводы авторы просят некоторое время после релиза е выкладывать нигде за пределы трекера. Так что для торопыжек лост — единственный вариант.
0
А оригинал на английском смотреть религия не позволяет?
-4
Не позволяет знание языка и отсутствие желания. My little pony я ещё могу посмотреть на языке оригинала, но не Хауса с его не всегда однозначным юмором и обилием медицинских терминов. Да и вам-то какая разница?
+1
При незнании полном согласен, но при знании базы (хотя бы на уровне чтоб смотреть «My little pony») наоборот лучше смотреть в оригинале (по началу с можно с субтитрами) очень быстро набирается скорость усвоения и словарный запас… (очень помогает в пассивном изучении языка, и толком не пытаешься учить, и само как-то запоминается, даже неизвестные слова начинают без субтитров пониматься правильно)
0
Ну ведь совершенно же не в этом дело. Дело в том, что каждый смотрит именно так, как ему удобно и дело отнюдь не в религии. Моё знание языка позволяет смотреть сериалы с английскими субтитрами и веб-словарём, а знание языка жены не позволяет. Смотреть с русскими субтитрами тяжело из-за отвлекателей в виде малышей. Так что дело совершенно не в религии и не в нежелании учить иностранный. в случае же с amarao, его комментарий звучал грубо и некорректно, тем более в виду того, что его реалии и желания совершенно не совпадают ни с моими, ни с аудиторией лоста. Как-то так. Прежде всего надо уважать друг-друга, а уже потом изучать иностранные. Спасибо за внимание =)
+1
там 5 штоле часов ограничение, очень долго, да.
0
+15
Можно еще давать три фотографии, например Сталлоне, Ван Дамм и Шварценеггер. Подпись — выбери Терминатора :)
+2
Если хотите интересных развлечений — взломайте капчу на отправке СМС с сайта Киевстара…
+3
используя перцептивный хеш (или другой алгоритм нахожления похожести изображений) вполне можно выжать вероятность угадывания 10-25%. ну и брутфорсом около 1%
0
> Если хотите интересных развлечений — взломайте капчу на отправке СМС с сайта Киевстара
угу
ее человек не всегда проходит.
угу
ее человек не всегда проходит.
0
А нахрена вообще распознавался с вероятностью 1/3?
+1
Капча для защиты от людей, очевидно же. Хотя до капчи Sony всё равно далеко.
0
лучше бы так сделали:
отойди на метр от монитора
что ты видишь
1. Джигурда
2. Сталлоне
3. Чак Норрис
…
128. НЛО
:)
отойди на метр от монитора
что ты видишь
1. Джигурда
2. Сталлоне
3. Чак Норрис
…
128. НЛО
:)
+8
Идея! А давайте делать капчи — на естественном языке? Как только кто-то взломал — замечаем необычную активность — меняем капчу на следующую, чуть-сложнее, а автору пишем спасибо и просим исходники? Таким образом, постепенно, поимеем хороший транслятор естественных языков методом краудсорсинга:)
+1
Какой-то топорный метод. Думал будет чего поинтересней.
0
плюс такой капчи, что её можно легко усложнить (по мере пробива ботами) добавлением цветов предметов «выберите красный квадрат» и расширение списка оных предметов, как чисто геометрическими (многоугольники, сложные фигуры), так и более сложными объектами и добавлением различных градиентов при генерации этих самых объектов (градиенты уже используются) без потери для обычного пользователя простоты ответа на вопрос.
0
Эту капчу можно пройти на джойстике от Playstation?
+4
НЛО прилетело и опубликовало эту надпись здесь
Некрасиво. Проще и изящней однослойным персептроном, имхо. Хотя тогда смысл в статье пропал бы, ибо довольно просто.
0
Вот тут коллега 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" />
0
Да, действительно, такой вариант будет работать в этом случае. Но если изменить цвет или исказить изображение, нарисовать другую фигуру — он не подойдёт и придётся искать другой способ. Предложенный мною способ можно развить (в т.ч. и до перцептрона). Способ далеко не идеальный, поэтому спасибо всем за советы и критику!
Если будет время — постараюсь доработать этот, рассмотреть другие способы и написать пост в продолжение темы.
Если будет время — постараюсь доработать этот, рассмотреть другие способы и написать пост в продолжение темы.
0
Зарегистрируйтесь на Хабре , чтобы оставить комментарий
Взлом капчи LostFilm (php)