一个旧的验证码破解程序[附源码]

验证码多URL演示破解-安装版.rar
这个是制作的安装版。用于演示用。
验证码多URL演示破解-源码(DotNet2).rar
这个便是上面安装版的源码。
这两个附件首发于博客园sban保证博客园的版本没有病毒,请勿在其它地址下载。

这个小软件,是我06年初的时候写的,时隔两年了。那时急用,也没考虑什么面向对象,设计模式,垃圾处理等,暇疵甚多。今天把它拿出来,旨在抛砖引玉,与大家共同探讨一下C#的图文识别。

演示中的验证码的URL有的已不能用。大部分验证码图像都简单,破解尚且容易。倘若能够破解google或yahoo的验证码,那才是高手。

    这是当时写的演示软件说明,其中有些话有些过了。

◇ 本软件为验证码破解示例软件. 纯绿色,可完全卸载,不含任何插件、恶意代码。
◇ 支持不同色彩,不同大小,不同个数,不同亮度. 
◇ 支持不同格式,不同形式,不同方法. 
◇ 由于是针对大众验证码的演示软件,准确率以及破解速度远不及针对单一验证码的破解. 
◇ 关于设置URI等参数的功能,由于对于不同的验证码参数是不定的,需要调试得出,所以没有列出. ◇ 凡是小软件,应力求功能简单,效率与实用性才能提高.一个无所不能的软件也就是一个什么也不能的软件.

    
    好了,且看源码。

    源码中有一个Access数据库[suncode06.mdb]。


    这个表用于存储验证码的地址及破解配置信息。其中,maxLt与minLt是躁点取舍范围。nCode是验证码的个数。


    如图所示,这个表便存储了验证码的图片信息。

    这个小软件破解验证码的原理,是记忆性破解。读取验证码图片,分成一个个小图片,如果库中有记录,则返回它的验证码字符;如果不存在,则插入新记录。对于没有记忆过的验证码图片,它是识别不出来的。这个破解方法只可用于验证码字符范围固定的验证码。对于不固定范围的,如QQ的注册验证则不能破解。

    
    其中,所有破解代码都在Form1中,form2可以不看。
    在Form1中,首先init读取当前要破解的验证码的url及破解参数:

init(int id)


    当用户点击破解的时候,首先在GetBitmapOriginal(ref Bitmap0[0])中取出原始图像:

GetBitmapOriginal


    取出原始图像后,在GetXYOfEightPoint()中取出验证码图像中每一个小图像的临界点,这将在下一步的裁图中用到:

GetXYOfEightPoint


    这时候这个图像还是有躁点的,在裁图之前,必须把躁点去掉。这一步在GetBlankWhiteBitmap()中完成:

GetBlankWhiteBitmap()

    随后在GetSngBmp()中拆出一个个小图像。有了临界点,又去了躁点,拆图已是相当容易。

GetSngBmp()


    最后在GetCharRlt()计算验证码字符,如果库中没有,则提示输入并存储,并进入下一个验证码字符破解。

GetCharRlt()


    代码质量不高,坏味实足,各位多多包涵。

sban 2007年12月6日首发于博客园

作者:sban
出处:http://sban.cnblogs.com
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
posted @ 2007-12-06 12:10 sban 阅读(4947) 评论(24)  编辑 收藏 网摘 所属分类: Default

  回复  引用  查看    
#1楼2007-12-06 12:43 | 大石头      
我也做过一个有点类似的。

在比较是否已有图片的时候,我是比较散列而不是一个个字节

  回复  引用    
#2楼2007-12-06 12:44 | 左右[未注册用户]
下来看看,学习一下
  回复  引用  查看    
#3楼2007-12-06 13:32 |       
CompareBitmap 才是关键。杂就没有代码尼?
  回复  引用    
#4楼2007-12-06 13:42 | STS[未注册用户]
我最近也在弄百度贴吧的灌水鸡.
它的验证码加了一些判断失效的参数.
这好麻烦.

不过不用怕. 哪怕是请个人回来不断地输入验证码,
这个灌水鸡也是非常有效的.

像博客园这个直接把验证码发到COOKIE的,真是Orz..
起码也要加加密嘛..哪怕拿123456作为KEY加一下,也烦死人的.

  回复  引用  查看    
#5楼2007-12-06 13:55 | 大豆男生      
总是提示:本次计算由于误差太大,请重试
  回复  引用  查看    
#6楼2007-12-06 14:12 | Enzo      
灌水鸡啊 灌水专用
  回复  引用  查看    
#7楼[楼主]2007-12-06 14:45 | sban      
@辰
源码中有

  回复  引用  查看    
#8楼[楼主]2007-12-06 14:47 | sban      
@大豆男生
源码中的验证码url地址可能已有变化,可自己添加其它验证码url。

旨在学习交流,不提倡使用。

  回复  引用  查看    
#9楼[楼主]2007-12-06 14:51 | sban      
@大石头
散列好一些。

这个版本太早,没有优化。在比较两个图像是否相同时,及如何存储图像,再及临界点算法等,许多地方都有待研究。

网上曾有人找我破解yahoo的验证码,我未应充。不知道私自破解人家的验证码是不是犯法,哈哈。

  回复  引用  查看    
#10楼2007-12-06 15:51 | Red_angelX      
呵呵呵呵呵
  回复  引用  查看    
#11楼2007-12-06 16:01 | pk的眼泪      
pass by
  回复  引用  查看    
#12楼2007-12-06 17:49 | 瑞克      
不错啊,支持开源
  回复  引用  查看    
#13楼2007-12-06 19:12 | 周银辉      
great work
  回复  引用  查看    
#14楼2007-12-06 19:28 | 驿路梨花      
验证码识别其实挺难做的。我以前就研究过一段时间的验证码。像纯数字或字母的验证码噪点不太多的情况下破解不难,就是将图像分成点阵。如下图:
○■○
■○■
■○■
■○■
○■○

○■○
■■○
○■○
○■○
■■■

■■■
○○■
■■■
■○○
■■■

■■■
○○■
■■■
○○■
■■■
我的方法是把需要识别的图片,划分为 5 行,3 列,15个块,然后对每个块进行计算,当每个块里的有效象素超过多少百分比的时候,就标记为 ■,如果没超过就标记为○,(这里为了显示方便我使用了■,○,你完全可以把它标为1、0),这里要注意一下,这里的百分比根据字体的粗细可以取 67%,50%,33%,20%,为什么要取这几个数?主要和计算机的浮点数运算有关,选这几个数,运算更快,且不容易出错,否则计算机在进行大量计算时也是会出错的!当然这里,你完全可以选适合你的验证码图片的百分比!!


吐过包含了汉字破解借来就先对来说麻烦多了。但包含汉字的那种验证码用起来也不方便。

  回复  引用  查看    
#15楼2007-12-07 03:59 | 米开朗基罗      
楼上的你能破扭曲的吗?
茅和道的较量。
如果归类到黑客软件合法性上面就比较困难。

  回复  引用  查看    
#16楼2007-12-07 20:01 | 驿路梨花      
@米开朗基罗
扭曲的不好破解。而且要是验证码和背景噪点颜色差别太小的话也不好破解。图像的识别一直是个麻烦的问题。

  回复  引用  查看    
#17楼2007-12-08 11:32 | gguowang      
呵呵 楼主还是很厉害的...
至少给没有做过的兄弟 提供了一个思路.

  回复  引用  查看    
#18楼2008-02-18 09:09 | 巫云      
希望大家都努力,做一个好的出来。人脸现在不都可以识别了吗?这个应该更简单些吧?
  回复  引用  查看    
#19楼[楼主]2008-02-18 10:02 | sban      
@巫云
哈哈,要做商用吗?

  回复  引用    
#20楼2008-03-16 11:18 | SEO[未注册用户]
学习了
  回复  引用    
#21楼2008-04-21 16:21 | tnbao[未注册用户]
我看了一下,怎么识别不了呢我想破解一个类似http://www.busyworld.cn/reg.asp?action=yes的验证码,试了不行~~还得学习呀~~
  回复  引用    
#22楼2008-07-03 21:45 | xiexianghuan[未注册用户]
学习
  回复  引用    
#23楼2008-08-12 12:45 | 验证码[未注册用户]
有谁知道类似车牌号码的识别系统吗?假如现在我手头有一张报纸,能否把报纸中的字自动输进电脑中进行编辑???
  回复  引用    
#24楼2008-08-12 12:46 | 验证码[未注册用户]
有谁知道类似车牌号码的识别系统吗?假如现在我手头有一张报纸,能否把报纸中的字自动输进电脑中进行编辑???http://www.busyworld.cn



发表评论

昵称: [登录] [注册]

主页:

邮箱:(仅博主可见)

评论内容:

  登录  注册

[使用Ctrl+Enter键快速提交评论]

0 985038




相关文章:

相关链接: