Captcha Decoded

14 javascript php security

我已经看到一些验证码使用javascript,php等进行解码.他们是如何做到的?

例如,非常受欢迎的megaupload网站的验证码也已被解码.

Sar*_*raz 7

看到:

JavaScript中的OCR和神经网络

在这里John Resig(JQuery javascript库的创建者)解释了它是如何完成的.


Mos*_*jad 6

我是一名图像处理专家和CAPTCHA解码器,之前我做过许多CAPTCHA解决方案.

好的,让我们开始CAPTCHA解决步骤!

解密任何类型的CAPTCHA有3个主要步骤:

1-删除背景

清除CAPTCHA中的任何噪音(使用任何图像处理方法).

验证验证码解码战斗机:如果你想要一个好的验证码,你应该添加更强的噪音.使用具有相似颜色字符的随机噪声背景.

2-分裂字符

当它们分开时很容易一步,当它们不是时很难.

*验证验证码解码战斗机:如果你想拥有一个好的验证码,不要将角色分开!使它们重叠,不要为字符使用不同的颜色,解码器可以很容易地分割字符!(大多数开发人员都没有意识到这一点,并认为最好使用彩色的CAPTCHA!),最好的是制作一个黑色的重叠字符串.对于经验丰富的CAPTCHA解码器,解码彩色CAPTCHA不是问题!它很漂亮,没用!:)使用随机曲线连接所有字符相互连接.*

3-将单独的图像转换为字符

分离后,我们有一个字符集,(我们现在没有任何字符串,只有图像和像素),我们应该将字符图像转换为字符串,但如何?!有几种方法,如果它们没有旋转,并且具有固定的字体和大小(例如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)

最后: 关于验证码解码战斗机的注意事项:如果您想知道某人如何解码验证码并希望防止其解码,您应该首先自己做一个验证解码器,或者雇用某人知道弱点和攻击算法!

希望能帮到你!;)