我是一名图像处理专家和CAPTCHA解码器,之前我做过许多CAPTCHA解决方案.
好的,让我们开始CAPTCHA解决步骤!
解密任何类型的CAPTCHA有3个主要步骤:
清除CAPTCHA中的任何噪音(使用任何图像处理方法).
验证验证码解码战斗机:如果你想要一个好的验证码,你应该添加更强的噪音.使用具有相似颜色字符的随机噪声背景.
当它们分开时很容易一步,当它们不是时很难.
*验证验证码解码战斗机:如果你想拥有一个好的验证码,不要将角色分开!使它们重叠,不要为字符使用不同的颜色,解码器可以很容易地分割字符!(大多数开发人员都没有意识到这一点,并认为最好使用彩色的CAPTCHA!),最好的是制作一个黑色的重叠字符串.对于经验丰富的CAPTCHA解码器,解码彩色CAPTCHA不是问题!它很漂亮,没用!:)使用随机曲线连接所有字符相互连接.*
分离后,我们有一个字符集,(我们现在没有任何字符串,只有图像和像素),我们应该将字符图像转换为字符串,但如何?!有几种方法,如果它们没有旋转,并且具有固定的字体和大小(例如freeglobes CAPTCHA),你可以定义一个模式集,你的程序应该循环抛出模式以找到每个图像的最佳匹配,如果字符是非常不同的,需要一个大型模式,你应该使用"神经网络"来识别角色.用于CAPTCHA解析的神经网络将采用一个角色,我们说网络是这个角色是什么,例如,我们将给它一个"A"的图像,然后我们打电话给NN:它是"A"!,然后它将"学习"这个角色,并将其学习保存到数据库中,此过程称为"TRAINING".因此,当我们再次向受过训练的网络询问新角色时,它将从我们的学习数据库中返回最佳匹配.通常,解码器专家使用CAPTCHA本身来训练神经网络.小心!使用适当的培训数据可以决定您的结果.
验证验证码解码战斗机:如果你想要一个好的验证码,使用解码器无法识别字符的任何方法,即使使用神经网络.随机变形字符,使用多种字体而不是一种字体,也可以旋转字符等.
最后,我们将所有单个字符连接成一个并将其作为结果返回.
不幸的是,没有固定的算法来解决任何CAPTCHA,这意味着,新的CAPTCHA需要新的分析和培训.您无法使CAPTCHA解码器解码所有CAPTCHA.
在开始之前你应该知道什么:
1-图像处理基础
2-对神经网络的一般理解
3-简单的图像处理功能(任何语言)
对于PHP:
imagecreate()
imagecreatetruecolor()
imagecolorat()
imagecolorsforindex()
imagesetpixel()
.
.
.
Run Code Online (Sandbox Code Playgroud)
对于.NET:
Bitmap type,
getPixel()
setPixel()
.
.
.
Run Code Online (Sandbox Code Playgroud)
对于JavaScript和HTML5:
You should know the Canvas very well.
Run Code Online (Sandbox Code Playgroud)
最后: 关于验证码解码战斗机的注意事项:如果您想知道某人如何解码验证码并希望防止其解码,您应该首先自己做一个验证解码器,或者雇用某人知道弱点和攻击算法!
希望能帮到你!;)
| 归档时间: |
|
| 查看次数: |
18402 次 |
| 最近记录: |