cap.exe на примере капчи яндекса

govnoproger.ru > софт > cap.exe на примере капчи яндекса

яндекс капча Хочу вам рассказать об одной програмке- называется cap.exe. Входит в состав USD. Качалка раньше была очень модной. Сам cap расшифровывает капчи. Давайте-же поиграемся с капчей яндекса? Заходим в папку капа и создаём папку BMP_RS -в неё мы будем помещать капчи для автоматической нарезки на шаблоны.
Создаём файл, я назвал его yandex.ini. И смотрим ключ SHRED
Содержание файла пока такое:

[OTHER]
;Картинка, показывающаяся в окне чекера (по умолчанию там белка) Формат - bmp размеры x=90 y=88 (большая будет обрезаться)
CheckerLogo=checker.bmp
;CheckerSound=checker.wav

;Путь сохранения файлов по каналу thanks. Если не указан, то КаталогЗагрузокПоУмолчанию\thanks
;ThanksPath=

;Каталог, куда копировать капчи для постоянного сбора. При пустом значении копироваться не будут
CatalogBmp=
xWinCheck=1273
yWinCheck=988


;РАСПОЗНАВАНИЕ

[CAP]
;Количество секунд окна проверки пользователем кода (0=окно будет только при ошибках, -1 - не будет никогда)
CheckerSec=0
;Количество ошибок для старта поиска обновлений шаблонов (При 0-ле обновления не искать)
ErrorsUpdate=0

;Тип алгоритма
type=

;фильтры (Имя фильтра и параметры. Слово "convert" зарезервировано для вызова convert.exe. например Filter1=convert -channel All -blur 5x1 -threshold 80%%)
Filter1=

;распознавание
;первый проход
;Процент попадания
Percent=60
;Цветовая пороговая разница срабатывания между цветами, означающая, что цвета идентичны 0 означает, что совпадают только совсем одинаковые цвета
;Все цвета картинки складываются без множетелей. черный=0 белый=255+255+255
ColorDelta=0
;Исключить белые области шаблонов из рабочих
WithoutBackground=1

;второй проход
;Приоритет символов для опознавания, слева - самые значащие. Т.к. многие символы, например I являются составными частями других
PriorityString=8934760521
;разница процентного отношения между символом, могущим быть частью другого
PriorityDelta=6

;общие настройки
;Имя файла для распознавания (если jpg, то рядом должен лежать Convert.exe для перевода в такой же bmp) (Возможно применение маски. Браться будет самый свежий файл)
FileNameCapture=digits.gif
;Имя файла для сохранения кода (Любое количество через запятую)
SaveToFile=yandex.txt
;копировать результат в буфер обмена, стирая все, что там держал подлый пользователь
Clipboard=0
;Имя каталога с литерами (Можно использовать литеры от Антикапчи)
CatalogLetters=yandex
;Количество ожидаемых символов
Letters=6
;Длина капчи объявления ботом
ErrorCapthaLen=

;изображения
;предобработка краев
ShredBorderLetX=0
ShredBorderLetY=0
;прогонять образец по горизонтали
XMove=10
;прогонять образец по вертикали
YMove=10
;ограничиваться бордюром по горизонтали (отключается, если часть буквы теоретически может выйти за рамки картинки)
XBorderL=1
XBorderR=1
;ограничиваться бордюром по вертикали (отключается, если часть буквы теоретически может выйти за рамки картинки)
YBorderU=1
YBorderD=1

;автоматика
;применение ускорения. все по закону сохранения качества: скорость больше - результат хуже ;о(
Speed=1
;автоматически корректировать процент при ошибке распознавания на данную величину
AutoPercent=0.0
;автоматически снижать скорость при возникновении ошибок
AutoSpeed=1
;автоматически включать вертикальный прогон при необходимости
AutoYMove=1
;не применять автоматику, если период распознавания превышает параметр в секундах
AutoMaxTime=15
;Пауза в миллисекундах между шаблонами, чтобы не сильно загружать процессор
PauseBetweenTemplates=0



;служебные
;Количество текущих ошибок
CountErrors=0
;последние значения для алгоритма коллекций
LastPath=
LastPref=
CLIDA=6009330592153965
CLID=3044273228767843

[SHRED] //измеряем в фотошопе
;Максимальная ширина букв (чтобы ножик не останавливался раньше времени)
LetterWidth=30
;Минимальная ширина букв, чтобы мусор не выводить
LetterWidthMin=17
;Инверсионная картинка
Inverse=0
;Угол наклона в градусах
Angle=0.0
;Упаковывать выходные шаблоны (обрезание краев и т.д)
Pack=1
;Оставлять от символа только контур при упаковке
SidebarPack=0

Запускаем кап с параметром /shred. По идее должна создасться папка letters new, но её нету. Облом. Халява непрокатит — капча для этого слишком сложная. Придётся резать шаблоны самому в фотошопе. Я отрезал одну цифру. Важно оттримать картинку и сохранить в папку (у меня yandex) которую вы задали в ини файле. (надо делать много шаблонов, называть надо так — имясимвола-0.bmp,имясимвола-1.bmp и тд, важно очищать от всего лишнего, если изображение перечеркнуто — затрите зачерк)
Чтож давайте запустим на распознавание. Запускаем кап с параметром /recognize /ini yandex.ini .
И снова получаем облом, не расшифровывается. Изменим ini файл на такой:

[OTHER]
;Картинка, показывающаяся в окне чекера (по умолчанию там белка) Формат - bmp размеры x=90 y=88 (большая будет обрезаться)
CheckerLogo=checker.bmp
;CheckerSound=checker.wav

;Путь сохранения файлов по каналу thanks. Если не указан, то КаталогЗагрузокПоУмолчанию\thanks
;ThanksPath=

;Каталог, куда копировать капчи для постоянного сбора. При пустом значении копироваться не будут
CatalogBmp=
xWinCheck=1273
yWinCheck=988


;РАСПОЗНАВАНИЕ

[CAP]
;Количество секунд окна проверки пользователем кода (0=окно будет только при ошибках, -1 - не будет никогда)
CheckerSec=0
;Количество ошибок для старта поиска обновлений шаблонов (При 0-ле обновления не искать)
ErrorsUpdate=0

;Тип алгоритма
type=

;фильтры (Имя фильтра и параметры. Слово "convert" зарезервировано для вызова convert.exe. например Filter1=convert -channel All -blur 5x1 -threshold 80%%)
Filter1=channel All -blur 5x1

;распознавание
;первый проход
;Процент попадания
Percent=60
;Цветовая пороговая разница срабатывания между цветами, означающая, что цвета идентичны 0 означает, что совпадают только совсем одинаковые цвета
;Все цвета картинки складываются без множетелей. черный=0 белый=255+255+255
ColorDelta=250
;Исключить белые области шаблонов из рабочих
WithoutBackground=1

;второй проход
;Приоритет символов для опознавания, слева - самые значащие. Т.к. многие символы, например I являются составными частями других
PriorityString=8934760521
;разница процентного отношения между символом, могущим быть частью другого
PriorityDelta=6

;общие настройки
;Имя файла для распознавания (если jpg, то рядом должен лежать Convert.exe для перевода в такой же bmp) (Возможно применение маски. Браться будет самый свежий файл)
FileNameCapture=digits.gif
;Имя файла для сохранения кода (Любое количество через запятую)
SaveToFile=yandex.txt
;копировать результат в буфер обмена, стирая все, что там держал подлый пользователь
Clipboard=0
;Имя каталога с литерами (Можно использовать литеры от Антикапчи)
CatalogLetters=yandex
;Количество ожидаемых символов
Letters=6
;Длина капчи объявления ботом
ErrorCapthaLen=

;изображения
;предобработка краев
ShredBorderLetX=0
ShredBorderLetY=0
;прогонять образец по горизонтали
XMove=10
;прогонять образец по вертикали
YMove=10
;ограничиваться бордюром по горизонтали (отключается, если часть буквы теоретически может выйти за рамки картинки)
XBorderL=1
XBorderR=1
;ограничиваться бордюром по вертикали (отключается, если часть буквы теоретически может выйти за рамки картинки)
YBorderU=1
YBorderD=1

;автоматика
;применение ускорения. все по закону сохранения качества: скорость больше - результат хуже ;о(
Speed=1
;автоматически корректировать процент при ошибке распознавания на данную величину
AutoPercent=0.0
;автоматически снижать скорость при возникновении ошибок
AutoSpeed=1
;автоматически включать вертикальный прогон при необходимости
AutoYMove=1
;не применять автоматику, если период распознавания превышает параметр в секундах
AutoMaxTime=15
;Пауза в миллисекундах между шаблонами, чтобы не сильно загружать процессор
PauseBetweenTemplates=0



;служебные
;Количество текущих ошибок
CountErrors=0
;последние значения для алгоритма коллекций
LastPath=
LastPref=
CLIDA=6009330592153965
CLID=3044273228767843



;Секция действий, если нас объявили ботом
[BOT]
;Команда
command=
;параметры команды
params=
;Прятать окно комманды
hide=1




;Секция запуска прочих программ распознавания, пока не найдем нужный код ... можно вызывать саму себя

[FR]
;Прятать окна прочих приложений
HideFR=1
;Приложение номер 0 ...
;Команда
Run0=
;Параметры
Param0=
;Где забирать результат (Имя файла или ключевое слово clipboard)
Result0=clipboard

;Команда 1 и так далее пока не найдем нужное кол-во буковок
Run1=
Param1=
Result1=

[SHRED]
;Максимальная ширина букв (чтобы ножик не останавливался раньше времени)
LetterWidth=30
;Минимальная ширина букв, чтобы мусор не выводить
LetterWidthMin=17
;Инверсионная картинка
Inverse=0
;Угол наклона в градусах
Angle=0.0
;Упаковывать выходные шаблоны (обрезание краев и т.д)
Pack=1
;Оставлять от символа только контур при упаковке
SidebarPack=0


;Режим сирены при ошибках(можно использовать для старта чего угодно)

[SIREN]
;Количество ошибок для запуска режима (0-выключить)
ErrorSiren=0
;Команда
CommandSiren=ChatBeep.wav
;Параметры каманды
ParamSiren=
;Скрывать окно
HideSiren=0
;Ждать окончания процесса
WaitSiren=0
;Сколько раз повторять (один раз запустится и так)
RepeatSiren=100

Как видите я добавил фильтр и дал некий ColorDelta=250. После запуска в файле yandex.txt появилась цифра 3. Капча сдалась.
Автор капа некий Kis’s, да хранит его гугл.

Рекомендую:

26.10.2010 | последняя редакция: 23.01.2011 | ,