【验证码配置工具】
右边绘图区域获得焦点的时候WASD键可以以像素位单位的移动鼠标 放大镜会跟随鼠标移动显示对应细节下方图该像素点ARGB值
上图为验证码配置工具【参数设置】页面中的数据都比较容易理解
在[干扰处理]里面有个[添加]按钮是用来输入表达式的
因为在去干扰时候除了验证码和背景本身之外还有其他的需要处理 比如之前做过百度推广的验证码识别 他有干扰线条而线条颜色统一而且都在文字下方 所以此时我可以添加这样的表达式来 把指定颜色直接当作背景处理 这样二值化后干扰线条直接就被忽略掉了
以下面的验证码为案例
假设二值化的阀值采用默认值(就当作二值化也无法解决后面干扰线条的时候)
首先分析 上面文字基本上是黑色的 但是线条颜色却相对浅一点 而此时就就可以添加上面的条件 当RGB平均值大于20的时候我视为白色
这样就变成了上图的效果(其实这个案例中上面直接二值化阀值设为20就可以了)
对于【字库设置】 个人建议使用手动采集的方式处理
也就是右边出现什么验证码直接在文本框输入对应的验证码即可(输入是区分大小写的 尽管验证码一般是不区分大小写的)
理论上来说样本采集越多越全 识别率越高 尤其是对于那些非标准字体 标准字体每个字符就算输入再多也只会采集一次(程序不会重复添加一样的样本)
如果使用系统字体 在文本框输入验证码会出现的字符 然后点击生成按钮会弹出一个系统对话框选择字体 确定后会生成对应的预览
选中左边的树节点右键可以对样本进行移除操作
注:在输入的时候输入减号【-】 而识别时候 识别出来的字符串会把所有减号【-】替换成空白 这样可以忽略一些采集的时候框选出了不想要的东西 如一些空心的字体OP等字体内部的东西
当一切都搞定时候点击 文件->保存 即可将配置保存成文件
保存的时候有两个后最可选 .ci.png 和 .ci
前者是以图片形式保存的 这样在电脑中看到的是验证码的图片方便识别
【伏宸帐户爆破工具】
界面上说的很明确了 一下是自己测试站的爆破结果
双击列表即可查看对应的包数据
【验证码识别工具】
此工具用于其他程序调用使用 如:python
# coding: UTF-8
import os
result = os.popen('verifytool.exe D:\\woo.ci.png -f D:\\woo-verify.png').readlines()
print (result)
在我的D盘有这样一张图
代码执行后的效果
其他调用方式自己测试 不过建议使用 -p 方式 如下
# coding: UTF-8
import urllib2
from socket import *
h = urllib2.urlopen('http://www.wooyun.org/captcha.php')
str = h.read() #获取验证码
s = socket(AF_INET,SOCK_DGRAM);
s.sendto(str,('localhost',14250)) #将获取到的验证码发送给识别程序
code = s.recvfrom(65500) #接受识别出来的验证码
print(code)
如果程序是.NET平台编写 则可直接使用VerifyReader.dll文件 将其添加引用然后:
CodeInfo ci = CodeInfo.LoadFromFile("D:\\woo.ci.png");
CodeHelper helper = new CodeHelper(ci);
string code = helper.GetCodeString(Image.FromFile("D:\\woo-verify.png"));
--By:伏宸安全团队(2016-2)